Ciao Roberto, ho ripreso un tuo codice di money management sul position sizing. Quando si arrotondano i contratti il codice passa da 1 a 1,1, da 1,1 a 1,2 …
Riesci a modificare ROUND per passare da 1 contratto a 2 ( da 2 a 3 …) non appena il valore è superiore a 1? Grazie
once positionSizeActivation = 1
once DD = 500 //500 DrawDown
once DDmultiplier = 3 //3.0 DD multiplier
once myMargin = 0.5 //0.5% margin required by the broker
once myCapital = (DD * DDmultiplier) + (high * MyMargin / 100)
if intraDayBarIndex = 0 then
myCapital = (DD * DDmultiplier) + (high * MyMargin / 100)
endif
once minPositionSize = 1
once startPositionSize = 1
once positionSize = startPositionSize
if positionSizeActivation then
myEquity = myCapital + strategyProfit
myInvestment = myEquity / myCapital
tempLot = startPositionSize * myInvestment
tempLot = round((tempLot * 10) – 0.5) / 10
positionSize = max(minPositionSize,tempLot)
endif
Sostituisci tempLot = round((tempLot * 10) – 0.5) / 10, con tempLot = ceil(tempLot,0).
Grazie Robero, ho provato e funziona. Potresti inserire lo stesso arrotondamento da 1 a 2 anche in questa formula semplificata di Vonasi (che presenta altrimenti lo stesso incremento da 1 a 1.1 …)?
MoneyManagement = 1
Capital = 10000
MinBetSize = 1
Equity = Capital + StrategyProfit
//Increasing and decreasing position size
IF MoneyManagement = 1 THEN
PositionSize = Max(MinBetSize, Equity * (MinBetSize/Capital))
PositionSize = Round(PositionSize*100)
PositionSize = PositionSize/100
ENDIF
La penultima riga scrivila così:
PositionSize = ceil(PositionSize/100,0)