Einzelnen Beitrag anzeigen
  #3 (permalink)  
Alt 05.01.12
naranjoe naranjoe ist offline
Elite Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 116
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

das ist kein Problem.

Code:
 
void UpdateBE()
{
 if(UpdateToBE <= 0) return;

 for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
      {
       if(OrderType() == OP_BUY && OrderOpenPrice() > OrderStopLoss() && Bid - OrderOpenPrice() >= UpdateToBE * Point)
  	 {
  	  OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
  	 }
  		 
  	if(OrderType() == OP_SELL && OrderOpenPrice() < OrderStopLoss() && OrderOpenPrice() - Ask >= UpdateToBE * Point)
  	 {
  	  OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice(), OrderTakeProfit(), 0);
  	 }
      }
    }
}
Definiere UpdateToBE als externe Variable und setzte sie z.B. auf 20 Pips (bei 0 wird kein Update to BE ausgeführt).
Das void UpdateBE() rufst du aus der void Start() auf (also bei jedem Tick).
Fertig!
Spread wird berücksichtigt.
Läuft die Order nach dem Break Even Update ins SL wird sie exakt mit 0 geschlossen.

Gruß
naranjoe