Mt4 Fin de l'assistance. - page 19

 
Alexey Viktorov:

Un conseil de la part d'un autodidacte :

Pour faciliter la transition vers mql5, il est souhaitable d'utiliser non pas les variables int period de mql4 mais de l'enum ENUM_TIMEFRAMES

Je vais résoudre le problème à ma façon. L'essentiel est que la fonction fonctionne bien, ne ralentisse pas le programme et puisse être utilisée sur les deux terminaux. Le reste dépend de moi.
 
Dmitry Fedoseev:

Pourquoi ?


Parce que lorsqu'on implémente une telle chose dans d'autres langues, j'ai du mal à trouver comment entrer dans le terminal. Il peut ouvrir tout et n'importe quoi, et s'il est implémenté par µl, alors vous pouvez aussi y mettre des robots via des boutons.

Et vous pouvez également mettre une base de données, puis d'autres logiciels, et transporter toutes vos affaires dans une seule icône.
 
Alexander Puzanov:

Je suis heureux de croire que vos problèmes ne peuvent être résolus sans eux. Il faut entrer dans les détails pour ne pas y croire :)


Spin

Maintenant, sur un tick, nous devons déterminer la nouvelle barre sur H1, M5 et D1. C'est-à-dire que pendant les 1 heure et 5 minutes qui suivent, le conseiller expert dort et ce n'est qu'à 1 heure et 5 minutes d'un nouveau jour qu'il doit se réveiller et faire quelque chose.

Cela fera 3 variables globales? Et si nous devions faire la même chose dans les conseillers experts 2-3-7 ? Combien de variétés supplémentaires de noms de variables globales devons-nous créer ?

 
Реter Konow:
Je vais résoudre la tâche à ma façon. L'essentiel - la fonction doit bien fonctionner, ne pas ralentir le programme et être utilisée sur les deux terminaux. Le reste dépend de moi.

Votre procrastination à fournir une solution est une réponse éloquente. Parce qu'avec la POO, le problème est résolu de manière simple et standard sans aucune réflexion.

 
Реter Konow:
Je vais résoudre le problème à ma façon. L'essentiel est que la fonction fonctionne bien, ne ralentisse pas le programme et puisse être utilisée sur les deux terminaux. Laissez le reste à ma discrétion.
Personne n'impose quoi que ce soit. C'était juste une opinion.
 
Dmitry Fedoseev:

Votre procrastination à fournir une solution est une réponse éloquente. Parce qu'avec la POO, le problème est résolu de manière simple et standard sans aucune réflexion.

Je ne suis pas engagé dans le commerce, donc cette tâche n'est pas standard pour moi. Ne pas déranger.
 
Alexander Puzanov:

Je suis heureux de croire que vos problèmes ne peuvent être résolus sans eux. Il faut aller dans les détails pour le croire :)

J'ai entendu de nombreuses personnes se plaindre que "travailler avec des indicateurs sur MT5 est beaucoup plus compliqué que sur MT4".

L'approche OOP permet d'unifier ce travail de sorte que le conseiller expert ne s'intéresse pas à la plate-forme sur laquelle il fonctionne.

Je l'ai organisé de cette façon.

Si nous avons besoin d'un indicateur (disons, le MA) - le Conseiller Expert doit déclarer l'objet CMA_IParams:public CIndicatorParamsI, dans lequel il stocke tous les paramètres du MA dont nous avons besoin. Passez ensuite un pointeur vers cette structure au fournisseur de données, dans la fonction GetIndicator(). Cette fonction renvoie le pointeur vers l'interface virtuelle CIndicator. C'est tout. Cette interface contient toutes les données nécessaires sur l'indicateur appelé.

Si vous avez besoin d'un autre indicateur, l'objet dérivé de l'interface CIndicatorParamsI est déclaré, tous les paramètres de l'indicateur y sont inscrits et il est transmis au fournisseur de données, mais le pointeur vers l'indicateur créé est renvoyé.

Lorsqu'un nouvel indicateur est nécessaire, son code portable est écrit dans le fournisseur de données. Ensuite, tout utilisateur peut demander un nouvel indicateur au fournisseur de données, en lui transmettant ses paramètres.

Par conséquent, si un conseiller expert travaille "pour revenir à la moyenne", il devient très facile de changer cette moyenne, par exemple, prendre le milieu du canal de prix au lieu de la moyenne mobile, simplement en changeant l'objet du paramètre.

Je me demande comment cela est organisé pour les fans de l'approche procédurale ?

 
George Merts:

Les gens se plaignent souvent que "travailler avec des indicateurs sur MT5 est beaucoup plus compliqué que sur MT4".

Ainsi, l'approche OOP permet d'unifier ce travail, de sorte que le conseiller expert, encore une fois, ne s'intéresse même pas à la plateforme sur laquelle il fonctionne.

Je l'ai organisé de cette façon.

Si nous avons besoin d'un indicateur (disons, le MA) - le Conseiller Expert doit déclarer l'objet CMA_IParams:public CIndicatorParamsI, dans lequel il stocke tous les paramètres du MA dont nous avons besoin. Ensuite, le pointeur vers cette structure doit être transmis au fournisseur de données dans la fonction GetIndicator(). Cette fonction renvoie le pointeur vers l'interface virtuelle CIndicator. Cette interface contient toutes les données nécessaires sur l'indicateur appelé.

Si vous avez besoin d'un autre indicateur, l'objet dérivé de l'interface CIndicatorParamsI est déclaré, tous les paramètres de l'indicateur y sont écrits et il est transmis au fournisseur de données, le pointeur vers l'indicateur créé est renvoyé à la place.

Lorsqu'un nouvel indicateur est nécessaire, son code portable est écrit dans le fournisseur de données. Ensuite, tout utilisateur peut demander un nouvel indicateur au fournisseur de données, en lui transmettant ses paramètres.

Par conséquent, si un conseiller expert travaille "pour revenir à la moyenne", il devient très facile de changer cette moyenne, par exemple, prendre le milieu du canal de prix au lieu de la moyenne mobile, simplement en changeant l'objet du paramètre.

Je me demande comment cela est organisé pour les fans de l'approche procédurale ?

Il est préférable de ne pas commencer par là. C'est ce qui fait peur. Même moi, un partisan de la POO qui la connaît mal, j'ai trébuché à cause de ce texte... ...n'a rien compris. C'est pourquoi j'essaie d'expliquer la différence au niveau le plus bas.
 

Je suis désolé, je dois partir. Les commandes sont arrivées... Si cela ne vous dérange pas, nous continuerons demain.

 
Alexey Viktorov:

Je suis désolé, je dois partir. Les commandes sont arrivées... Si cela ne vous dérange pas, nous continuerons demain.

Il y a un ordre pour lui d'aller à l'ouest ?