Thema: Pivot-EA
Einzelnen Beitrag anzeigen
  #11 (permalink)  
Alt 07.01.16
traderdoc traderdoc ist offline
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, der Fehler liegt in mehreren Details.

Es muß lauten:
Code:
BuyOrderIsOpen=false; 
SellOrderIsOpen=false;
for(int i = OrdersTotal()-1; i >= 0; i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)>0) {
      if(OrderSymbol() == Symbol() && OrderMagicNumber == MagicNumber) {
         if (OrderType() == OP_BUY)  {
            BuyOrderIsOpen=true;
            break;
         }  
         if (OrderType() == OP_SELL) {
            SellOrderIsOpen=true;
            break;
         } 
      }
   }
}

LastOrderCloseTime = 0;
for(i = OrdersTotal()-1; i >= 0; i--) {  
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
       if(OrderSymbol() == Symbol() && OrderMagicNumber == MagicNumber) {
          if (OrderType == OP_BUY || OrderType() == OP_SELL) {
             LastOrderCloseTime = OrderCloseTime();
             break;
          }
       }
   }
} 
    
//Buy
if (!BuyOrderIsOpen) {
   if (Time[0] > LastOrderCloseTime) {
      if(High[1] < Pivot && Ask > Pivot) {
         ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,5,StopLossLevel,TakeProfitLevel, "",MagicNumber);
      }
   }
}
Hier
if(OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES)>0)
muß statt SELECT_BUY_TICKET SELECT_BUY_TRADES
stehen. Ansonsten müßte für i die Tickenummer angegeben werden und nicht die Orderposition in der Orderliste.
Desweiteren sollte mindestens nach dem Chartsymbol und ggf. nach der MagicNumber abgefragt werden. Wenn es keine gibt, dann muß diese Variable wieder aus dem OrderSend gelöscht werden und auch in den Abfragen.
Die Selektion nach dem Chartsymbol ist zwingend notwendig, weil sonst alle offenen bzw. geschlossnenen Orders durchsucht werden.
Das break ist wichtig, damit, von oben gezählt, nur die letzte Order betrachtet wird.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.