Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 21.11.13
pako pako ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Code:
if( NormalizeDouble( OrderOpenPrice() - Ask - Offset*Point, Digits ) > 0.0 )
       if(!OrderModify(OrderTicket(), NormalizeDouble( Ask+Offset*Point, Digits ), SL, TP, 0))
        Alert(" MODIFY BUYSTOP ERROR", GetLastError());
so ähnlich

Code:
//+----------------------------------------------------------------------------+
void TrailingOrders() 
{
    double di, pa, pb, pp, sl, tp;
    pp=MarketInfo(OrderSymbol(), MODE_POINT);
    if (OrderType()==OP_SELLLIMIT)
     {
       pa=MarketInfo(OrderSymbol(), MODE_BID);
       if (OrderOpenPrice()-pa>(TrailingStop+TrailingStep-1)*pp) 
         {
          di=OrderOpenPrice()-pa-TrailingStop*pp;
           if (OrderStopLoss()  >0) sl=OrderStopLoss()  -di; else sl=0;
           if (OrderTakeProfit()>0) tp=OrderTakeProfit()-di; else tp=0;
           ModifyOrder(pa+TrailingStop*pp, sl, tp);
         }
     }
  if (OrderType()==OP_BUYLIMIT) 
   {
    pb=MarketInfo(OrderSymbol(), MODE_ASK);
    if (pb-OrderOpenPrice()>(TrailingStop+TrailingStep-1)*pp) 
      {
        di=pb-OrderOpenPrice()-TrailingStop*pp;
         if (OrderStopLoss()  >0) sl=OrderStopLoss()  +di; else sl=0;
         if (OrderTakeProfit()>0) tp=OrderTakeProfit()+di; else tp=0;
        ModifyOrder(pb-TrailingStop*pp, sl, tp);
      }
   }
}
//+------------------------------------------------------------------+

Geändert von pako (21.11.13 um 22:11 Uhr)