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

 
Roman Shiredchenko:

vergessen, wie man aktualisiert... gerade vom Roboter heruntergeladen...

Ich interessiere mich nicht für den Test, sondern für die Optimierung - die unmöglich ist... weil sie (die von Ihnen eingestellten Werte) zurückgesetzt werden...

Die Optimierung ist ein Mehrfachtest mit unterschiedlichen Parametern. Der Test und die Optimierung sind also für dieses Problem gleich. Zu Beginn des Tests/der Optimierung erfolgt ein Ausdruck in dem Journal, mit dem der Expert Advisor läuft. Sie können direkt nach dem Start pausieren und das Protokoll nach dem Öffnen lesen. Und wenn es mit geänderten Parametern gestartet wird, werden diese auf der Registerkarte "Parameter" angezeigt.

Da es sich um eine Neuinstallation handelt, kann man mit Sicherheit davon ausgehen, dass es sich um die Version 2007 handelt. Dies ist das zweite Unternehmen mit diesem Problem. Ich frage mich, ob dieses Problem auftritt, wenn es unter MQ läuft? Sie können aktualisieren, indem Sie eine Verbindung herstellen oder ein neues MetaQuotes-Demo-Konto eröffnen. Und auch über das Menü


 
Alexey Viktorov:

Die Optimierung ist ein Mehrfachtest mit unterschiedlichen Parametern. Der Test und die Optimierung sind bei diesem Problem also identisch. Zu Beginn des Optimierungstests enthält das Protokoll einen Ausdruck, mit welchen Parametern der Expert Advisor gestartet wurde. Sie können direkt nach dem Start pausieren und das Protokoll nach dem Öffnen lesen. Und wenn Sie es mit geänderten Parametern ausführen, werden diese auf der Registerkarte "Parameter" angezeigt.

Da es sich um eine Neuinstallation handelt, kann man mit Sicherheit davon ausgehen, dass es sich um die Version 2007 handelt. Dies ist das zweite Unternehmen mit diesem Problem. Ich frage mich, ob dieses Problem bei der Ausführung von MQ auftritt? Sie können aktualisieren, indem Sie eine Verbindung herstellen oder ein neues MetaQuotes-Demo-Konto eröffnen. Sie können dies auch über das Menü tun


herzlichen Dank! Frage https://www.mql5.com/ru/forum/305142/page3#comment_11915822 wurde gelöst , indem der Ordner " Tester" manuell in MKL erstellt wurde.
MT5 самостоятельно сбрасывает настройки в тестере после перехода на вкладку "Настройки"
MT5 самостоятельно сбрасывает настройки в тестере после перехода на вкладку "Настройки"
  • 2019.03.20
  • www.mql5.com
Решение (временное) : Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий MT5 самостоятельно сбрасывает настрой...
 
Warum werden externe Variablen in MQL5-Indikator-Eingabeparametern nicht angezeigt?
 
Alexandr Sokolov:
Warum werden externe Variablen in MQL5-Indikator-Eingabeparametern nicht angezeigt?

hinzufügen.

#property strict

Und verwenden Sie keine alten Sprachkonstrukte, verwenden Sie input anstelle von extern, ich erinnere mich nicht, aber es gab einen Fehler mit extern, es scheint, dass sie im Code geändert werden können, und bei einer neuen Initialisierung werden sie auf die Anfangswerte zurückgesetzt und der Compiler erzeugt keine Warnungen wie bei input. Ich kann mich aber auch irren.

 
Igor Makanu:

hinzufügen.

Und verwenden Sie keine alten Sprachkonstrukte, verwenden Sie input anstelle von extern, ich erinnere mich nicht, aber es gab einen Fehler mit extern, es scheint, dass sie im Code geändert werden können, und bei einer neuen Initialisierung werden sie auf die Anfangswerte zurückgesetzt und der Compiler erzeugt keine Warnungen wie bei input. Ich kann mich aber auch irren.

