Le problème du transfert de MT4 à MT5. Ou, plus précisément, l'impossibilité d'exécuter certains algorithmes dans MT5 sans "err". - page 12

 
Vict:

fxsaber a raison - il y a une option.

C'est un peu kitsch - EXPR sera calculé deux fois, mais c'est quand même plus flexible. On ne peut pas dire que ce soit universel (seulement pour les types arithmétiques). La valeur de l'erreur doit être égale, ce qui est désagréable. J'ai essayé de contourner le problème par une spécialisation structure/fonction explicite, mais ce n'est pas possible.

Salutations !

Je voudrais ouvrir un nouveau sujet, je n'arrive pas à formuler le problème... J'ai des problèmes avec elle )))) Mais le matériel est assez frais et intéressant

Vous avez fait un excellent travail, je voudrais le finaliser - la convivialité (@fxsaber a tout son travail une fois branché avec un seul inluder) est pratique !

Et pour que tout cela ait l'air professionnel, vous devez utiliser la syntaxe C++ / C# (ou vous en rapprocher le plus possible).

 
Artyom Trishkin:

Je peux vous donner mon avis :

Faisons tranquillement avec ce que nous avons pour le moment, ne vous plaignez pas, aidez à trouver les bogues et demandez à ce qu'ils soient corrigés - ils sont corrigés et de nouvelles fonctionnalités intéressantes apparaissent.

Je suis d'accord avec cette approche.

---------

J'ai en partie déjà eu une sorte de cache dès les premières versions. C'est-à-dire que j'ai créé des tableaux avec le temps, les valeurs des minima et les valeurs des maxima pour les 10 premiers extrema de zigzags.

Dans la version pour MT5, j'ai également ajouté un tableau contenant les numéros de barre. Pour les 10 premiers extrema. Cela aide dans la plupart des cas. Seules les fixations non standard sont concernées dans MT5.

Je ne vais pas créer un cache complet pour l'historique disponible pour les 21 périodes. La mémoire de votre ordinateur ne sera pas suffisante avec cette approche.

Pour comprendre : certains passionnés affichent jusqu'à 9 indicateurs pour MT4 sur un seul graphique. De nombreux graphiques pour différentes paires de devises sont ouverts en même temps. Et ils ont tous 9 copies de l'indicateur. Cette application de l'indicateur est mise en œuvre pour le système DML&EWA créé par Putniuk. Il a lui-même produit jusqu'à 72 instances de l'indicateur. C'est-à-dire sur 8 paires de devises.

En l'utilisant de cette manière, un cache supplémentaire de 21 TF et de 28 tampons chargera considérablement la mémoire.

Ceci ne prend en compte que la charge de la mémoire. Il est trop fastidieux de redessiner un code important pour utiliser le cache au lieu des fonctions iTime, iLow, iHight, iClose et iBarShift.

=================

J'ai vécu plusieurs fois de tels marathons.

1. Un marathon sur l'inclusion de plusieurs indicateurs externes en zigzag dans le corps du programme principal. On s'est débarrassé des indicateurs externes pour que le marché accepte le programme.

2. Conversion de tous les zigzags à tampon unique en zigzags à tampon double. Cela a pris environ six mois.

3. Création de l'interface graphique. Ça a pris un total d'un peu plus de 2 ans. Environ 3 ans. Et il existe d'autres idées intéressantes pour l'interface graphique. Mais je n'ai pas encore le courage de les mettre en œuvre.

4. J'ai essayé de passer de MT4 à MT5 il y a un an. Je n'ai pas réussi alors. Je peux le faire maintenant. Mais je ne suis pas satisfait de la qualité de la traduction.

Il y avait aussi d'autres marathons.

Créer un cache peut mener à une impasse. C'est dangereux de jouer avec...

------------

Artem, votre approche (citée ci-dessus) est entièrement soutenue.

 
Encore une fois, voici une citation du premier message :

...citation du guide de langue MQL5. Sous le titre Organisation de l'accès aux données.

"...L'accessibilité des données

La disponibilité des données au format HCC ou même au format HC ready ne signifie pas toujours la disponibilité inconditionnelle de ces données pour l'affichage sur un graphique ou pour l'utilisation dans les programmes mql5.

Lorsque l'on accède à des données de prix ou à des valeurs d'indicateurs à partir de programmes mql5, il faut garder à l'esprit qu'il n'est pas garanti qu'elles soient disponibles à un certain moment, ou à partir d'un certain point dans le temps...".

--------------

Le problème reste entier.

Le programme comporte plusieurs centaines d'accès à l'historique des citations dans différentes parties du programme. La liste des programmes contient environ 50 000 chaînes de caractères.

Parfois, en raison des spécificités de l'accès à l'historique, la valeur -1 est renvoyée. La conséquence de ceci est une erreur - un dépassement de tableau. Il y a aussi d'autres erreurs. Dans certains fragments du programme, j'ai vérifié si -1 est renvoyé lors de l'accès à l'historique. Lors de la réception de -1, dans ce cas, les éléments individuelsdes constructions graphiques ne sont pas dessinés. Si nous ajoutons quelques centaines de contrôles au code, cela provoquera des décalages qui existent déjà en raison des particularités de l'accès à l'historique.

Il est possible de créer un programme pour MT5 également. Mais cela nécessite de changer toute l'architecture. Je n'ai pas le temps pour de tels exploits.

J'ai décidé qu'il n'y a pas besoin d'une tâche aussi inutile. Le programme fonctionne dans MT4. Je n'ai pas l'intention de passer à MT5. J'ai rendu ZUP pour MT5 gratuit.

J'ai rendu ZUP gratuit pour MT5. Tous ceux qui le souhaitent peuvent le télécharger et voir comment il fonctionne sur MT5. Et comparez-la également avec ma version sur MT4.

Maintenant, j'en ai fini avec MT5. C'est juste une perte de temps.

J'ai posté des messages similaires sur d'autres forums.

 
Renat Fatkhullin:
Et pouvez-vous démontrer de manière reproductible l'inaccessibilité des données ?

Vous affirmez sans preuve reproductible.

Le servicedesk décrit comment reproduire le problème. Le code source permettant de reproduire le problème est également disponible.

==========

Texte de la documentation de MQL5 https://www.mql5.com/ru/docs/series/timeseries_access :

Disponibilité des données

La disponibilité des données au format HCC ou même au format HC prêt à l'emploi ne signifie pas toujours la disponibilité inconditionnelle de ces données pour l'affichage sur un graphique ou pour l'utilisation dans des programmes mql5.

Lorsque nous accédons aux données de prix ou aux valeurs d'indicateurs à partir des programmes mql5, nous devons nous rappeler qu'il n'est pas garanti qu'elles soient disponibles à un certain moment, ou à partir d'un certain point dans le temps. Cela est dû au fait que MetaTrader 5 ne stocke pas la copie complète des données requises pour le programme mql5, mais donne un accès direct à la base de données du terminal afin d'économiser des ressources.


Ce texte, traduit en russe, signifie ce qui suit. Quoi que vous fassiez, à tout moment, l'accès aux données peut être indisponible.

C'est-à-dire qu'il n'y a aucun moyen d'éviter les erreurs dues à l'interruption de l'accès aux données.

C'est ainsi que je comprends ce texte.

Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Документация по MQL5 - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
  • www.mql5.com
MetaQuotes Language 5 (MQL5) - язык программирования технических индикаторов, торговых роботов и вспомогательных приложений для автоматизации торговли на финансовых рынках. MQL5 является современным языком высокого уровня и разработан MetaQuotes Software Corp. для собственной торгово-информационной платформы. Синтаксис языка максимально близок...