Einzelnen Beitrag anzeigen
  #2 (permalink)  
Alt 20.07.13
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Versuche mal in Zukunft mit Einrückungen zu arbeiten, das ist viel übersichtlicher. Die OrderSelect-Funktion soll sicherlich bei Dir bewirken, dass falls die Abfrage false ist, die Errormeldung rausgeht. Daher habe ich Dir ein ! vor die Funktion eingebaut und ein return, damit das Programm aus der übergeordneten Funktion rausspringt.

Code:
RefreshRates();
double*ppoint=MarketInfo(OrderSymbol(),*MODE_POINT);*
int*total=OrdersTotal();
double*pBid=MarketInfo(OrderSymbol(),*MODE_BID);*

double*pAsk=MarketInfo(OrderSymbol(),*MODE_ASK);

double*priceNew;

//----
for(int*i=0;*i<total;*i++) {
   if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
      Print("Error*=*",GetLastError());
      return;
   }

   OrderPrint();

   if*(OrderType()==OP_BUYSTOP) {
      if*(pBid-OrderOpenPrice()>50*ppoint) {
         priceNew=(pBid-50*ppoint);
        OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit());
         Print("Modified*Order");
      }
   }

   if*(OrderType()==OP_SELLSTOP) {
      if*(OrderOpenPrice()-pAsk>50*ppoint) {
         priceNew=(pAsk+50*ppoint);
        OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit());
         Print("Modified*Order");
      }
   }
}