Hallo Community,
Ich habe einen kleinen Indikator für den MT4 Programmiert bei dem ich Take Profit und Stop Loss Festlege und er berechnet mir die Positionsgröße. Das Funktioniert aber bisher nur bei eur/usd und De30, alles andere führt zu falschen Ergebnissen.
Welche Variable habe ich vergessen oder wie muss ich die Formel ändern?
Buy:
Sell:
fragt sich halt wie deine Objekte konfiguriert sind, das geht hier ja nicht hervor
fragt sich halt wie deine Objekte konfiguriert sind, das geht hier ja nicht hervor
double curLot = (AccountBalance()/100*Risk)/((Ask-ObjectGet("Stop Loss", OBJPROP_PRICE1))*SymbolInfoDouble(_Symbol,SYMBOL_TRADE_CONTRACT_SIZE)) curLot = getWorkingLots(curLot); double getWorkingLots(double eLots) { double iLots; MinLots = MarketInfo(Symbol(), MODE_MINLOT); MaxLots = MarketInfo(Symbol(), MODE_MAXLOT); LotStep = MarketInfo(Symbol(), MODE_LOTSTEP); if (eLots < MinLots) iLots = MinLots; else { iLots = MinLots + NormalizeDouble((eLots - MinLots) / LotStep,0) * LotStep; if (iLots > MaxLots) iLots = MaxLots; } return(iLots); }
Dominique Mikes:
Versuch's mal so
Sell:
getWorkingLots((AccountBalance()/100*Risk)/(((ObjectGet("Stop Loss", OBJPROP_PRICE1)-Bid)*10000)*(1/Bid*10)))
Buy:
getWorkingLots((AccountBalance()/100*Risk)/(((Ask-ObjectGet("Stop Loss", OBJPROP_PRICE1))*10000)*(1/Ask*10)))
Die Funktion "getWorkingLots" gefällt mir vom aufbau sehr gut und ist auch Logisch. Dennoch habe ich es leider recht häufig das nach der Rundung eine "periode 9" entsteht. Wie lässt sich das beheben?
Troubles with the doubles!
Lies mal: https://www.mql5.com/de/articles/1561!
NormalizeDouble ist daher eigentlich überflüssig, denn man kriegt IMMER nur eine Näherung auf die angestrebten Dezimalstellen (es sei denn es geht sich gerade mit einer Zweierpotenz aus!).
- 2009.11.04
- MetaQuotes Software Corp.
- www.mql5.com
Troubles with the doubles!
Lies mal: https://www.mql5.com/de/articles/1561!
NormalizeDouble ist daher eigentlich überflüssig, denn man kriegt IMMER nur eine Näherung auf die angestrebten Dezimalstellen (es sei denn es geht sich gerade mit einer Zweierpotenz aus!).
ganz so überflüssig ists das bei der Lotberechnung nicht, da viele Broker nur 2 Stellige Lot Zahlen akzeptieren
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo Community,
Ich habe einen kleinen Indikator für den MT4 Programmiert bei dem ich Take Profit und Stop Loss Festlege und er berechnet mir die Positionsgröße. Das Funktioniert aber bisher nur bei eur/usd und De30, alles andere führt zu falschen Ergebnissen.
Welche Variable habe ich vergessen oder wie muss ich die Formel ändern?
Buy:
Sell: