nachdem ich die von mir erwähnten änderungen vorgenommen habe klappt nun alles so wie es soll
Zitat:
Zitat von markusrgb
deshalb hab ich die nachkomma Berechnungen jetzt mal in die if==true Funktionen mit eingebaut ....
die Variablen werd ich auch noch differenzieren - nur zur Sicherheit
Code:
// SL bei Long Deals setzen
if (OrderSelect(LongOrder,SELECT_BY_TICKET)==true)
{
if(OrderCloseTime()==0 && OrderStopLoss()==0)
{
// SL bei Long Deals setzen - Erst aber umrechnung für 0,25 Schritt Broker
// Umrechnung SL_Prozent in 0,25er Schritten
StoppLoss = NormalizeDouble(OrderOpenPrice()/(1+(SL_Prozent/100.0)),2);
SL = (int)StoppLoss; //zur Sicherheit!
NachkommaSL = StoppLoss - SL;
if (NachkommaSL <= 0.12) StoppLoss = SL;
if (NachkommaSL > 0.12 && NachkommaSL <= 0.37) StoppLoss = SL + 0.25;
if (NachkommaSL > 0.37 && NachkommaSL <= 0.62) StoppLoss = SL + 0.5;
if (NachkommaSL > 0.62 && NachkommaSL <= 0.87) StoppLoss = SL + 0.75;
if (NachkommaSL > 0.87) StoppLoss = SL + 1.0; Alert ("NachkommaSL bei LD = ",DoubleToStr(StoppLoss, 2));
//StoppLoss = NormalizeDouble(OrderOpenPrice()/(1+(SL_Prozent/100)),Digits);// nur bei ohne Umrechnung in 0,25er Schritten
OrderAngepasst = OrderModify(OrderTicket(),OrderOpenPrice(),StoppLoss,OrderTakeProfit(),0,Yellow);
Print("SL für Long Order gesetzt bei = ",StoppLoss); Alert ("SL für Long Order gesetzt ",DoubleToStr(StoppLoss, 2));
}
}
|
das einzige was mir aufgefallen ist das der SL/TP manchmal nicht zu 100% richtig berechnet wird ... weicht manchmal um 1-2 Punkte ab
(aber das ist in meinem Fall im Moment noch nicht so relevant)