Thema: Stoploss
Einzelnen Beitrag anzeigen
  #15 (permalink)  
Alt 23.05.17
Kronenchakra Kronenchakra ist offline
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Na das sieht ja schon nach was aus!
Kleine Korrektur: Du brauchst sowohl Ask als auch Bid.
Code:
double openAsk=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits);
double openBid=NormalizeDouble(MarketInfo(Symbol(),MODE_BID),_Digits);
double buy_SL =NormalizeDouble(openAsk-Stoploss  *_Point,_Digits);
double buy_TP =NormalizeDouble(openAsk+Takeprofit*_Point,_Digits);
double sell_SL=NormalizeDouble(openBid+Stoploss  *_Point,_Digits);
double sell_TP=NormalizeDouble(openBid-Takeprofit*_Point,_Digits);
Sieht bei mir sehr ähnlich aus:
Code:
//+------------------------------------------------------------------+
//| Calculate SL, TS, TP                                             |
//+------------------------------------------------------------------+
void CalcStopsLong ()
{
   if(SL>0) SL_Buy =NormalizeDouble(Ask-SL*_Point,_Digits);
   if(TS>0) TS_Buy =NormalizeDouble(Ask-TS*_Point,_Digits);
   if(TP>0) TP_Buy =NormalizeDouble(Ask+TP*_Point,_Digits);
}

void CalcStopsShort()
{
   if(SL>0) SL_Sell=NormalizeDouble(Bid+SL*_Point,_Digits);
   if(TS>0) TS_Sell=NormalizeDouble(Bid+TS*_Point,_Digits);
   if(TP>0) TP_Sell=NormalizeDouble(Bid-TP*_Point,_Digits);
}
Den Trailingstop aktualisierst du laufend, und wenn die Position im Gewinn ist und der TS über dem Einkaufspreis (jetzt für eine Long Order), änderst du mit OrderModify(...) den StopLoss Level.
Eine Schrittweite bzw ein Schwellwert (zb OrderStep) sollte auch noch definiert und geprüft werden, damit OrderModify() nicht bei jeder minimalsten Änderung ausgelöst wird.

Ich hoffe dir weitergeholfen zu haben.