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

 
Artyom Trishkin #:
Pause

Wie lautet die Frage?)

 
Alexey Viktorov #:

Wie lautet die Frage?)))

Offensichtlich sollten du und Andrei aufhören zu trollen...

Die Atmosphäre ist wirklich unfreundlich (wie oben erwähnt). Ich bin hierher gekommen, um MQLQL-Probleme zu diskutieren. Aber ich habe etwas gelesen, das nichts mit MMS zu tun hat. Was soll das heißen?

Lassen Sie einen Neuankömmling eine Frage stellen oder so... Oder vielleicht hat er Angst davor...? Verliere dich in der Auseinandersetzung zwischen dir und Andrei... :)
 

Guten Tag zusammen.

Bitte beraten Sie mich, wie ich den Code richtig schreibe.
Ich schließe mehrere Orders auf einmal in verschiedenen Richtungen, verschiedene Währungspaare, nach bestimmten Bedingungen. Aber manchmal wird ein Befehl aufgrund einer Maklerfirma nicht ausgeführt und ein Teil der Aufträge bleibt offen. Ich kann Sleep für jede Bestellung verschreiben. Aber ich möchte etwas Kürzeres.

if ( NormalizeDouble((MaxOpenSell(2) + MaxOpenBuy(2) + MinOpenSell(2))*Point,Digits) >= Profit1 && FindLastSell() >= Block 
         && FindLastBuy() >= 1 && MaxOpenSell(2) > 0 && MA1 < MA2)
      {
         LockTicket = 0;
         CalProfHis = 0;
         bool close =  OrderClose((int)MaxOpenSell(5),MaxOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MinOpenSell(5),MinOpenSell(3), Ask, Slippage, clrPink);
              close =  OrderClose((int)MaxOpenBuy(5),MaxOpenBuy(3), Bid, Slippage, clrBlue);

      }
 
makssub Sleep für jede Bestellung verschreiben. Ich würde gerne etwas Kürzeres verwenden.

https://book.mql4.com/ru/trading/orderclose

Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
  • book.mql4.com
Закрытие и удаление ордеров - Торговые операции - Учебник по MQL4
 
makssub Sleep für jede Bestellung verschreiben. Ich würde gerne etwas Kürzeres haben.

Wenn die Ausstiegs-/Schließungsbedingung erreicht ist, sollten wir die Ticks zum Array hinzufügen. Wenn das Array nicht leer ist, durchläuft das Programm es in einer Schleife und ruft OrderClose für jedes Ticket auf. Überprüfen Sie dann das Vorhandensein der einzelnen Tickets und entfernen Sie sie aus der Liste. Wiederholen Sie diese Aktionen in Abständen von 1-3 Sekunden, bis die Liste leer ist.

 

Hallo.

Ich muss den Nettogewinn des Expert Advisors am Ende der Arbeit berechnen. Ich starte eine Schleife von OrdersHistoryTotal() in OnDeinit und füge OrderProfit() hinzu.

Gewinn=Gewinn+BestellungGewinn();

Aber am Ende ist der Gewinn ein anderer als der, der im Tester gemeldet wird. Ich habe festgestellt, dass der Punktwert bei einem Teil der Aufträge unterschiedlich ist.

Was ist der Grund dafür? Die Spreizung wird manuell im Prüfgerät eingestellt.

 
AlexandrVV #:

Hallo.

Ich muss den Nettogewinn des Expert Advisors am Ende der Arbeit berechnen. Ich führe eine Schleife auf OrdersHistoryTotal() in OnDeinit aus und füge OrderProfit() hinzu.

Gewinn=Gewinn+BestellungGewinn();

Aber am Ende ist der Gewinn ein anderer als der, der im Tester gemeldet wird. Ich habe festgestellt, dass der Punktwert bei einem Teil der Aufträge unterschiedlich ist.

Was ist der Grund dafür? Die Spanne wird manuell im Prüfgerät eingestellt.

Tausch und Provision wurden vergessen hinzuzufügen! Der Spread ist bereits berücksichtigt, da er immer zwischen dem Einstiegs- und dem Ausstiegskurs liegt.

 
Mihail Matkovskij #:

Tausch und Provision wurden vergessen hinzuzufügen! Der Spread ist bereits berücksichtigt, da er immer zwischen dem Einstiegskurs und dem Ausstiegskurs liegt.

Ach ja, richtig! Ich danke Ihnen vielmals!!! )

 
Hallo zusammen. Bitte sagen Sie mir, wo ich ein Skript oder einen Indikator finden kann, der eine Benachrichtigung an mein Telefon sendet, wenn der Preis ein bestimmtes, von mir festgelegtes Niveau erreicht.
 

Können Sie mir sagen, wo das Problem liegt? Der Code sollte Aufträge schließen und, wenn sie fehlen, einen neuen öffnen.

Aber aus irgendeinem Grund, schließt es nur 1 Auftrag und hält bis zum nächsten Signal.

2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Signal 1.1322 < Abschluss 1.1304 ExistPosSell 0
2022.01.17 16:22:08.389 2022.01.04 08:00:00 e: Signal 1.1322 > clos 1.1304 ExistPosBuy 1
2022.01.17 16:22:08.366 2022.01.04 08:00:00 e: Signal 1.1325 < clos 1.1306 ExistPosSell 0
2022.01.17 16:22:08.366 2022.01.04 04:00:00 e: Signal 1.1325 > clos 1.1306 ExistPosBuy 1
2022.01.17 16:22:08.327 2022.01.04 2022.01.04 00:00:00 e: Signal 1.1326 < clos 1.1296 ExistPosSell 0
2022.01.17 16:22:08.327 2022.01.04 00:00:00 e: Signal 1.1326 > clos 1.1296 ExistPosBuy 1
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Signal 1.1328 < close 1.1283 ExistPosSell 0
2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: close #1 buy 0.01 EURUSD at 1.13598 at price 1.12831

2022.01.17 16:22:08.298 2022.01.03 20:00:00 e: Signal 1.1328 > close 1.1283 ExistPosBuy 1
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: open #4 buy 0.01 EURUSD at 1.13512 ok
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Signal 1.134 < Schluss 1.135 ExistPosSell 0
2022.01.17 16:22:08.190 2022.01.03 16:00:00 e: Signal 1.134 > Schluss 1.135 ExistPosBuy 1

if(isNewBar()==true) {  
if(Signal > clos ) {  //--------------------- МА выше цены закрытия предыдущего бара.
     if(ExistPositions( NULL, OP_BUY, Magic) == true) //---------------- Если есть позиция BUY то
ClosePosWithMaxProfitInCurrency(); //--------  закрытие одной позиции с максимальным профитом в валюте депозита.
         if(ExistPositions( NULL, OP_BUY, Magic) == False) //----------- если позиции BUY отсутствуют то
   ticket=OpenPosition(NULL,OP_SELL, NDLot(Lot),0,0, Magic, Com);} //------------ открываем позицию SELL

if(Signal < clos ) { //--------------------- МА ниже цены закрытия предыдущего бара.
    if(ExistPositions( NULL, OP_SELL, Magic) == true) //---------------- Если есть позиция SELL то
 ClosePosWithMaxProfitInCurrency(); //---------------------закрытие одной позиции с максимальным профитом в валюте депозита.
        if(ExistPositions( NULL, OP_SELL, Magic) == False)  //----------- если позиции SELL отсутствуют то
  ticket=OpenPosition(NULL,OP_BUY, NDLot(Lot),0,0, Magic, Com);} //------------ открываем позицию BUY

} return;