4.1 Posisjonsstørrelse ut fra risiko
I kurset om tradingplan lærte du at posisjonsstørrelsen er den viktigste beslutningen på hver handel. En robot med fast størrelse risikerer mer når stop loss er langt unna, og mindre når den er nær. Det vil vi unngå.
Regnestykket
Størrelse = risiko i kroner ÷ tap per lot ved stop loss
Plattformene oppgir hvor mye én tick (minste prisendring) er verdt for én lot – i kontovalutaen. Da blir tapet per lot:
Tap per lot = avstand til stop loss ÷ tick-størrelse × tick-verdi
MQL5
input double InpRiskPercent = 1.0; // Risiko per handel i %
double LotSize(double slDistance) // slDistance i pris, for eksempel 30 * pip
{
double riskMoney = AccountInfoDouble(ACCOUNT_EQUITY) * InpRiskPercent / 100.0;
double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);
double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);
if(slDistance <= 0 || tickValue <= 0 || tickSize <= 0) return(0);
double lots = riskMoney / (slDistance / tickSize * tickValue);
double step = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);
lots = MathFloor(lots / step) * step; // rund ned til lovlig størrelse
if(lots < SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN)) return(0);
return(MathMin(lots, SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX)));
}MQL4
Det samme, men med AccountEquity() og MarketInfo(Symbol(), MODE_TICKVALUE), MODE_TICKSIZE, MODE_LOTSTEP, MODE_MINLOT og MODE_MAXLOT.
cTrader
cTrader gjør det enda enklere. Symbol.PipValue er verdien av én pip for én enhet:
double riskMoney = Account.Equity * RiskPercent / 100.0;
double volume = riskMoney / (StopLossPips * Symbol.PipValue);
volume = Symbol.NormalizeVolumeInUnits(volume, RoundingMode.Down);
if (volume < Symbol.VolumeInUnitsMin) return; // for liten: ingen handelRund alltid ned
Legg merke til at vi runder ned. Runder du opp, risikerer du litt mer enn planlagt på hver handel. Er beregnet størrelse mindre enn minste lovlige størrelse, er det tryggest å la være å handle – ikke å runde opp til minimum.
Regnestykket i praksis
Egenkapital 50 000 kr, risiko 1 % = 500 kr. Stop loss 25 pips på EUR/USD. Tick-størrelse 0,00001 og tick-verdi ca. 9,50 kr per lot. Avstanden 0,0025 er 250 ticks, som gir et tap på 2 375 kr per lot. 500 ÷ 2 375 = 0,21 – rundet ned til 0,21 lot.
Kort oppsummert
- Regn ut størrelsen slik at hver handel risikerer en fast prosent av kontoen.
- Tap per lot = avstand til stop loss ÷ tick-størrelse × tick-verdi.
- Rund alltid ned, og la være å handle hvis størrelsen blir for liten.
65% av ikke-profesjonelle taper penger når de handler CFDer med denne leverandøren.