Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 867

 
Roman Shiredchenko:

J'ai oublié comment mettre à jour... juste téléchargé du robot...

Je ne suis pas intéressé par le test, mais par l'optimisation - qui est impossible... car elles (les valeurs que vous avez définies) sont remises à zéro...

L'optimisation est un test multiple avec différents paramètres. Le test et l'optimisation sont donc les mêmes pour ce problème. Au début du test/optimisation, il y a une impression dans le journal avec lequel le conseiller expert a été lancé. Vous pouvez faire une pause juste après le début et lire le journal après l'avoir ouvert. Et si elle est lancée avec des paramètres modifiés, ceux-ci seront visibles dans l'onglet "Paramètres".

Comme il s'agit d'une nouvelle installation, on peut dire qu'il s'agit de la version 2007. C'est la deuxième entreprise à avoir ce problème. Je me demande si en l'exécutant sur MQ, ce problème se produira ? Vous pouvez mettre à jour en vous connectant, ou en ouvrant un nouveau compte MetaQuotes-Demo. Et aussi par le menu


 
Alexey Viktorov:

L'optimisation est un test multiple avec différents paramètres. Le test et l'optimisation sont donc les mêmes pour ce problème. Au début du test d'optimisation, le journal contient une impression des paramètres avec lesquels le conseiller expert a été lancé. Vous pouvez faire une pause juste après le début et lire le journal après l'avoir ouvert. Et si vous l'exécutez avec des paramètres modifiés, ils seront visibles dans l'onglet "Paramètres".

Comme il s'agit d'une nouvelle installation, on peut affirmer qu'il s'agit de la version 2007. C'est la deuxième entreprise à avoir ce problème. Je me demande si en fonctionnant sur MQ, ce problème apparaîtra ? Vous pouvez mettre à jour en vous connectant, ou en ouvrant un nouveau compte MetaQuotes-Demo. Vous pouvez également le faire par le biais du menu.


Merci beaucoup ! Question https://www.mql5.com/ru/forum/305142/page3#comment_11915822 résolue en créant manuellement le dossier Tester dans MKL.
MT5 самостоятельно сбрасывает настройки в тестере после перехода на вкладку "Настройки"
MT5 самостоятельно сбрасывает настройки в тестере после перехода на вкладку "Настройки"
  • 2019.03.20
  • www.mql5.com
Решение (временное) : Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий MT5 самостоятельно сбрасывает настрой...
 
Pourquoi les variables externes ne sont-elles pas affichées dans les paramètres d'entrée de l'indicateur MQL5 ?
 
Alexandr Sokolov:
Pourquoi les variables externes ne sont-elles pas affichées dans les paramètres d'entrée de l'indicateur MQL5 ?

ajouter

#property strict

Et n'utilisez pas les anciennes constructions du langage, utilisez input au lieu de extern, je ne me souviens pas, mais il y avait un bug avec extern, il semble qu'ils peuvent être modifiés dans le code, et lors d'une nouvelle initialisation ils sont remis aux valeurs initiales et le compilateur ne génère pas d'avertissements comme avec input. Mais je peux me tromper.

 
Igor Makanu:

ajouter

Et n'utilisez pas les anciennes constructions du langage, utilisez input au lieu de extern, je ne me souviens pas, mais il y avait un bug avec extern, il semble qu'ils peuvent être modifiés dans le code, et lors d'une nouvelle initialisation ils sont remis aux valeurs initiales et le compilateur ne génère pas d'avertissements comme avec input. Mais je peux me tromper.

Différences :

entrée

externe

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

ajouter

Et n'utilisez pas les anciennes constructions du langage, utilisez input au lieu de extern, je ne me souviens pas, mais il y avait un bug avec extern, il semble qu'ils peuvent être modifiés dans le code, et lors d'une nouvelle initialisation ils sont remis aux valeurs initiales et le compilateur ne génère pas d'avertissements comme avec input. Mais je peux me tromper.

Cela ne fonctionne pas non plus pour une raison quelconque.

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


 
Artyom Trishkin:

Différences :

entrée

externe

Je l'ai feuilleté, mais il y a beaucoup de questions qui ne sont pas intéressantes. ))))

si extern fonctionne comme indiqué dans l'aide, pourquoi ne puis-je pas le déclarer dans le corps de la fonction ? - J'ai vérifié, il y a une erreur de compilation :

extern' - jeton inattendu ! !! test11.mq4 35 4

Et au niveau global, pourquoi il n'est pas possible de déclarer des types de données complexes, comme ceci :

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

en général, l'utilisation de l'externe soulève plus de questions que la nécessité de l'utiliser.

extern est une variable globale externe qui est utilisée pour décrire des variables dans d'autres plugins ; il se peut que les bibliothèques MQL aient besoin de ce comportement, mais très peu de gens écrivent des bibliothèques, tous utilisent #include

 
Alexandr Sokolov:

Cela n'a pas fonctionné non plus pour une raison quelconque.


vérifié dans l'indicateur même sans#propriété stricte

montre l'onglet des variables d'entrée, je ne sais pas quel est votre problème, voici mon 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:

Cela n'a pas fonctionné non plus pour une raison quelconque.


On vous a dit : input et #property strict

Ils vous ont même donné un lien pour vous aider.

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

On vous a dit : input et #property strict

Ils vous ont même donné un lien pour vous aider.

Voici mon 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);
  }


Raison: