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 5

 
Andrey Khatimlianskii:

La suggestion était de le faire sur une minuterie toutes les minutes et demie. Pas avant chaque tick, et certainement pas sur un événement graphique.

L'accès aux séries chronologiques dans MT5 n'est en effet pas idéal. Mais si vous devez résoudre un problème et non trouver une excuse, alors c'est possible.

Personne ne cherche d'excuse. Vous ne connaissez pas le niveau de difficulté de la tâche. C'est pourquoi vous parlez si facilement d'une excuse.

Il a été suggéré de faire une mise à jour sur une minuterie toutes les 2 minutes. C'est ce que j'ai fait.

Mais... Ce n'est pas suffisant. Même après la mise à jour de cette minuterie, lorsque l'on crée un événement sur un graphique via l'interface graphique, il arrive souvent que l'appel à iBarShift donne -1 . Cela provoque donc une sortie en dehors des limites du tableau ou une autre erreur. J'ai donc essayé de vérifier l'accessibilité de la série chronologique avant d'entrer dans OnChartEvent. Pour une meilleure compréhension, je dirai que nous devons vérifier l'accès aux 21 séries chronologiques. Si au moins une série temporelle n'est pas accessible, il est presque 100% probable que les tracés graphiques seront réalisés avec une erreur quelconque.

Le programme est complexe, avec environ 50 000 lignes. Sur un tel volume, il existe de nombreux accès à des séries temporelles différentes.

Les décalages se produisent tout le temps (dans la variante MT5). Il fonctionne comme une horloge dans MT4.

MT5 n'est pas intéressant pour moi. Je ne l'utilise pas dans le commerce. J'utilise uniquement MT4. J'ai commencé à traduire le programme uniquement à la demande des utilisateurs. Lorsque j'ai été confronté à une telle douleur dans le cou, j'ai décidé qu'il valait mieux faire ce qui était intéressant.

Au cours des 14 années de développement du programme, certaines idées intéressantes sont apparues. Je suis en train de mettre en œuvre ces idées.

 
Eugeni Neumoin:

Il a été suggéré qu'il devrait être mis à jour sur une minuterie toutes les 2 minutes. C'est ce que j'ai fait.

Mais. Ce n'est pas suffisant. Même après la mise à jour de cette minuterie, lorsque l'on crée un événement sur un graphique via l'interface graphique, il s'avère souvent que l'appel à iBarShift donne -1 .

Est-ce que l'exact deiBarShift n'est pas vrai par hasard ?

J'ai également eu des difficultés avec la synchronisation, même après des mises à jour programmées. Mais je n'ai pas pu le reproduire ; ironiquement, le problème est flottant.


Eugeni Neumoin:

MT5 n'est pas intéressant pour moi. Je ne l'utilise pas dans le commerce. Seulement MT4. J'ai commencé à traduire le programme uniquement à la demande des utilisateurs. Face à un tel casse-tête, j'ai décidé qu'il valait mieux travailler avec les choses qui m'intéressent.

Au cours des 14 années de développement du programme, certaines idées intéressantes sont apparues. Je suis en train de mettre en œuvre ces idées.

Je ne plaide pas en faveur de MT5. J'ai tout de suite remarqué que vous n'avez pas un grand désir de le comprendre).

Bien sûr, il est préférable de faire ce qui est intéressant !

 
Eugeni Neumoin:

Personne ne cherche d'excuse. Vous ne connaissez pas le niveau de difficulté de la tâche. C'est pourquoi vous parlez d'excuses si facilement.

La suggestion était de mettre à jour sur une minuterie toutes les 2 minutes. C'est ce que j'ai fait.

Mais... Ce n'est pas suffisant. Même après la mise à jour de cette minuterie, lorsque l'on crée un événement sur un graphique via l'interface graphique, il arrive souvent que l'appel à iBarShift donne -1 . Cela provoque donc une sortie en dehors des limites du tableau ou une autre erreur. J'ai donc essayé de vérifier l'accessibilité de la série chronologique avant d'entrer dans OnChartEvent. Pour une meilleure compréhension, je dirai que nous devons vérifier l'accès aux 21 séries temporelles. Si au moins une série temporelle n'est pas accessible, il est presque 100% probable que les tracés graphiques seront réalisés avec une erreur quelconque.

Le programme est complexe, avec environ 50 000 lignes. Sur un tel volume, il existe de nombreux accès à des séries temporelles différentes.

Les décalages se produisent tout le temps (dans la variante MT5). Il fonctionne comme une horloge dans MT4.

MT5 n'est pas intéressant pour moi. Je ne l'utilise pas dans le commerce. J'utilise uniquement MT4. J'ai commencé à traduire le programme uniquement à la demande des utilisateurs. Lorsque j'ai été confronté à une telle douleur dans le cou, j'ai décidé qu'il valait mieux faire ce qui était intéressant.

Au cours des 14 années de développement du programme, certaines idées intéressantes sont apparues. Je suis en train de mettre en œuvre ces idées.

Mettre en cache les séries chronologiques.
 
Artyom Trishkin:
Mettre en cache les séries chronologiques.

Qu'est-ce que tu veux dire ? Faire manuellement vos propres caches ?

 
Andrey Khatimlianskii:

Qu'est-ce que tu veux dire ? Faire manuellement vos propres caches ?

Une fois que vous avez compté toutes les séries chronologiques, et puis seulement ajouter plus. Cela peut être fait dans une fenêtre.
Oui, dans leurs propres tableaux. Vous pouvez le faire avec SB. La classe de séries chronologiques est la vôtre.
 
Andrey Khatimlianskii:

Est-ce que la valeur exacte de iBarShift se trouve être vraie ?

vrai. J'ai besoin de connaître le numéro exact du bar.

 
Artyom Trishkin:
Comptez toutes les séries temporelles une fois, et n'en ajoutez qu'une seule. Vous pouvez le faire dans la fenêtre.

Vous suggérez donc de ne pas utiliser de tampons, mais de travailler avec vos tableaux ?

A quoi servent les tampons alors ?

Vous proposez donc de fabriquer votre propre béquille, au lieu des tampons :(

Et au lieu de iTime, iLow, etc., créez vos propres fonctions... Réécrire tout à sa manière, en contournant les fonctions qui ne fonctionnent pas à partir de MT5...

C'est drastique. Mais laissez les enthousiastes le faire. Je vais rester à l'écart. Je ne regarderai même pas le processus.

 
Eugeni Neumoin:

Vous suggérez donc de ne pas utiliser de tampons, mais de travailler avec vos propres tableaux ?

Jetez un coup d'œil au SB. Il y a là un travail avec des indicateurs. Si vous ne voulez pas faire le vôtre. En général, vous devez créer une classe une fois et l'utiliser ensuite pour n'importe quel message texte. Et les données seront toujours disponibles. Seulement vous devrez en ajouter de nouveaux sans discernement.
 
Eugeni Neumoin:

Vous suggérez donc de ne pas utiliser de tampons, mais de travailler avec vos tableaux ?

A quoi servent les tampons alors ?

Vous proposez donc de fabriquer votre propre béquille, au lieu des tampons :(

Et au lieu de iTime, iLow, etc., créez vos propres fonctions... Réécrire tout à leur manière, en contournant les fonctions qui ne fonctionnent pas depuis MT5...

Tout y fonctionne. Mais parfois, l'accès est refusé. Peut-être à cause des mises à jour des séries chronologiques - je ne sais pas. S'il refuse, vous devez répéter la demande, car la première demande active l'échange de données.
 
Eugeni Neumoin:

vrai. J'ai besoin de connaître le numéro exact du bar.

Il y a donc une erreur de logique, peut-être. Il peut ne pas y avoir de bar.

Raison: