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

 
makssub #:
Nachmittags. Ich verwende diesen Code, um alle Aufträge abzuschließen. Aber mir ist aufgefallen, dass nicht alle, die es gibt, auch geschlossen sind. Was kann ich hinzufügen, um sie alle zu schließen, auch wenn es nicht das erste Mal ist. Wenn möglich, geben Sie uns bitte ein Beispiel.

https://www.mql5.com/ru/docs/common/sleep

   if(AccountInfoDouble(ACCOUNT_EQUITY)<=TargetLoss || AccountInfoDouble(ACCOUNT_EQUITY)>=TargetProfit)
     {
      AllClose();
      Sleep(1000);
      AllClose();
      ExpertRemove();
     }
//---
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Sleep - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Letzte Frage )

Wer auch immer seinen EA von der MQL-Plattform auf Windows oder Linux portiert hat. Lassen Sie mich erklären, einmal vor langer Zeit schrieb Skripte für die mu online, dass das Spiel selbst gepumpt den Helden, während Sie schlafen. Die Frage ist also, wer den Berater außerhalb der Plattform versetzt hat? Er handelt wie ein Mensch, nicht wie ein Roboter.

Entschuldigung, wenn ich es nicht richtig erklärt habe)

 
makssub #:

Letzte Frage )

Wer auch immer seinen EA von der MQL-Plattform auf Windows oder Linux portiert hat. Lassen Sie mich erklären, einmal vor langer Zeit schrieb Skripte für die mu online, dass das Spiel selbst gepumpt den Helden, während Sie schlafen. Die Frage ist also, wer den Berater außerhalb der Plattform versetzt hat. Er handelt wie ein Mensch, nicht wie ein Roboter.

Wenn das nicht richtig erklärt wurde, tut es mir leid.)

auf einem Windows-Server (VDS oder VPS) befindet sich MetaTrader, auf dem der Expert Advisor läuft. Das ist alles: Der Soldat schläft, der Dienst geht :-)

Die Handelsplattform ist algorithmisch und für die aktive Teilnahme von Robotern konzipiert, wenn auch nicht vollständig von einem Roboter.

Obwohl, Clicker (Software, die "klickt" in den Tasten emuliert einen Menschen) jemand verwendet. Und es werden regelmäßig Freiberufler gesucht, die im Internet zum Verkauf stehen.

 

Guten Tag!

Kann jemand einen EA oder ein Stück Code treffen (in den Code der Eule enthalten), um die SL TP für die nächste Bestellung zu ändern?

Angenommen, der Auftrag wurde mit 0,01 SL= 30 TP=100 eröffnet.

der nächste Auftrag wurde mit 0,02SL= 30 TP=95 eröffnet

usw.

Mit welcher Funktion soll ich dies beschreiben?

So wird meinSL TP derzeit zugewiesen:

