Fehler, Irrtümer, Fragen - Seite 134

 
EQU:

Sitzen... Ich beobachte...

Ich werde nie glauben, dass MQL5 und MQL4 von demselben Team geschrieben wurden.(((

MQ4 - Fliegen...

MQ5 ist ein Kinderspiel. Nicht böse gemeint - aber...(((


Wie lange ist es her, dass MT4 veröffentlicht wurde? In 2 Jahren wird MT5 als "perfektes Handelssystem" gelten...
 
Dmitriy2:

Ich habe diesen Thread nicht gesehen... das Gleiche...

Die Sache ist die, dass ich nicht dummerweise in jeder Zeile Überprüfungen für alle Gelegenheiten vornehmen werde, die den Code verwirren und unübersichtlich machen. Wenn das nicht in Frage kommt, dann... werden Krücken hinzugefügt, ein ausreichend großes Projekt wird endlich komplett überarbeitet und funktioniert...

Und ganz allgemein bin ich über diesen Ansatz erstaunt... Es stellt sich heraus, dass nicht das erste Mal eine solche Frage entsteht (und ich bin sicher, mehr als einmal in der Zukunft wird in anderen Menschen entstehen), und jedes Mal "zum ersten Mal", um eine Menge von Ihrem und anderen Arbeit Zeit zu erklären, was Sie tun müssen, um diesen Fehler zu umgehen ...

Das einzige, was zu tun ist, um in TESTER, dass in diesem Thread empfohlen, nur ONE Sleep (1000) zu Beginn der Expert Advisor hinzufügen.

Es darf nicht so sein, dass die Shell Pannen implizieren würde, und diese Pannen müssen im Code vermieden werden. Und das TERMINAL arbeitet korrekt und einwandfrei, es gibt KEINE FEHLER (in dieser Situation). Die Funktionsweise des Prüfgeräts unterscheidet sich jedoch von der des Terminals.

ps EQU Hallo:)

Ich wiederhole noch einmal. Wir haben im Vorfeld empfohlen, wie man mit Indikatoren arbeitet, und es in der Dokumentation beschrieben (jemand liest die Dokumentation einfach nicht).

Direkt nach der Erstellung eines Indikator-Handles liegen noch keine Daten vor. Sie müssen in einem anderen Thread berechnet werden. Die Tatsache, dass Sie sofort Daten auf dem Client-Terminal erhalten, betrachten Sie als Glück. Auch hier kann es sein, dass Sie die Daten nicht erhalten.

Das Prüfgerät ist deterministischer als das Terminal - dort ist alles viel synchroner. Und unmittelbar nach der Erstellung eines Handles werden Sie niemals Daten erhalten. In diesem Fall ist "nie" gleichbedeutend mit "manchmal". Für "manchmal" müssen Sie immer noch eine Art von Kontrolle organisieren. Legen Sie also eine Kontrollschleife mit einem Beleg ein. Und alles wird wie im Leben sein.

PS Nun, erstellen Sie nicht bei jeder Iteration einen neuen Handle - das ist unter jedem Gesichtspunkt falsch.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов - Документация по MQL5
 
stringo:

Ich wiederhole noch einmal. Wir haben im Vorfeld empfohlen, wie die Indikatoren gehandhabt werden sollten, und dies in der Dokumentation beschrieben (jemand liest die Dokumentation einfach nicht).

Unmittelbar nachdem der Indikator-Handle erstellt wurde, liegen noch keine Daten vor. Sie müssen in einem anderen Thread berechnet werden. Die Tatsache, dass Sie sofort Daten auf dem Client-Terminal erhalten, betrachten Sie als Glück. Auch hier kann es sein, dass Sie die Daten nicht erhalten.

Das Prüfgerät ist deterministischer als das Terminal - dort ist alles viel synchroner. Und unmittelbar nach der Erstellung eines Handles werden Sie niemals Daten erhalten. In diesem Fall ist "nie" gleichbedeutend mit "manchmal". Für "manchmal" müssen Sie immer noch eine Art von Kontrolle organisieren. Setzen Sie also eine Kontrollschleife mit einem Beleg ein. Und alles wird wie im Leben sein.

PS Nun, man sollte nicht bei jeder Iteration einen neuen Handle erstellen - das ist in jeder Hinsicht falsch.

Dann brauchen wir zwei Funktionen (zusätzliche Zeit...). Damit wird der Tatsache Rechnung getragen, dass die Daten für den Indikator im Code immer unterschiedlich sind. Wird es gut gehen?

   if(ХендлПараболик(ТФОткрытияпоSAR,SAR_stepОткрытияпоSAR,SAR_maximumОткрытияпоSAR,2)==true)
      ЗначениеПараболик=Параболик(ТФОткрытияпоSAR,SAR_stepОткрытияпоSAR,SAR_maximumОткрытияпоSAR,1);

//+----------------------------------------------------------------------------+
//Функция создания и проверки хендла Parabolic SAR                    MQL5     |
//+----------------------------------------------------------------------------+
bool ХендлПараболик(ENUM_TIMEFRAMES период,double step,double maximum,int бар)
  {
   Parabolic=iSAR(СИМВОЛ,период,step,maximum);
   for(int i=0;i<100;i=i+1)
     {
      if(BarsCalculated(Parabolic)>бар)
         return(true);
      Sleep(50);
     }
   return(false);
  }
//+------------------------------------------------------------------+


//+----------------------------------------------------------------------------+
//Функция Parabolic SAR                                               MQL5     |
//+----------------------------------------------------------------------------+
double Параболик(ENUM_TIMEFRAMES период,double step,double maximum,int бар)
  {
   double ЗначениеParabolic[1];
   CopyBuffer(Parabolic,0,бар,1,ЗначениеParabolic);
   return(ЗначениеParabolic[0]);
  }
 
Weiß jemand, wie man den Index der aktuellen Handelssitzung für die Funktion SymbolInfoSessionTrade() erhält? In der Hilfe steht nur die Sitzungsnummer, für die ich die Start- und Endzeit abfragen möchte. Die Indizierung der Sitzungen beginnt bei 0.
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
 
Danke für den Hinweis.
 

Bitte beraten Sie mich. Ist diese Zeile am Anfang des EA notwendig

void OnTick()
{
   if(!MQL5InfoInteger(MQL5_TRADE_ALLOWED)) return;
Wenn nicht, wann wird sie benötigt?
 
gpwr:

Bitte beraten Sie mich. Ist diese Zeile am Anfang des EA notwendig

Wenn nicht, wann wird sie benötigt?

Diese Funktion prüft, ob dieses Kontrollkästchen aktiviert ist:


 
gpwr:

Bitte beraten Sie mich. Ist diese Zeile am Anfang des EA notwendig

Wenn nein, in welchen Fällen ist sie erforderlich?

Wenn der Handel im mql5-Programm verboten ist (z. B. wenn Sie das Kontrollkästchen, das diesem EA den Handel erlaubt, wenn Sie ihn ausführen, deaktiviert haben), dann wird kein Handel durchgeführt. Der Expert Advisor selbst wird wie gewohnt funktionieren. Überzeugen Sie sich selbst davon.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Urain:

Diese Funktion prüft, ob dieses Kontrollkästchen aktiviert ist:

Nein, es handelt sich um eine Meldung über ein anderes Kontrollkästchen, das beim Starten des Experten oder Skripts aktiviert wird