EA läuft nicht auf mehreren Paaren, brauche Hilfe - Seite 4

 
whroeder1 2016.12.14 03:35| 74.162.37.113ban DE
Keith Watford: Schleife durch die offenen Aufträge und zählen nur Trades, die die magische Zahl und das Chartsymbol des EA haben.
Genau, und das ist nicht das, was dein letzter Beitrag tut.
 
Ich habe Ihr anderes Thema gelöscht, da es das gleiche Thema wie dieses war. Ich habe den Kommentar von WHRoeder kopiert und hier eingefügt, bevor ich ihn gelöscht habe
 
Keith Watford:
Ich habe Ihr anderes Thema gelöscht, da es das gleiche Thema wie dieses war. Ich habe den Kommentar von WHRoeder kopiert und hier eingefügt, bevor ich ihn gelöscht habe
Okay, das ist gut, also für die Schleife, sollte es ähnlich wie die für die closeorder gerahmt werden, und wenn ja, sollte ich das Programm die Aufträge hoch oder runter zählen lassen?
 

   int buy_count=0;
   int sell_count=0;

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
        {
         if(OrderType()==OP_BUY)
           {
            buy_count++;
           }
         if(OrderType()==OP_SELL)
           {
            sell_count++;
           }
        }
     }

So etwas in der Art

Ich zähle immer rückwärts, es sei denn, ich habe einen besonderen Grund, es nicht zu tun.

 
  1. Sie haben jetzt eine OrderSelect-Schleife, die nach MN und Symbol filtert.
  2. Mit welchem MN eröffnen Sie nun Geschäfte?
 
Matt_Townsend:
Okay, das ist in Ordnung, so für die Schleife, sollte es ähnlich wie die eine für die closeorder gerahmt werden, und wenn ja sollte ich das Programm zählen nach oben oder unten die Aufträge haben?
Ich habe jetzt also eine Schleifenfunktion sowohl für die Funktion "Order schließen" als auch für die Funktion "Order beenden", aber es wird immer noch nicht unabhängig gehandelt. Obwohl es immer noch öffnet Trades und Schließen auf die Parameter festgelegt, wie ich in der Strategie-Tester sehen kann, obwohl es nicht auf mehrere Charts in einer Live-Demo zu arbeiten.
 
Matt_Townsend:
Ich habe jetzt eine Schleifenfunktion sowohl für meine Order-Close-Funktion als auch für die Order-End-Funktion, aber er handelt immer noch nicht unabhängig. Es werden zwar immer noch Trades eröffnet und mit den eingestellten Parametern geschlossen, wie ich im Strategietester sehen kann, aber es funktioniert nicht auf mehreren Charts in einer Live-Demo.

Hat jeder EA eine andere magische Zahl?

Zeigen Sie Ihre Schleifen, die Sie jetzt verwenden.

 
Keith Watford:

Hat jeder EA eine andere magische Zahl?

Zeigen Sie Ihre Schleifen, die Sie jetzt verwenden.

for(int i=OrdersTotal();i<=0;i--)
      {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
    //--- Check for buy order
       if(fastma > slowma)
        {
         if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
            Print("Buy order opened :", OrderOpenPrice());
         else
            Print("Order failed to open : ", GetLastError());      
         return(0);
        }
     //--- Check for sell order          
       if(fastma < slowma)
        {
         if(OrderSend(Symbol(),OP_SELL,Lots,Bid,10,0,0,"",MagicNumber,0,Red))
            Print("Order opened : ", OrderOpenPrice());                
         else
            Print("Order failed to open : ", GetLastError());
         return(0);        
        }
        break;
      }

Hier ist die Orderend-Schleife

Wie wll ich die MN als externe int haben, so kann ich es auf jedem Diagramm, das ich den EA auf setzen ändern.
 
Zuerst haben Sie
      if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
was korrekt ist
Aber Sie haben
         ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue);
Was nicht der Fall war. Und Sie haben meine Frage ignoriert.


Dann änderst du still und leise das Senden in
         if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
Was jetzt richtig ist.
Aber du brichst leise die Auswahlschleife ab.
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) break;
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
Was nicht der Fall ist.

In Gegenwart von mehreren Aufträgen (ein EA mehrere Charts, mehrere EAs, manueller Handel)
 
whroeder1:
Zuerst haben Sie
      if(OrderSelect(i,SELECT_BY_POS) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
was korrekt ist
Aber Sie haben
         ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",0,0,Blue);
Was nicht der Fall war.

Dann änderst du leise das Senden in
         if(OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,0,"",MagicNumber,0,Blue))
Das ist richtig
und unterbrechen die Auswahlschleife.
      if(OrderMagicNumber()==MagicNumber || OrderSymbol()==Symbol()) continue;
Was nicht der Fall ist.
Sollte ich also überhaupt kein Continue oder Break in der Schleife haben?