//+-----------------------------------------------------------------------------------------------+
//|                                                                    Функция модификации ордера |
//+-----------------------------------------------------------------------------------------------+
void vOrderModify(int iOTi)
  {
   int    iOTy = -1;    // Тип ордера
   double dOOP = 0;     // Цена открытия ордера
   double dOSL = 0;     // Стоп Лосс
   int    iMag = 0;     // Идентификатор советника
   double dSL  = 0;     // Уровень убытка
   double dTP  = 0;     // Уровень прибыли

// Выберем по тикету открытый ордер, получим некоторые значения
   if(OrderSelect(iOTi, SELECT_BY_TICKET, MODE_TRADES))
     {
      iOTy = OrderType();
      dOOP = OrderOpenPrice();
      dOSL = OrderStopLoss();
      iMag = OrderMagicNumber();
     }

// Если ордер открыл данный советник, то входим в условие
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMag)
     {
// Если Стоп Лосс текущего ордера равен нулю, то модифицируем ордер
      if(dOSL == 0)
        {
         if(iOTy == OP_BUY)
           {
            dSL = NormalizeDouble(dOOP - StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP + TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }

         if(iOTy == OP_SELL)
           {
            dSL = NormalizeDouble(dOOP + StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP - TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }
        }
     }
  }
 

Meine Herren Fachleute, bitte beraten Sie mich, mir fällt nichts ein (ich habe gerade erst angefangen, das Programmieren zu lernen).

Hier ist ein Teil eines Expert Advisors, egal welcher es ist. In der Funktion OnInit() gibt es zwei Rückgabeoperatoren.

Ich kann die Zahlen -1 und 0 nicht in Klammern setzen, woher kommen sie und wohin kehrt das abgebrochene Programm zurück?

Experteninitialisierungsfunktion //|

//+------------------------------------------------------------------+
int OnInit()
{
*******************************************
if(********* || *********)
{
Alert("***************",******(),"!!");
zurück(-1);
}


**** = *******;
*** = *********;
if(_******** || _********)
{
************;
************;
}
zurück(0);
}
//+------------------------------------------------------------------+
//| Experten-Deinitialisierungsfunktion |
 
vladeimirami #:

Ich kann die Zahlen -1 und 0 nicht in Klammern setzen, woher kommen sie und wohin kehrt das abgebrochene Programm zurück?

https://www.mql5.com/ru/docs/event_handlers/oninit

Lesen Sie weiter. Zero ist ein Erfolg und das Programm wird weiterlaufen. Die anderen Zahlen sind das Ende der Arbeit.

Документация по MQL5: Обработка событий / OnInit
Документация по MQL5: Обработка событий / OnInit
  • www.mql5.com
OnInit - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Stepanenko #:

https://www.mql5.com/ru/docs/event_handlers/oninit

Lesen Sie weiter. Zero ist ein Erfolg und das Programm wird fortgesetzt. Die anderen Zahlen sind das Ende der Arbeit.

Das ist Scheiße. Ich hab's. Ich habe die AufzählungENUM_INIT_RETCODE nicht sorgfältig gelesen. Danke. Wenn die Initialisierung fehlschlägt, wird das Programm mit einer beliebigen Zahl ungleich Null beendet. Zumindest hat er sich vom toten Punkt wegbewegt. Ich danke Ihnen!
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Die Aufgabe, Symboldiagramme auf fehlende Balken zu überprüfen

Ich kann keine Lösung für dieses Problem finden

Ich muss das Skript nach folgendem Prinzip schreiben: Print(date), Print(date), Print(date) , wenn es eine Taktlücke gibt

Zum Beispiel sollte das Skript 48 Balken im M30-Diagramm undPrint(date) sein, wenn es eine Lücke von 47 Balken gibt.

Wie schreibt man ihn? Eine plattformübergreifende Lösung ist wünschenswert.

P.S. Dies sollte bei allen verfügbaren Historien geschehen.

 

Vitaly, wie schätzen Sie das Bestehen der Prüfung ein? 48 Riegel pro Tag? Manchmal hört die Arbeit um 23 Uhr auf, manchmal fängt sie um 2 Uhr an, und der Rubel wird nachts nicht gehandelt.

Wenn es sich ausschließlich um 24 Stunden an 5 Tagen in der Woche handelt, werden wir jeden Balken der Reihe nach ausprobieren und die Reihenfolge überprüfen. Aber dann gibt es Signale über fehlende Takte, die es nicht geben sollte.

 
Vitaly Muzichenko Print(date), Print(date) , wenn es eine Taktlücke gibt

Zum Beispiel sollte das Skript 48 Balken im M30-Diagramm undPrint(date) sein, wenn es eine Lücke von 47 Balken gibt.

Wie schreibt man ihn? Eine plattformübergreifende Lösung ist wünschenswert.

P.S. Dies sollte bei allen verfügbaren Historien geschehen.

Es gibt eine ähnliche Aufgabe - einen Zeitrahmen mit verpassten Balken zu erstellen. Das heißt zum Beispiel, genau 1440 Minuten an einem Tag zu haben. Es macht nichts, wenn einige von ihnen leer sind.

nichts schnelles, ordentliches und schönes einfiel :-( Nur um ein Array am Anfang des Tages zu bilden, die verstrichenen Minuten ab 0:00 zu zählen und auf diese Weise zu füllen.

Und die Tatsache der fehlenden Minuten kann durch den Vergleich von iBars(aktuelle_Zeit,0:01 des aktuellen Tages) und (aktuelle_Zeit_Anfang des Tages)/PERIOD_SECONDS... überprüft werden.

Grund der Beschwerde: