Servicedesk. Plaintes, suggestions. - page 3

 
Alexey Kozitsyn:

Ne serait-ce que parce que c'est indiqué dans la documentation et que je veux l'utiliser.

Pour télécharger et vérifier l'historique, comme sur MT5 : https://www.mql5.com/ru/docs/series/timeseries_access

Je répète ma question, savez-vous comment obtenir cette date au moyen de l'ancienne mql4 ?

Pour moi, la présence d'une fonction dans la documentation n'est pas une raison suffisante pour faire appel au service d'assistance et au forum, et perdre du temps et des efforts si je n'en ai pas besoin en principe. Et pourquoi cela peut être nécessaire, vous n'avez, à mon avis, jamais été capable d'argumenter.

Personnellement, je ne recommande à personne d'utiliser dans MT4 les fonctions de l'API de MT5, car elles glitchent comme ça depuis longtemps, depuis la "modernisation" de MQL4. Et je ne recommanderai plus leur utilisation à partir de maintenant, à moins que quelqu'un ne prouve leur absolue nécessité.

 
Ilya Malev:

Pour moi, la présence d'une fonction dans la documentation n'est pas une raison suffisante pour traiter avec servicedesk et sur le forum, perdre du temps et des efforts si je n'en ai pas besoin en principe. Et à mon avis, vous n'avez pas été capable d'argumenter pourquoi vous en auriez besoin.

Personnellement, je ne recommande à personne d'utiliser dans MT4 les fonctions de l'API de MT5, car elles glitchent comme ça depuis longtemps, depuis la "modernisation" de MQL4. Et je ne recommanderai pas leur utilisation à l'avenir, à moins que quelqu'un ne prouve leur absolue nécessité.

Vous n'avez toujours pas répondu à ma question. Mais j'ai réalisé que tu t'en fichais, et que tu étais satisfait.

Oh, et un autre argument - la portabilité des programmes de MT4 à MT5 et inversement.

 
Alexey Kozitsyn:

Vous n'avez toujours pas répondu à ma question. Mais j'ai compris que tu t'en fichais et que ça te convenait.

Oh, et un autre argument - la portabilité des programmes de MT4 à MT5 et inversement.

Si vous avez une restriction sur le nombre de barres dans la fenêtre MT4, vous ne saurez pas combien de barres se trouvent sur le serveur. Et je n'ai pas rencontré de situation régulière où cela serait nécessaire. Bien sûr, on peut inventer beaucoup d'exotiques, mais dans 99,9% des cas, on peut s'en passer.

Quant à la portabilité, il s'agit de plateformes totalement différentes, avec des méthodes de travail fondamentalement différentes en matière de données et de commandes. Leur méthodologie de programmation est donc complètement différente. Pour la portabilité, il y a la directive __MQL4__ et les bibliothèques avec compilation conditionnelle.

 
Ilya Malev:

Il n'est pas possible de savoir combien de barres se trouvent sur le serveur si vous avez une limite sur le nombre de barres dans la fenêtre MT4. Et je n'ai pas rencontré de situation régulière où cela serait nécessaire. Bien sûr, vous pouvez inventer toutes sortes d'exotiques, mais dans 99,9% des tâches des traders, vous pouvez vous en passer.

Quant à la portabilité, il s'agit de plateformes totalement différentes, avec des méthodes de travail fondamentalement différentes en matière de données et de commandes. Leur méthodologie de programmation est donc complètement différente. Pour la portabilité, il y a la directive __MQL4__ et les bibliothèques avec compilation conditionnelle.

L'organisation de l'accès aux données est-elle "exotique" ? Ahem. Ok.

Le trader ne se soucie pas de la langue, il a besoin de trader, et les conseillers experts/indicateurs/scripts doivent fonctionner correctement. La façon dont ils fonctionnent est le problème du programmeur. Mais le programmeur, afin d'écrire un produit de qualité pour le commerçant, doit faire attention à des petits détails comme l'accès aux données.

Et si vous n'avez pas rencontré quelque chose, cela ne signifie pas que d'autres ne l'ont pas fait.

 
Alexey Kozitsyn:

L'organisation de l'accès aux données est "exotique" !? Ahem. Ok.

Les traders ne se soucient pas vraiment de la langue, le trader a besoin de trader, et les conseillers-experts/indicateurs/scripts doivent fonctionner correctement. La façon dont ils fonctionnent est le problème du programmeur. Mais le programmeur, afin d'écrire un produit de qualité pour le commerçant, doit faire attention à des petites choses comme l'accès aux données.

Vous n'avez jamais cité une seule tâche réelle pour laquelle cette fonction est nécessaire. Seulement de jolis mots comme "accès aux données" et une admission que vous avez besoin de cette fonction juste parce qu'elle est décrite dans la documentation.

Il y a suffisamment de fonctions dans l'API MT4 pour l'accès aux données, à mon avis, il n'est absolument pas nécessaire d'entrer dans les fonctions pour MT5. Il n'est pas nécessaire de connaître le nombre de barres sur le serveur dans MT4, car il n'est pas nécessaire de charger l'historique de manière programmatique - le terminal le fait lui-même avant d'accéder aux fonctions d'accès aux données de MT4 (iHigh, iLow, MarketInfo, etc.).

C'est très pratique et il est dommage que cela ait été modifié dans MT5, ce qui a créé beaucoup de difficultés pour accéder aux données.

 
Ilya Malev:

