Erreurs, bugs, questions - page 3146

 
Vitaly Muzichenko #:

Il y a quelque chose de pas clair dans le testeur

Je demande l'historique d'un mois, il charge pour "100" ans.

Pour quoi faire ?

Pas une centaine d'années, juste un an.

Vous devez toujours laisser l'espace disponible avant l'intervalle demandé pour que les indicateurs calculent correctement, et ne pas partir de zéro.

Et pour que les nouveaux arrivants ne posent pas de questions sur l'absence de telle ou telle donnée.

 
Valeriy Yastremskiy #:
Enregistrez la dernière et l'avant-dernière ascension et enchère et comptez la différence.
Je comprends cela. Ce qui est important pour moi, c'est la cohérence. Jusqu'à présent, mes réflexions sont les suivantes : puisqu'il s'agit d'une position, il faut y faire référence. Pour cela, nous commençons par énumérer toutes les positions à travers la boucle, puis nous obtenons son ticket et enfin l'heure d'ouverture de la position. Déclarer un tableau avec des ticks MqlTick ticks[ ]. En comptant un certain temps à partir de l'heure d'ouverture de la position, écrivez les ticks dans le tableau des ticks à travers CopyTickRange. Appliquez ensuite ArraySetAsSeries au tableau de tics, si possible. Et appliquer la différence entre le dernier et l'avant-dernier bid et ask, que vous avez décrit, aux deux derniers ticks de ce tableau. Mais pour l'instant, ce n'est qu'une idée, peut-être que quelqu'un l'a déjà fait et a un exemple. Respectueusement.
 
MetaQuotes #:

Pas une centaine d'années, mais juste un an.

Il faut toujours laisser de la place avant l'intervalle demandé pour que les indicateurs soient calculés correctement, plutôt que de partir de zéro.

Et pour que les nouveaux arrivants ne posent pas de questions sur l'absence de certaines données.

Comment "laisser un espace avant l'intervalle demandé" ? Je fais un test d'Expert Advisor, qui utilise un indicateur personnalisé de 2021, dans l'EA réel cet indicateur est tracé correctement dans cette période, mais dans le test il semble qu'il commence à zéro et donc les résultats sont incorrects...

 
Wizard #:
Ça, je le comprends. La cohérence est importante pour moi. Jusqu'à présent, mes réflexions sont les suivantes : puisqu'il s'agit d'une position, nous devons l'aborder. Pour cela, nous commençons par parcourir en boucle toutes les positions, puis nous obtenons son ticket et ensuite l'heure d'ouverture de la position. Déclarer un tableau avec des ticks MqlTick ticks[ ]. En comptant un certain temps à partir de l'heure d'ouverture de la position, écrivez les ticks dans le tableau des ticks à travers CopyTickRange. Appliquez ensuite ArraySetAsSeries au tableau de tics, si possible. Et appliquer la différence entre la dernière et l'avant-dernière offre et demande, que vous avez décrite, aux deux derniers ticks de ce tableau. Mais pour l'instant, ce n'est qu'une idée, peut-être que quelqu'un l'a déjà fait et a un exemple. Respectueusement.

Pour MT4, c'est simple. Là, l'ouverture de l'ordre est liée à un tick, l'utilisateur ne voit pas comment la position est remplie. Mais en 5, c'est le cas. Il ou elle voit les transactions lorsque le poste est pourvu. Et un poste peut être pourvu plus d'une fois. Voici un exemple. Mais la logique est correcte. Bien que, pour moi, il serait plus correct de le faire sur la base de la poursuite. Après le déclenchement d'un ordre en attente ou d'un ordre au marché, au moment de la réception de la réponse sur la position avec le ticket d'ordre, obtenir les données sur le prix et l'heure d'ouverture et rechercher le tick le plus proche par prix et heure. Le problème est que la réponse peut ne venir qu'au prochain tick ou après un tick. Il n'y a pas de garantie.

 
MetaQuotes #:

Pas une centaine d'années, mais juste un an.

Il faut toujours laisser de l'espace disponible avant l'intervalle demandé pour que les indicateurs soient calculés correctement, plutôt que de partir de zéro.

Et pour que les nouveaux arrivants ne posent pas de questions sur l'absence de certaines données.

Si vous pouviez spécifier dans les indicateurs quelque chose comme #property indicator_bars_need, ce serait fabuleusement pratique.

et le testeur prendrait simplement la plus grande valeur, si ce paramètre est présent dans plusieurs indicateurs.

Il y a une situation opposée où l'on a besoin d'autant d'historique que possible, une année n'est pas suffisante. C'est pourquoi mon dernier client était surpris que le testeur ait collecté si peu d'extrema historiques (selon l'algorithme de l'indicateur).

 
Andrey Dik #:

Si vous pouviez spécifier quelque chose comme #property indicator_bars_need dans les indicateurs, ce serait vraiment génial.

et le testeur prendrait simplement la valeur la plus élevée, si ce paramètre est présent dans plusieurs indicateurs.

La propriété ne peut pas s'adapter aux paramètres. Ce n'est plus fabuleux.)

 
Andrey Khatimlianskii #:

La propriété ne peut pas s'adapter aux paramètres. Ce n'est plus fabuleux.)

))

Le but de ma proposition est de permettre d'indiquer combien d'historique est nécessaire dans l'indicateur pour les calculs.

 
Yerkin Sagandykov #:

Je teste un Expert Advisor qui utilise un indicateur personnalisé de 2021, l'indicateur réel est dessiné correctement pour cette période, mais dans le test il semble qu'il commence à partir de zéro et donc ses résultats ne sont pas corrects.

Cela vous pose-t-il un problème d'avoir des données supplémentaires garanties ?

Pas assez de mémoire ?
 
Pas de réponse, pas de mot. Je vais poser la question surhttps://www.mql5.com/ru/forum/383809 ici.
Расширение стандартной линейки таймфреймов в сторону более высоких периодов
Расширение стандартной линейки таймфреймов в сторону более высоких периодов
  • 2021.12.11
  • www.mql5.com
Уважаемые MetaQuotes! Давно назрела необходимость в более высоких ТФах в Metatrader и MQL ! Планируется ли повысить линейку периодов за пределы MN...
 
Bonne journée à tous. Pouvez-vous m'indiquer si la fonction Sleep() est exécutée dans le mode de test de l'Expert Advisor (test sur des ticks réels, bien sûr) ?