Die Unterschiede:

Eingabe

extern

Документация по MQL5: Основы языка / Переменные / Input переменные
Документация по MQL5: Основы языка / Переменные / Input переменные
  • www.mql5.com
указывается перед типом данных. Изменять значение переменной с модификатором input внутри mql5-программы нельзя, такие переменные доступны только для чтения. Изменять значения input-переменных может только пользователь из окна свойств программы. Внешние переменные всегда переинициализируются непосредственно перед вызовом OnInit().   Существует...
 
Igor Makanu:

hinzufügen.

Und verwenden Sie keine alten Sprachkonstrukte, verwenden Sie input anstelle von extern, ich erinnere mich nicht, aber es gab einen Fehler mit extern, es scheint, dass sie im Code geändert werden können, und während einer neuen Initialisierung werden sie auf Anfangswerte zurückgesetzt und der Compiler erzeugt keine Warnungen wie mit input. Ich kann mich aber auch irren.

Auch das funktioniert aus irgendeinem Grund nicht.

extern uint            usp      = 10,          //Update of the panel every ... seconds
                       psize    = 7;           //Panel size


 
Artyom Trishkin:

Die Unterschiede:

Eingabe

extern

Ich habe es durchgeblättert, aber es gibt eine Menge Fragen, die nicht interessant sind ))))

wenn extern funktioniert, wie in der Hilfe geschrieben, warum kann ich nicht deklarieren es in Funktion Körper? - Ich habe es überprüft, es liegt ein Compilerfehler vor:

extern' - unerwartetes Token !!! test11.mq4 35 4

Und warum ist es auf globaler Ebene nicht möglich, komplexe Datentypen wie diesen zu deklarieren?

struct S{double f;};
extern struct x;

Im Allgemeinen wirft die Verwendung von "extern" mehr Fragen auf als die Notwendigkeit, sie zu verwenden.

extern ist eine externe globale Variable, die verwendet wird, um Variablen in anderen Plugins zu beschreiben; es kann sein, dass MQL-Bibliotheken dieses Verhalten brauchen, aber sehr wenige Leute schreiben Bibliotheken, alle verwenden #include

 
Alexandr Sokolov:

Das hat aus irgendeinem Grund auch nicht funktioniert.


im Indikator auch ohne#Eigenschaft strict geprüft

zeigt die Registerkarte "Eingabevariablen" an. Ich weiß nicht, was Ihr Problem ist, hier ist mein Code

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window

extern int x = 10,y=22;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---

   return(rates_total);
  }


 
Alexandr Sokolov:

Das hat aus irgendeinem Grund auch nicht funktioniert.


Ihnen wurde gesagt: input und #property strict

Sie haben Ihnen sogar einen Link zur Hilfe gegeben.

Документация по MQL5: Основы языка / Переменные / Input переменные
Документация по MQL5: Основы языка / Переменные / Input переменные
  • www.mql5.com
указывается перед типом данных. Изменять значение переменной с модификатором input внутри mql5-программы нельзя, такие переменные доступны только для чтения. Изменять значения input-переменных может только пользователь из окна свойств программы. Внешние переменные всегда переинициализируются непосредственно перед вызовом OnInit().   Существует...
 
Artyom Trishkin:

Ihnen wurde gesagt: input und #property strict

Sie haben Ihnen sogar einen Link zur Hilfe gegeben.

Hier ist mein Code

#property copyright "Alexandr Sokolov"
#property link      "https://www.mql5.com/en/users/asokolov7"
#property version   "1.00"
#property indicator_chart_window
#property strict

extern uint x = 10, y = 20;
//-------------------------------------------------------------------
int OnInit()
  {
   
  //-----------------------------------------------------------------
   return(INIT_SUCCEEDED);
  }
//-------------------------------------------------------------------
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   
  //-----------------------------------------------------------------
   return(rates_total);
  }