Backtester - how to smooth out random high CAR years

Hi, I am optimising a portfolio over 20 years.

Sorting results by CAR/MDD gives some very high CAR years and other years that are negative - however, over 20 years giving a good CAR.

This is untradeable in real life, however, because it is hard to sit through poor return years to hit the good years.

Is there a metric to use that smooths out the year on year return and gives the best smoothed equity curve slope?

Thank you

You could check out the Ulcer Performance Index, which many find to be a better reward/risk metric than CAR/MDD or even Sharpe Ratio. And of course you could define your own master performance metric, as authors like Van Tharp and Howard Bandy have done.


Thanks mradtke.

Does ulcer performance index help smooth the years that are still positive, but a low positive, eg: YOY:


is better than:


I am experimenting with ideas for this, and am going to put this out there.

I shall test it further.

Anyone else, please try it out and feel free to amend - and post any comments.


if( Status("action") == actionPortfolio )
    bo = GetBacktesterObject();
    eq = bo.EquityArray();
    st = bo.GetPerformanceStats(0);

    BI = BarIndex();
    t = LinearReg(eq, BI);
    yy = StdErr(eq, BI);
    // Higher is better
    bo.AddCustomMetric( "newMetric", LastValue(t) / LastValue(yy));
1 Like

For what it is worth, standard error of equity is included in built-in stats System test report window, so there is no need to calculate it the way you do.

@traderuk99 it seems like you might also be interested in something like the "K-Ratio" by Lars Kestner.


I had forgotten about Kratio - thanks!

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.