Jim Dean![]() Elite ![]() ![]() ![]() Posts: 1059 Joined: 10/11/2012 Location: L'ville, GA ![]() | CAR is easy to calc in OScript. MDD is a pain, since OScript has no "BarsSince" function ... but there is a way around it. Here are OScan-tested correct-syntax formulae for CAR, MDD and Calmar. If you would like to go through the long derivation, and several important caveats about this solution, please click here CAR percent: 100*( ( C/C[bar] ) ^ ( 1/ (bar/252) ) -1 ) MDD percent: (in bins, see writeup) 1 -19 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .2 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .2 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .2 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .2 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .2 ), bar) < 0 ) -14 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .15 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .15 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .15 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .15 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .15 ), bar) < 0 ) -9 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .1 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .1 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .1 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .1 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .1 ), bar) < 0 ) -4 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .05 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .05 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .05 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .05 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .05 ), bar) < 0 ) Calmar Ratio: (binned due to MDD) 100*( ( C/C[bar] ) ^ ( 1/ (bar/252) ) -1 ) / ( 1 -19 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .2 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .2 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .2 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .2 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .2 ), bar) < 0 ) -14 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .15 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .15 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .15 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .15 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .15 ), bar) < 0 ) -9 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .1 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .1 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .1 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .1 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .1 ), bar) < 0 ) -4 * ( Sum( ( HHV((C[1] - C)/ C[1],bar) > .05 orelse (HHV(C,2)[1] - C) / HHV(C,2)[1] > .05 orelse (HHV(C,3)[1] - C) / HHV(C,3)[1] > .05 orelse (HHV(C,4)[1] - C) / HHV(C,4)[1] > .05 orelse (HHV(C,5)[1] - C) / HHV(C,5)[1] > .05 ), bar) < 0 ) ) |