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

 
DC2008:

Lesen Sie sorgfältig:

Rückgabewert

Die Funktion gibt den Index des gefundenen Elements zurück, wobei die Serialität des Arrays berücksichtigt wird. Schlägt sie fehl, gibt die Funktion -1 zurück.

Daher sollte es so sein:

1. Korrigieren Sie mich, wenn ich etwas falsch verstanden habe.

Alle Minima im Intervall gefunden:

double Low[];
CopyLow(_Symbol,_Period,tss,tspp,Low);

Da es ein Array mit Minima gibt, verwenden wir die Funktion ArrayMinimum, um nur das Minimum aus dem Array zu finden, ohne die Lücke in der Zeit(tss,tspp) aufzuzählen

double min= Low[ArrayMinimum(Low)];  
Alert("min=",min);

2. Im Skript habe ich den Code in eine Funktion eingefügt:

void OnDeinit(const int reason)

alle Zeitparameter werden korrekt angezeigt, aber die Variable min=0,0, obwohl sie beim Bieten das Minimum des angegebenen Intervalls anzeigt. Was könnte das Problem sein?

 
forexman77:

1. Korrigieren Sie mich, wenn ich etwas falsch verstanden habe.

Wir haben alle Minima in diesem Intervall gefunden:

Da es ein Array mit Minima gibt, verwenden wir die Funktion ArrayMinimum, um nur das Minimum aus dem Array zu finden, ohne die Lücke in der Zeit(tss,tspp) aufzuzählen

2. Im Skript habe ich den Code in eine Funktion eingefügt:

alle Zeitparameter werden korrekt angezeigt, aber die Variable min=0,0, obwohl sie beim Bieten das Minimum des angegebenen Intervalls anzeigt. Was könnte das Problem sein?

Im Geltungsbereich der Variablen. Machen Sie es global.
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
zfs:
Im Geltungsbereich der Variablen. Machen Sie es global.
Die Variable "double min;" wurde verschoben. auf global immer noch =0,0.
 
forexman77:
Verschobene Variable "double min;" zu global noch =0,0

Drehbuch:

void OnStart()
  {
   double Low[];
   CopyLow(_Symbol,_Period,0,10,Low);
   double min=Low[ArrayMinimum(Low)];
   Alert("min=",min);
  }
In den Skripten gibt es kein OnInit und OnDeinit.
 

Sie haben einen Fehler in Ihrer Dokumentation https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples

int ChartFirstVisibleBar(constlong chart_ID=0)
{
//--- eine Variable vorbereiten, um den Wert der Eigenschaft zu erhalten
long result=-1;
//--- den Fehlerwert zurücksetzen
ResetLastError();
//--- den Wert der Eigenschaft ermitteln
if(!ChartGetInteger(chart_ID,CHART_WINDOW_YD ISTANCE,0,result)) sollte es sein CHART_FIRST_VISIBLE_BAR
{
//--- die Fehlermeldung in das "Experten"-Journal drucken
Print(__FUNCTION__+", Fehlercode = ",GetLastError());
}
//--- Rückgabe des Wertes der Diagrammeigenschaft
return((int)result);
}

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

Drehbuch:

In den Skripten gibt es kein OnInit und OnDeinit.

Vielen Dank!!!

Bei mir hat es funktioniert!!!

 

Bitte sagen Sie mir, welche Programme zu verwenden, um den EA zu schützen und die Zeit der Arbeit zu begrenzen, zum Beispiel muss ich den EA von der Dekompilierung zu schützen, so dass es nur für 5 Tage arbeitet.

Ich benötige ein Programm, mit dem ich die Laufzeit des EA dauerhaft begrenzen kann, um den EA an andere Personen zum Testen weiterzugeben.

 

Beim Testen eines EA bin ich auf folgende Schwierigkeit gestoßen.

Der Expert Advisor handelt nicht (er muss es), wenn:

 if(Stop <=Start) { return;}

Beim Testen habe ich die Stop-Parameter von 1 bis 33 und die Start-Parameter von 1 bis 33 eingestellt.

Natürlich liefert das Prüfgerät etwa 2/3 der Null-Ergebnisse, da beim Überschießen manchmal Stopp > Start im Prüfgerät auftritt.

Diese Nulltests sind sehr zeitaufwendig.

Frage: Wie kann man das Testen von Nulltests im Code des Expert Advisors deaktivieren?

Logischerweise sollte die Testzeit nach dem Verbot verkürzt werden?

 
forexman77:

Beim Testen eines EA bin ich auf folgende Schwierigkeit gestoßen.

Der Expert Advisor handelt nicht (er muss es), wenn:

Beim Testen habe ich die Stop-Parameter von 1 bis 33 und die Start-Parameter von 1 bis 33 eingestellt.

Natürlich liefert das Prüfgerät etwa 2/3 der Null-Ergebnisse, weil beim Überschießen manchmal Stopp > Start im Prüfgerät auftritt.

Diese Nulltests sind sehr zeitaufwendig.

Die Frage ist, wie man das Testen von Nulltests im EA-Code deaktivieren kann.

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

Das funktioniert im Tester // Zumindest funktionierte es im vorletzten Build. Es ist eine Weile her, dass ich es überprüft habe.

Документация по MQL5: Общие функции / ExpertRemove
Документация по MQL5: Общие функции / ExpertRemove
  • www.mql5.com
Общие функции / ExpertRemove - Документация по MQL5
 
MetaDriver:

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

es funktioniert im tester. // zumindest funktionierte es im vorletzten build. es ist eine Weile her, seit ich es überprüft habe.

Ich brauche einen Testpass. Der EA handelt nicht, wenn:

if(Stop <=Start) { return;}

Ich möchte dies tun, um die Testzeit zu verkürzen.

Vielleicht gibt es im Tester eine Funktion speziell für die Eingabeparameter, um die gleichen Parameter wie im EA einzustellen?

Wenn wirStop <=Start erhalten, lassen wir diesen Durchgang aus.

Grund der Beschwerde: