Erreurs, bugs, questions - page 342

 
Urain:

La solution la plus simple pour MQ serait de donner à la fonction des paramètres

des tableaux au lieu des variables, qui existent maintenant en tant que paramètres. Cette solution est bien sûr unilatérale, car nous ne pourrons de toute façon pas transférer de données entre les EA, mais c'est toujours mieux que rien.

Encore mieux, ce serait quelque chose comme ça

void SendData(const int handle,const long &lparam[],const double &dparam[],const string &sparam[])
void GetData(const int handle,const long &lparam[],const double &dparam[],const string &sparam[])

Pour pouvoir envoyer à un destinataire spécifique et recevoir d'un expéditeur spécifique. Et pas seulement envoyer pour un graphique. Et rendre le handle public. Eh bien, quelque chose comme ça.

 

Une telle tâche existe : la fenêtre de l'indicateur doit être supprimée et restaurée à partir du Conseiller Expert. Mais les données calculées restent constantes.

Une solution simple consiste à créer un indicateur pour calculer les données (appelons-le "Calculer") et un indicateur pour afficher les données dans une fenêtre séparée, appelons-le "Tracer". L'indicateur "Plot" est appelé par iCustom("Calculate"), mais l'Expert Advisor est également appelé avant par iCustom("Calculate"). Ils sont appelés avec les mêmes paramètres. J'ai mentionné quelque part que deux indicateurs avec les mêmes paramètres ne sont pas créés dans un seul graphique, ils créent un handle supplémentaire qui fait référence au handle principal du processus de l'indicateur déjà lancé.

D'où ma question : après avoir supprimé Plot de l'EA et l'avoir ajouté à nouveau, l'indicateur Calculate lancé dans Plot sera-t-il calculé à nouveau ou prendra-t-il simplement les données calculées de l'indicateur Calculate lancé dans l'EA ?

 
Urain:

J'ai mentionné quelque part que deux indicateurs avec les mêmes paramètres ne sont pas créés dans un graphique, mais seulement un handle supplémentaire est créé qui se réfère au handle principal d'un processus d'indicateur déjà en cours.

Guide de référence MQL5 / Indicateurs techniques / Fonctions pour travailler avec les indicateurs techniques:

"Toutes les fonctions comme iMA, iAC, iMACD, iIchimoku, etc., créent une copie de l'indicateur technique approprié dans le cache global du terminal client. Si une copie de l'indicateur avec ces paramètres existe déjà, une nouvelle copie n'est pas créée, mais le compteur de références à cette copie est incrémenté.

Ces fonctions renvoient le handle de la copie de l'indicateur correspondant. En utilisant cette poignée, vous pouvez ensuite récupérer les données calculées par l'indicateur correspondant..."

"Note. Des appels multiples de la fonction d'indicateur avec les mêmes paramètres dans un programme mql5 n'augmenteront pas le compteur de référence plusieurs fois, le compteur sera augmenté une seule fois de 1. . ..".

 
Yedelkin:

Guide de référence MQL5 / Indicateurs techniques / Fonctions pour travailler avec les indicateurs techniques:

...

"Note. L'accès multiple à la fonction d'indicateur avec les mêmes paramètres dans un programme mql5 n'entraîne pas une augmentation multiple du compteur de l'indicateur, le compteur sera augmenté une seule fois de 1. ...".

Oui, c'est exactement ça. Merci pour le conseil.

Je ne comprends pas exactement cette ligne. Est-il possible de considérer l'indicateur lancé dans l'Expert Advisor comme un seul programme ou est-il censé être deux programmes ?

Si la première supposition est faite, alors tout est OK. Mais si le compilateur les traite comme des programmes différents, alors il y a un problème.

 
Urain:

L'indicateur en cours d'exécution dans l'EE peut-il être considéré comme un seul programme, ou bien s'agit-il de deux programmes ?

1. Le Manuel dit :"Toutes les fonctions comme iMA, iAC, iMACD, iIchimoku, etc., créent une copie de l' indicateur technique correspondant dans le cache global du terminal client".

Je l'ai lu comme (se référant à votre question) :"Toutes les fonctions, comme iMA, iAC, iMACD, iIchimoku , etc.sont appelées à partir d'un programme mql5 particulier etcréent une copie de l'indicateur technique approprié dans le cache global du terminal client". Par conséquent, l'expression courante"EA E exécute l'indicateur I" signifie que EA E appelle la fonction I, qui crée une copie de l'indicateur dans le cache global du terminal client et fait en sorte que EA E reçoive le handle de cette copie.

2. si "EA E appelle la fonction d'indicateur I", alors cela signifie qu'il appelle la fonction d'indicateur "dans un programme mql5".

 
J'ai téléchargé la version 420 d'icihttps://www.mql5.com/ru/forum/23/page11 mais en fait, elle installe la version 412. J'ai un problème ou ils ont oublié de changer le fichiermetaquotes.net?
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
 
Yedelkin:

1. Le Manuel de référence indique :"Toutes les fonctions telles que iMA, iAC, iMACD, iIchimoku, etc., créent une copie de l' indicateur technique pertinent dans le cache global du terminal client".

Je l'ai lu comme (se référant à votre question) :"Toutes les fonctions, comme iMA, iAC, iMACD, iIchimoku, etc. sont appelées à partir d'un programme mql5 particulier et créent une copie de l'indicateur technique approprié dans le cache global du terminal client". Par conséquent, l'expression courante"EA E exécute l'indicateur I" signifie que EA E appelle la fonction I dans le cache global du terminal client, qui crée une copie de l'indicateur, et EA E obtient le handle de cette copie.

2) Si "EA E appelle la fonction d'indicateur I", alors nous parlons de l'appel de la fonction d'indicateur "dans un seul programme mql5".

Je l'ai. L'expression clé ici est"dans le cache global du terminal client".

Si c'est le cas, alors tout est OK. Une autre question a été clarifiée.

 
a483483:
J'ai téléchargé la version 420 d'icihttps://www.mql5.com/ru/forum/23/page11 mais il installe en fait la version 412. J'ai un problème ou dans le fichiermetaquotes.net j'ai oublié de changer ?

Alors attendez et il devrait se mettre à jour avec la dernière version.

SZS laissez simplement le terminal en marche et occupez-vous de vos affaires, après un certain temps vous verrez dans le terminal le message que vous avez téléchargé telle ou telle version et vous demanderez de redémarrer le terminal.

 

Bonjour !

Après la mise à niveau vers la version 420, j'ai commencé à tester mon EA et j'ai remarqué qu'il a commencé à "perdre" pour une raison quelconque. J'ai analysé mes trades et j'ai remarqué que le stop loss est déclenché à des prix inexistants. Par exemple, j'ai fixé le stop loss à 1.06520 sur EURUSD, mais cela fonctionne, bien que le prix maximal soit de 1.05920. En regardant plus loin, je vois beaucoup d'affaires de ce genre. Le Take Profit est déclenché selon le même principe (à des prix inexistants) - le delta est le même - 600 points. Dans le testeur sur le graphique, les flèches vers le haut et vers le bas "pendent" dans l'air, loin des barres.

Une capture d'écran est jointe.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
Dossiers :
eurusd.jpg  235 kb
 
Kairoser:

Bonjour !

Après la mise à niveau vers la version 420, j'ai commencé à tester mon EA et j'ai remarqué qu'il a commencé à "perdre" pour une raison quelconque. J'ai analysé mes trades et j'ai remarqué que le stop loss est déclenché à des prix inexistants. Par exemple, j'ai fixé le stop loss à 1.06520 sur EURUSD, mais cela fonctionne, bien que le prix maximal soit de 1.05920. En regardant plus loin, je vois beaucoup d'offres de ce type. Le Take Profit est déclenché selon le même principe (à des prix inexistants) - le delta est le même - 600 points. Dans le testeur sur le graphique, les flèches vers le haut et vers le bas "pendent" dans l'air, loin des barres.

Une capture d'écran est jointe.

Essayez de tester votre EA sur le serveur MQ. Alpari a peut-être encore le vieux problème des données historiques incorrectes.
Raison: