Quantcast
RSS Feeds | Advertise | Subscribe | Contact Us
Futures Magazine.

News

Web Exclusives

 Technology & trading: Volatility sizing codes 

 
Print This Article
Return To Article
Normal Text
Large Text

Codes  for Murray Ruggiero's June 2010 Technology & Trading piece, "Money management: Understanding the game."

The below code sets the position size for each market based on each market’s relative size and volatility.

Sub TSPro_PercentDynamicMargin(Percent,Ceiling,RangeLB,DMarginMult)
Dim M As Integer
Dim S As Integer
Dim DollarsPerMarket
Dim StartAccount
Dim DollarsPerTrade
Dim DynMargin

TradePlan.Session(0).UnitSize = 1

‘For each session Loop though the trading plans.

For S = 0 To TradePlan.SessionCount - 1
DollarsPerMarket = (Tradeplan.SummEquity - tradeplan.OpenPandL) / (tradeplan.MarketCount)

‘Print TradePlan.Session(S).Name,”   “,tradeplan.SummEquity,”  “,Tradeplan.Session(S).MarketCount,”   “,DollarsPerMarket

For M = 0 To TradePlan.Session(S).MarketCount - 1
DynMargin = DynamicMargin(TradePlan.Session(S).Market(M),RangeLB,DMarginMult)

If DollarsPerMarket > DynMargin Then
TradePlan.Session(S).Market(M).EntryNumUnits  = Min(Floor((DollarsPerMarket*(Percent/100))/ DynMargin),Ceiling)
Else
TradePlan.Session(S).Market(M).EntryNumUnits = 0
End If

TradePlan.Session(S).Market(M).ExitNumUnits = TradePlan.Session(S).Market(M).NumContractsHeld
Next
Next
End Sub

Function DynamicMargin(mkt As TSProcessor.IMarket,LBPeriod,MARGINEST)
Dim Arr As Array
Dim SummVal
DIM I
Arr = mkt.DataArray(0, “TrueRange”)
SummVal = 0

For i = 0 To LBPeriod - 1
SummVal = Arr[i] + SummVal
Next

DynamicMargin = ((SummVal/LBPeriod)*mkt.BigPointValue)*MARGINEST
End Function


Comment on This Article

Name:
Email (will not be published):
Subject:
Comment:

Recent Issues


Archived Issues

Most Read Articles

Related Articles