Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 927

 
Seric29:

Ich meine, wenn die Bedingung wahr ist, dann führe 2 identische Aktionen durch, z.B.

Ich habe Variablen deklariert und nichts wird getan, außer entweder diese AktionPrice_UrNij = Bar_Cl[iHgCL]>Bar_Op[iHgOP] ? Bar_Cl[iHgCL]:Bar_Op[iHgOP]; oder diese AktionPrice_UrVerh = Bar_Cl[iLwCL]<Bar_Op[iLwOP] ? Bar_Cl[iLwCL]:Bar_Op[iLwOP]; wie kann man 2 identische Aktionen mit oberer und unterer Ebene nach Bedingung durchführen. Kann mir jemand einen Vorschlag machen, wie man das in kürzerer Form schreiben kann?

1. ein solcher Code ist sehr schwer zu lesen.

          int iHgCL=iHighest(_Symbol,PERIOD_D1,MODE_CLOSE,4,qt+1); int iHgOP=iHighest(_Symbol,PERIOD_D1,MODE_OPEN,4,qt+1);

Kaum jemand würde nach einer Variablendeklaration außerhalb eines Zeilenanfangs suchen.

2. Sie müssen nur die Funktion zum Aufbau von Ebenen zweimal innerhalb des if-Blocks aufrufen

vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrNij, iTime(_Symbol,PERIOD_D1,qt), Price_UrNij, clrGreen, DRAW_LINE, 2, false, false);
vs_Line_TR( Line_TR, iTime(_Symbol,PERIOD_D1,qt+2),  Price_UrVerh, iTime(_Symbol,PERIOD_D1,qt), Price_UrVerh, clrGreen, DRAW_LINE, 2, false, false);
 

Worin besteht der Unterschied in der Verwendung? Was ist die Nuance?

MqlDateTime dt;
datetime time=TimeTradeServer(dt)

и

MqlDateTime tm;
TimeToStruct(TimeTradeServer(),tm);
 
Fast528:

Worin besteht der Unterschied in der Verwendung? Was ist die Nuance?

Es gibt wahrscheinlich keinen Unterschied.

 
Alexey Viktorov:

Es gibt wahrscheinlich keinen Unterschied.

Ich nehme an, dass Sie im ersten Fall die Zeitvariable und die Struktur verwenden möchten und im zweiten Fall nur die Strukturdaten?

 
Fast528:

Ich nehme an, dass Sie im ersten Fall die Zeitvariable und die Struktur verwenden möchten und im zweiten Fall nur die Strukturdaten?

Ich habe nicht auf die Zeitvariable geachtet.

Wozu dient es? Schließlich kostet es nichts, die Struktur in Zeit zu übersetzen. In diesem Fall wird jedoch kein Speicher für die Variable reserviert.

Oder wenn wir nur die Zeit ohne Unterteilung in Teile benötigen, warum sollten wir dann Speicher für die Struktur reservieren?

 
Alexey Viktorov:

Ich habe nicht auf die Zeitvariable geachtet.

Wozu ist das gut? Es kostet nichts, die Struktur in Zeit zu übersetzen. In diesem Fall wird jedoch kein Speicher für die Variable reserviert.

Oder wenn Sie nur die Zeit ohne Division benötigen, warum sollte ich dann den Speicher für die Struktur reservieren?

Ich brauche den Indikator, um Einstiegs- und Ausstiegspositionen auf dem Diagramm anzuzeigen und eine Linie zwischen ihnen zu ziehen, zum Beispiel auf der Periode von heute minus 1 Tag, wie es normalerweise in einem Indikator oder Roboter getan wird?

 

Einen Test durchführen.

Das Programm öffnet die Datei in OnInit():

CFileTxt file;
int file_handle=file.Open("file_name.lic",FILE_READ);
if(file_handle==INVALID_HANDLE)
     {      
      return INIT_FAILED;
     }

Es wird nicht nur die Datei im Ordner nicht gefunden, sondern es wird auch eine andere Datei im Ordner MQL5-Dateien des Testagenten nach dem Test gelöscht. Es gibt insgesamt zwei Dateien, die beim Starten gelöscht werden.

Fehler5004 bei FileOpen().

Das Problem liegt nur im Prüfgerät.

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

Durchführung des Tests.

Das Programm öffnet die Datei in OnInit():

Es wird nicht nur die Datei im Ordner nicht gefunden, sondern es wird auch eine andere Datei im Ordner MQL5-Dateien des Testagenten nach dem Test gelöscht. Es gibt insgesamt zwei Dateien, die beim Starten gelöscht werden.

Fehler5004 bei FileOpen().

Das Problem liegt nur im Prüfgerät.

Die Agentenordner werden gerade aufgeräumt. Das ist richtig. Wenn Sie eine zuvor gespeicherte Datei einbinden müssen, verwenden Sie den Verweis auf die im gemeinsamen Ordner gespeicherte Datei.


Beispiel aus meinen Codes:

//--- STEP 6
   if(m_file_txt.Open(InpFileName,FILE_WRITE|FILE_COMMON)==INVALID_HANDLE)
 
Vladimir Karputov:

Die Ordner der Agenten werden geleert. Das ist richtig. Wenn Sie eine zuvor gespeicherte Datei einbinden müssen, verwenden Sie den Verweis auf die im gemeinsamen Ordner gespeicherte Datei.


Ein Beispiel aus meinen Codes:

Welcher gemeinsame Ordner? Ich benutze es überhaupt nicht. Ich beginne immer im portablen Modus. Ich habe alles im Installationsordner.

 
Juer:

Welcher gemeinsame Ordner? Ich benutze es überhaupt nicht. Ich arbeite immer im portablen Modus. Ich habe alles im Installationsordner.

Gemeinsamer Ordner:FILE_COMMON. Suchen, lesen. Nachdenken.

Grund der Beschwerde: