OmniVest Forum OmniVest Forum
forums calendars search
today this week
 
register logon control panel Forum Rules
You are currently browsing as a guest.
You should logon to access more features
A Self-Moderated Community - ALL MEMBERS, PLEASE READ!
Vote for Members who contribute the most to your trading, and help us moderate content within the Forums.


[Random Quote] -


This message cannot be deleted. It is the first message of the thread.
Administrators or moderators may choose to delete the entire thread


 
Jim Dean

Elite
10002525
Posts: 1059

Joined: 10/11/2012
Location: L'ville, GA

User Profile
 
Subject : CAR, MDD and Calmar, in an OScript condition
Posted : 5/8/2014 1:49 PM
Post #30437

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 ) )
Deleting message 30437 : CAR, MDD and Calmar, in an OScript condition


Nirvana Systems
For any problems or issues please contact our Webmaster at webmaster@nirvsys.com.