Artem Trishkin m'a répondu à la même question, car c'est un lien (uppersand), donc il peut se placer n'importe où. Il faudrait essayer sans espaces pour la pureté de l'expérience.
Merci, Valery ! Je tiendrai compte de ce point si je rencontre un jour un problème similaire.
Je continue à étudier le langage de programmation MQL5. J'ai modifié un peu le code publié précédemment et voici ce que j'ai obtenu :
inputstring Symbol_Main="EURUSD"; //Валютная пара, на которую ставим советникinputENUM_TIMEFRAMES Time_Frame=PERIOD_H1; //Таймфрейм, на который ставим советник//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
/* Определим график валютной пары и таймфрейм, на который будем устанавливать советник. *//* Если текущий график валютной пары и текущий таймфрейм совпадают со входными параметрами */if(_Symbol==Symbol_Main && _Period==Time_Frame)
{
/* выводим окно сообщений на торговом терминале и продолжаем работу советника */MessageBox("Работа советника разрешена! Продолжим!");
return(INIT_SUCCEEDED); //возвращаем для функции OnInit значение означающее "удачная инициализация"
}
/* Если текущий график валютной пары и текущий таймфрейм не совпадают со входными параметрами */if(_Symbol!=Symbol_Main && _Period!=Time_Frame)
{
/* выводим окно сообщений на торговом терминале и закрываем советник */MessageBox("Не совпадают валютная пара и таймфрейм! Выходим!");
return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
}
/* Если текущий график валютной пары не совпадает со входным параметром */if(_Symbol!=Symbol_Main)
{
/* выводим окно сообщений на торговом терминале и закрываем советник */MessageBox("Не совпадает валютная пара! Выходим!");
return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
}
/* Если текущий таймфрейм не совпадает со входным параметром */if(_Period!=Time_Frame)
{
/* выводим окно сообщений на торговом терминале и закрываем советник */MessageBox("Не совпадет таймфрейм! Выходим!");
return(INIT_FAILED); //возвращаем для функции OnInit значение означающее "неудачная инициализация"
}
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
J'ai un peu de temps libre et j'ai décidé de poursuivre mon auto-apprentissage. Mais tout à coup, j'ai rencontré un problème. Auparavant, lorsque j'ai fait une demande comme celle-ci au serveur de commerce dans mon conseiller expert Trailing_Stop_(v.2).mq5 :
/* Создадим запрос на сервер и получим ответ с результатом */MqlTradeRequest request= {0};
MqlTradeResult result= {0};
il n'y a eu aucun problème lors de la compilation du code. Maintenant, le compilateur génère l'erreur suivante :
J'ai un peu de temps libre et j'ai décidé de poursuivre mon auto-apprentissage. Mais tout à coup, j'ai rencontré un problème. Auparavant, lorsque j'ai fait une demande comme celle-ci au serveur de commerce dans mon conseiller expert Trailing_Stop_(v.2).mq5 :
il n'y a eu aucun problème lors de la compilation du code. Maintenant, le compilateur génère l'erreur suivante :
Je poursuis mon auto-apprentissage du langage de programmation MQL5. J'ai décidé d'écrire une fonction pour obtenir le signal de l'indicateur ZigZag. J'ai commencé à l'étudier en profondeur et cela a immédiatement soulevé quelques questions. Je l'ai dans ses paramètres d'entrée:
Je poursuis mon auto-apprentissage du langage de programmation MQL5. J'ai décidé d'écrire une fonction pour obtenir le signal de l'indicateur ZigZag. J'ai commencé à l'étudier en profondeur et cela a immédiatement soulevé quelques questions. Je l'ai dans ses paramètres d'entrée:
Je ne parle pas couramment l'anglais, je dois donc utiliser Google Translator. Quelle est la traduction pure :
Questions :
Si profondeur, profondeur de quoi ?
Si écart, écart par rapport à quoi, par rapport à quel paramètre ou valeur ?
Si c'est un pas en arrière, pourquoi un pas en arrière ? N'avance-t-elle pas ?
Chers experts, aidez-moi à comprendre !
Sincèrement, Vladimir.
Elémentaire - recherche d'aide, " Doesn't it move forward " - toute l'histoire recule ici !!!! :-)
La profondeur est le nombre minimum de barres sur lesquelles il n'y aura pas un deuxième haut (bas) moins (plus) de pips de déviation que le précédent, c'est-à-dire que le ZigZag peut toujours diverger, mais converger (ou décaler l'ensemble) plus que de déviation, le ZigZag ne peut qu'après les barres de profondeur. Le Backstep est le nombre minimum de barres entre les hauts (bas).
La profondeur est le nombre minimum de barres sur lesquelles il n'y aura pas de deuxième maximum (minimum) inférieur (supérieur) au précédent par pips d'écart, c'est-à-dire que le ZigZag peut toujours diverger, mais il peut converger (ou déplacer l'ensemble) plus que par écart, le ZigZag ne peut qu'après des barres de profondeur. Le Backstep est le nombre minimum de barres entre les hauts (bas).
En testant un conseiller expert, j'ai rencontré un problème. Le code de la fonction d'initialisation de l'EA est le suivant :
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
//--- достаточно ли количество баров для работыif(Bars(_Symbol,_Period)<60) // общее количество баров на графике меньше 60?
{
Alert("На графике меньше 60 баров, советник не будет работать!!");
return(-1);
}
//--- получить хэндл индикатора Bollinger Bands и DEMA
BolBandsHandle=iBands(NULL,PERIOD_M30,bands_period,bands_shift,deviation,PRICE_CLOSE);
demaHandle=iDEMA(NULL,PERIOD_D1,dema_period,0,PRICE_CLOSE);
//--- Нужно проверить, не были ли возвращены значения Invalid Handleif((BolBandsHandle<0) || (demaHandle<0))
{
Alert("Ошибка при создании индикаторов - номер ошибки: ",GetLastError(),"!!");
return(-1);
}
return(0);
}
En testant l'EA, je reçois des messages dans le journal :
2021.10.3113:19:25.752 Core 2 genetic pass (0, 288) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:26.835 Core 2 genetic pass (0, 298) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:26.921 Core 1 genetic pass (0, 42) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:27.847 Core 2 genetic pass (0, 318) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:27.848 Core 2 genetic pass (0, 326) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:29.907 Core 2 genetic pass (0, 359) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:29.907 Core 2 genetic pass (0, 371) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:30.009 Core 1 genetic pass (0, 102) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:30.009 Core 1 genetic pass (0, 105) tested with error "OnInit returned non-zero code -1"in0:00:00.0002021.10.3113:19:31.044 Core 1 genetic pass (0, 122) tested with error "OnInit returned non-zero code -1"in0:00:00.000
и т.д.
J'ai découvert que le problème réside dans la vérification des poignées des indicateurs Bollinger Bands et DEMA. J'ai déjà vérifié les poignées des indicateurs Bollinger Bands et DEMA. J'ai donc une question : que dois-je changer dans mon code pour corriger ces erreurs ?
Artem Trishkin m'a répondu à la même question, car c'est un lien (uppersand), donc il peut se placer n'importe où. Il faudrait essayer sans espaces pour la pureté de l'expérience.
Merci, Valery ! Je tiendrai compte de ce point si je rencontre un jour un problème similaire.
Joyeux Noël !
Sincèrement, Vladimir.
Bon trading et bonne humeur à tous !
Je continue à étudier le langage de programmation MQL5. J'ai modifié un peu le code publié précédemment et voici ce que j'ai obtenu :
Peut-être que quelqu'un en aura besoin.
Salutations, Vladimir.
Bonne journée et bonne humeur à tous !
J'ai un peu de temps libre et j'ai décidé de poursuivre mon auto-apprentissage. Mais tout à coup, j'ai rencontré un problème. Auparavant, lorsque j'ai fait une demande comme celle-ci au serveur de commerce dans mon conseiller expert Trailing_Stop_(v.2).mq5 :
il n'y a eu aucun problème lors de la compilation du code. Maintenant, le compilateur génère l'erreur suivante :
Impossible de convertir 0 enum'ENUM_TRADE_REQUEST_ACTIONS' Trailing_Stop_(v.2).mq5 411 30
Si j'enlève un zéro après la demande entre crochets,
Je ne reçois pas d'erreur alors. S'il vous plaît, aidez-moi, quelle est la raison de ceci ?
Salutations, Vladimir.
Bonne journée et bonne humeur à tous !
J'ai un peu de temps libre et j'ai décidé de poursuivre mon auto-apprentissage. Mais tout à coup, j'ai rencontré un problème. Auparavant, lorsque j'ai fait une demande comme celle-ci au serveur de commerce dans mon conseiller expert Trailing_Stop_(v.2).mq5 :
il n'y a eu aucun problème lors de la compilation du code. Maintenant, le compilateur génère l'erreur suivante :
Impossible de convertir 0 enum'ENUM_TRADE_REQUEST_ACTIONS' Trailing_Stop_(v.2).mq5 411 30
Si j'enlève un zéro après la demande entre crochets,
Je ne reçois pas d'erreur alors. S'il vous plaît, aidez-moi, quelle est la raison de ceci ?
Salutations, Vladimir.
Oui, maintenant n'écrivez pas zéro pour la mise à zéro.
ENUM_TRADE_REQUEST_ACTIONS , une énumération qui n'a pas la valeur "0".
La manière correcte serait :
MqlTradeRequest request={};Oui, maintenant n'écrivez pas zéro pour la mise à zéro.
Merci, Vladimir !
On vit et on apprend longtemps ! Si les développeurs de la Référence MQL5 corrigeaient cela partout, ce serait formidable !
Sincèrement, Vladimir.
Bonjour à tous !
Je poursuis mon auto-apprentissage du langage de programmation MQL5. J'ai décidé d'écrire une fonction pour obtenir le signal de l'indicateur ZigZag. J'ai commencé à l'étudier en profondeur et cela a immédiatement soulevé quelques questions. Je l'ai dans ses paramètres d'entrée:
Je ne parle pas couramment l'anglais, je dois donc utiliser Google Translator. Quelle est la traduction pure :
Depth - глубинаDeviation - отклонениеBackstep - шаг назадQuestions :
Chers experts, aidez-moi à comprendre !
Sincèrement, Vladimir.
Bonjour à tous !
Je poursuis mon auto-apprentissage du langage de programmation MQL5. J'ai décidé d'écrire une fonction pour obtenir le signal de l'indicateur ZigZag. J'ai commencé à l'étudier en profondeur et cela a immédiatement soulevé quelques questions. Je l'ai dans ses paramètres d'entrée:
Je ne parle pas couramment l'anglais, je dois donc utiliser Google Translator. Quelle est la traduction pure :
Questions :
Chers experts, aidez-moi à comprendre !
Sincèrement, Vladimir.
Elémentaire - recherche d'aide, " Doesn't it move forward " - toute l'histoire recule ici !!!! :-)
https://www.mql5.com/ru/code/7796
La profondeur est le nombre minimum de barres sur lesquelles il n'y aura pas un deuxième haut (bas) moins (plus) de pips de déviation que le précédent, c'est-à-dire que le ZigZag peut toujours diverger, mais converger (ou décaler l'ensemble) plus que de déviation, le ZigZag ne peut qu'après les barres de profondeur. Le Backstep est le nombre minimum de barres entre les hauts (bas).
Dans le champ de recherche, tapez : par exemple, paramètres zigzag, https://www.mql5.com/ru/search# !keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0%B0%D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&page=2</b></p>
PS choses élémentaires...
Élémentaire - la recherche est une aide, " N'est-ce pas aller de l'avant " - toute l'histoire va à reculons ici !!!! :-)
https://www.mql5.com/ru/code/7796
La profondeur est le nombre minimum de barres sur lesquelles il n'y aura pas de deuxième maximum (minimum) inférieur (supérieur) au précédent par pips d'écart, c'est-à-dire que le ZigZag peut toujours diverger, mais il peut converger (ou déplacer l'ensemble) plus que par écart, le ZigZag ne peut qu'après des barres de profondeur. Le Backstep est le nombre minimum de barres entre les hauts (bas).
Dans le champ de recherche, tapez : par exemple, paramètres zigzag, https://www.mql5.com/ru/search# !keyword=%D0%B7%D0%B8%D0%B3%20%D0%B7%D0%B0%D0%B3%20%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B&page=2</b></p>
PS choses élémentaires...
Merci beaucoup, Roman ! Vous avez donné l'explication la plus concise, mais en même temps la plus compréhensible.
Respectueusement, Vladimir.
Merci beaucoup, Roman ! Vous avez donné l'explication la plus concise, mais en même temps la plus compréhensible.
Respectueusement, Vladimir.
Bonjour à tous !
En testant un conseiller expert, j'ai rencontré un problème. Le code de la fonction d'initialisation de l'EA est le suivant :
En testant l'EA, je reçois des messages dans le journal :
J'ai découvert que le problème réside dans la vérification des poignées des indicateurs Bollinger Bands et DEMA. J'ai déjà vérifié les poignées des indicateurs Bollinger Bands et DEMA. J'ai donc une question : que dois-je changer dans mon code pour corriger ces erreurs ?
Salutations, Vladimir.