Vous n'avez toujours pas cité une seule tâche réelle pour laquelle cette fonction est nécessaire. Seulement de jolis mots comme "accès aux données" et une admission que vous avez besoin de cette fonction juste parce qu'elle est décrite dans la documentation.

Il y a suffisamment de fonctions dans l'API MT4 pour l'accès aux données, à mon avis, il n'est absolument pas nécessaire d'entrer dans les fonctions pour MT5. Il n'est pas nécessaire de connaître le nombre de barres sur le serveur dans MT4, car il n'est pas nécessaire de télécharger l'historique par programme - le terminal s'en charge.

Ce qui est très pratique et il est dommage que cela ait été modifié dans MT5, ce qui a créé beaucoup de problèmes d'accès aux données.

Je vous ai même donné le lien :

Forum sur le trading, les systèmes de trading automatisés et l'essai de stratégies de trading

Service Desk. Si vous avez des questions ou des commentaires sur le Service Desk, n'hésitez pas à nous contacter.

Alexey Kozitsyn, 2015.10.30 17:11

Au moins parce que c'est indiqué dans la documentation et que je veux l'utiliser.

Pour télécharger et vérifier l'historique, comme sur MT5 : https://www.mql5.com/ru/docs/series/timeseries_access

J'ai une fonction de vérification/téléchargement de l'historique écrite sur mql5 similaire à celle décrite dans le lien. Tout fonctionne comme il se doit. Et je voulais utiliser la même chose dans le programme mql4. J'ai copié le code et constaté que la fonction SeriesInfoInteger() ne fonctionne pas correctement. J'ai écrit une demande à Sersidesk. Pourquoi ne pourrais-je pas utiliser le code existant si toutes les fonctions sont dupliquées dans les deux langues ?

D'après ce que j'ai compris, vous écriviez d'abord pour mql4, puis vous êtes passé à mql5. Au contraire, j'ai activement commencé à écrire en mql5, et ensuite - en mql4. Ainsi, pour moi, il est plus pratique d'utiliser de nouvelles fonctions.

 
Et si vous comparez la documentation relative à l'organisation de l'accès aux données de mql4 et mql5, il apparaît clairement que l'accès est le même. C'est juste que la documentation de mql5 est étendue avec un exemple d'accès. La question de savoir si cet accès est si différent reste donc posée.
 
Alexey Kozitsyn:
Et si nous comparons la documentation relative à l'accès aux données de mql4 et mql5, il est clair que l'accès est le même. C'est juste que la documentation de mql5 est étendue avec un exemple d'accès. La question de savoir si cet accès est si différent reste donc posée.

Un exemple simple est qu'un indicateur en appelle un autre par iCustom. Et cet autre indicateur, à son tour, appelle aussi le troisième et le quatrième. Et tous ces indicateurs sont construits un peu plus longtemps que quelques millisecondes. En exécutant une telle construction le week-end, l'utilisateur n'attendra pas la fin du week-end pour que l'indicateur soit créé, à moins qu'il n'appuie régulièrement sur le bouton "Rafraîchir" du graphique. A cause de ce problème, j'ai dû créer tout un système de classes au lieu d'iCustom pour s 'appeler mutuellement avec des indicateurs, en contournant iCustom. Dans MT4, il n'y avait pas un tel casse-tête.

Dans MT4, l'indicateur est construit en premier, puis le code qui utilise ses données est appelé. On fait la même chose avec les séries chronologiques. Dans MT5, tout a été changé, et pas pour le mieux.

 
Ilya Malev:

Un exemple simple est qu'un indicateur en appelle un autre par iCustom. Et cet autre indicateur, à son tour, appelle aussi le troisième et le quatrième. Et tous ces indicateurs sont construits un peu plus longtemps que quelques millisecondes. En exécutant une telle construction le week-end, l'utilisateur n'attendra pas la fin du week-end pour que l'indicateur soit créé, à moins qu'il n'appuie régulièrement sur le bouton "Rafraîchir" du graphique. À cause de ce problème, j'ai dû créer tout un système de classes au lieu d'iCustom pour s 'appeler mutuellement avec des indicateurs, en contournant iCustom. Dans MT4, il n'y avait pas un tel casse-tête.

Dans Mt4, l'indicateur est construit en premier, et ensuite le code qui utilise ses données est appelé.

Essayez d'utiliser les événements de la minuterie. C'est-à-dire lancer la logique de tous les calculs à la sortie de la minuterie. Ensuite, si l'indicateur n'apparaît pas dans la fenêtre - appuyez une fois sur rafraîchir. Tout devrait fonctionner.
 

Alexey Kozitsyn:

Essayez d'utiliser les événements de la minuterie.

Les événements Timer sont en fait une sous-classe de ChartEvent, et ne sont appelés que lorsque l'indicateur est lancé directement sur le graphique. Dans les indicateurs appelés par iCustom, vous n'attendrez pas l'appel à OnTimer ou OnChartEvent.

Là, un indicateur ne commence à dessiner qu'après que l'autre ait été dessiné. Vous devez appuyer une fois sur la touche de rafraîchissement pour construire le premier, le plus éloigné dans la chaîne, puis une autre fois pour construire celui qui utilise ses données :)

En effet, l'indicateur dans son thread ne peut pas attendre la construction des données d'un autre indicateur, sans revenir de OnCalculate. C'est également une fonctionnalité intéressante. Ainsi, l'utilisateur sera toujours confronté au menu graphique au lieu de travailler avec les données.