Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 856

 
Artyom Trishkin:
Wie geöffnet? Was ist der Grund für die Eröffnung?

Der Grund für die Eröffnung einer Position im Euro und der Grund für die Eröffnung einer Position im Pfund. Offensichtlich muss es irgendwie in den Code des Euro Expert Advisors geschrieben werden. Aber wie - das verstehe ich nicht.

 
novichok2018:

Der Grund für die Eröffnung einer Position im Euro und der Grund für die Eröffnung einer Position im Pfund. Offensichtlich muss es irgendwie in den Code des Euro Expert Advisors geschrieben werden. Aber wie - das verstehe ich nicht.

Dies geschieht durch das übliche if() mit Prüfung der Kommentare. Und in den Bestellkommentaren fügen wir den Zeitpunkt der Eröffnung oder das Ticket der Bestellung ein, ab dem die zweite Bestellung eröffnet wird.
 
Alexandr Sokolov:
Der Code wird durch das übliche if() mit Kommentarprüfung implementiert. Im Kommentar der Bestellung sollten Sie den Zeitpunkt der Eröffnung oder das Ticket der Bestellung angeben, von der aus die zweite Bestellung eröffnet wird.

Wie kann die if() des Euro EA-Codes auf den Pfund EA-Code verwiesen werden? Wie kann ich die Position des Pfunds im Euro-Code sehen?

 
novichok2018:

Wie kann die if() des Euro EA-Codes auf den Pfund EA-Code verwiesen werden? Wie sehen Sie die Position des Pfunds im Euro-Code?

Sie machen die Dinge selbst kompliziert. Sie durchlaufen einfach eine Schleife durch die Euro-Bestellungen und vergleichen jede Euro-Bestellung mit allen Pfund-Bestellungen. Und wenn keiner der Kommentare übereinstimmt, dann öffnen Sie eine Pfund-Bestellung mit dem Kommentar, in dem das Ticket oder der Zeitpunkt der Öffnung der Euro-Bestellung

 

Können Sie mich bitte aufklären, wie ich die Ergebnisse der Optimierung eines EA im MT5-Tester auf den EA im MT5-Chartpanel übertragen kann? Wie kann man sie retten?

Im Handbuch und bei Google kann ich es noch nicht finden ...

VIELEN DANK.

Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
 
Alexandr Sokolov:

Sie machen die Dinge selbst kompliziert. Sie durchlaufen einfach eine Schleife durch die Euro-Bestellungen und vergleichen jede Euro-Bestellung mit allen Pfund-Bestellungen. Und wenn keiner der Kommentare übereinstimmt, dann eröffnen Sie eine Pfund-Bestellung mit dem Kommentar des Tickets oder dem Zeitpunkt der Eröffnung einer Bestellung auf den Euro.

Um ehrlich zu sein - ich verstehe gar nichts. Die Situation stellt sich wie folgt dar: Weder für den Euro noch für das Pfund gibt es Aufträge. Und wir haben Bedingungen für die Eröffnung einer Position in dem Pfund, und die Position wird eröffnet. Die Eröffnung einer Position auf das Pfund sollte ein Signal für die Eröffnung einer Position auf den Euro sein und die Position sollte eröffnet werden. Was sollte ich also in diesem Zyklus tun? Und ich verstehe nichts von den Kommentaren. Können Sie einen Beispielcode schreiben, damit ich ihn verstehe?

Und können wir im Code für das Pfund zwei Positionen eröffnen - eine für das Pfund und eine für den Euro -, wenn die Bedingungen erscheinen, indem wir das gewünschte Symbol in OrderSend angeben? Wird das funktionieren?

 
novichok2018:

Um ehrlich zu sein - ich verstehe gar nichts. Die Situation stellt sich wie folgt dar: Weder für den Euro noch für das Pfund gibt es Aufträge. Und es gibt Bedingungen für die Eröffnung einer Position im Pfund, und die Position wurde eröffnet. Die Positionseröffnung beim Pfund sollte die Positionseröffnung beim Euro auslösen und die Position sollte eröffnet werden. Was sollte ich also in diesem Zyklus tun? Und ich verstehe nichts von den Kommentaren. Können Sie einen Beispielcode für mich schreiben, damit ich ihn verstehe?

int ticket;
for(int  i = 0; i < OrdersTotal(); i++)
  {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
     {
      if(OrderMagicNumber() == id_number1 && OrderSymbol() == "GBPUSD")
        {
         if(SecondExpert(OrderTicket()) == false)
           {
            ticket = OrderSend(...);
           };
        };
     };
  };

//----------------------------------------------------------------------------------------------------------------------

bool SecondExpert(int ticket)
  {
   bool se = false;
   for(int i = 0; i < OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
        {
         if(OrderMagicNumber() == id_number2 && OrderSymbol() == "EURUSD")
           {
            if(OrderComment() == (string)ticket)
              {
               se = true; break;
              };
           };
        };
     };
  //-----------------------------------------------------------------
   return(se);
  }


So sehe ich das).

 
novichok2018:

Um ehrlich zu sein, habe ich nichts verstanden. Die Situation stellt sich wie folgt dar: Es liegen weder für den Euro noch für das Pfund Aufträge vor. Und wir haben Bedingungen für die Eröffnung einer Position im Pfund, und die Position wurde eröffnet. Die Positionseröffnung beim Pfund sollte die Positionseröffnung beim Euro auslösen und die Position sollte eröffnet werden. Was sollte ich also in diesem Zyklus tun? Und ich verstehe nichts von den Kommentaren. Können Sie einen Beispielcode für mich schreiben, damit ich ihn verstehe?

Wenn es sich um einen EA handelt, sollte es in etwa so aussehen

if(условие для EURUSD)
 {
  OrderSend("EURUSD", ... );
  OrderSend("GBPUSD", ... );
 }

if(условие для GBPUSD)
 {
  OrderSend("GBPUSD", ... );
  OrderSend("EURUSD", ... );
 }

Oder noch einfacher

if(условие для EURUSD || условие для GBPUSD)
 {
  OrderSend("EURUSD", ... );
  OrderSend("GBPUSD", ... );
 }
 
Alexey Viktorov:

Wenn es sich um einen EA handelt, sollte es in etwa so aussehen

Oder noch einfacher

Ja, ich habe es mir irgendwie vorgestellt, aber ich kann die Arbeit an der Historie nicht überprüfen, weil die Eröffnung einer Position auf EUR aufgrund der Bedingung für GBP erfolgen sollte und sich dies nicht im Code für EUR widerspiegelt, und die Historie auf EUR abgebildet ist. Daher die Unsicherheit über die Richtigkeit der Entscheidung.

 
novichok2018:

Ja, so habe ich es mir vorgestellt, aber ich kann nicht überprüfen, ob es in der Historie funktioniert, weil die Eröffnung einer Position auf dem Euro durch die Bedingung für das Pfund erfolgen sollte und sich nicht im Code für den Euro widerspiegelt, während die Historie für den Euro angezeigt wird. Daher die Unsicherheit über die Richtigkeit der Entscheidung.

Die Funktionbool ExistPositions() von Igor Kim gibt das Kennzeichen für das Vorhandensein von Positionen zurück, aber es ist zu schwierig für mich, sie an meine spezifischen Bedingungen anzupassen. Aber ich glaube nicht, dass sie in der Geschichte getestet werden wird.

Wenn niemand einen in der Praxis erprobten Code hat, den er mir zeigen kann, werde ich es wissenschaftlich versuchen. Ich danke Ihnen.

Grund der Beschwerde: