Souhaits pour MT5 - page 39

 
sergey1294:

J'ai écrit ce code pour faire face à cette situation, mais dans le testeur, il refuse catégoriquement de fonctionner, alors que sur un compte de démonstration, il fonctionne bien.

Permettez-moi de ne pas vous croire. Votre fonction retournera toujours vrai. Vous pouvez le vérifier, le former comme un script et l'exécuter maintenant (le week-end) sur n'importe quel instrument, vous obtiendrez vrai.

Pour que cela fonctionne comme vous le souhaitez, vous devez remplacer TimeCurrent() par TimeTradeServer(). Il fonctionnera alors également dans le testeur.

Mais cela ne résout pas le problème du marché fermé, car il y a aussi des jours fériés. Par exemple, la première semaine se termine à 22h00, la deuxième semaine à 23h00, et la spécification contient la fin des transactions à 24h00.

 
Valmars:

Permettez-moi de ne pas vous croire. Votre fonction retournera toujours vrai. Vous pouvez le vérifier, le créer sous forme de script et l'exécuter maintenant (le week-end) sur n'importe quel instrument, il retournera vrai.

Pour que cela fonctionne comme vous le souhaitez, vous devez remplacer TimeCurrent() par TimeTradeServer(). Il fonctionnera alors également dans le testeur.

Mais cela ne résout pas le problème du marché fermé, car il y a aussi des jours fériés. Par exemple, la première semaine se termine à 22h00, la deuxième semaine à 23h00, et la spécification contient la fin des transactions à 24h00.

Je suis d'accord avec vous que l'exemple complètement donné ne résout pas le problème du marché fermé. Bien entendu, je souhaite disposer d'une propriété standard pour le symbole d'un marché fermé afin de faciliter la rédaction de chèques dans ce sens. J'espère que les développeurs ajouteront cette fonctionnalité.
 

J'aimerais être en mesure d'exécuter plusieurs minuteries dans un conseiller expert.

Améliorer EventSetTimer() pour qu'en plus de la fréquence, il y ait le nom du timer, et que OnTimer() ait un paramètre de nom de timer.

Ainsi, il serait possible d'appeler plusieurs OnTimer().

 
Urain:

J'aimerais être en mesure d'exécuter plusieurs minuteries dans un conseiller expert.

Améliorer EventSetTimer() pour qu'en plus de la fréquence, il y ait le nom du timer, et que OnTimer() ait un paramètre de nom de timer.

Ainsi, il serait possible d'appeler plusieurs OnTimer().


C'est absurde. Réglez le minuteur pour 1 seconde et après tout intervalle dont vous avez besoin à partir du OnTimer distribuez les événements personnalisés en utilisant la fonction EventChartCustom.

Документация по MQL5: Работа с событиями / EventChartCustom
Документация по MQL5: Работа с событиями / EventChartCustom
  • www.mql5.com
Работа с событиями / EventChartCustom - Документация по MQL5
 
stringo:

C'est absurde. Réglez la minuterie sur 1 seconde et, à partir du OnTimer, distribuez des événements personnalisés à tout intervalle de temps souhaité en utilisant la fonction EventChartCustom.

Hmmm, merci pour le conseil.
 
stringo:

C'est absurde. Réglez la minuterie sur 1 seconde et distribuez les événements personnalisés à partir du OnTimer à tout intervalle de temps souhaité en utilisant la fonction EventChartCustom.

Non, un OnTimer() sera traité par un thread et plusieurs threads par plusieurs,

Vous pouvez y fourrer n'importe quel long calcul et les mettre en parallèle.

 
Urain:

Non, un OnTimer() sera géré par un thread et plusieurs threads,

Vous pouvez y faire entrer n'importe quel long calcul et le paralléliser.

Cela ne fonctionnera pas. Le conseiller expert tournera dans un seul et même fil de discussion en choisissant des événements dans la file d'attente. Contrairement à Fours où chaque fois qu'un thread était créé, un start était exécuté et ensuite le thread était tué.

Paralléliser les calculs entre différents EA.

 

Par exemple, il y a deux événements indépendants, l'un comptant pour 10 secondes et l'autre pour 15 secondes.

Que doit attendre un événement pour que l'autre soit compté ?

Bien sûr, vous pourriez tout mettre dans un indicateur, mais l'indicateur ne fonctionne pas avec une minuterie,

Si vous introduisiez un indicateur piloté par un timer, la question serait résolue.

J'ai une idée qui permet de choisir si l'on utilise OnTick ou OnTimer dans un indicateur.

 
Urain:

Vous pourriez, bien sûr, tout mettre dans l'indicateur, mais l'indicateur ne fonctionne pas avec le minuteur,

Si vous pouviez faire fonctionner l'indicateur avec une minuterie, cela résoudrait le problème.

Fais-le. Essayez-le.
 
Urain:

Par exemple, il y a deux événements indépendants, l'un comptant pour 10 secondes et l'autre pour 15 secondes.

Que voulez-vous qu'un événement attende que l'autre compte ?


En fait, la synchronisation n'a pas été annulée. Vous faites le travail, vous envoyez le message : "C'est fait."