Erreurs, bugs, questions - page 686

 
abolk:
Uneautre option consiste à considérer que le prix d'ouverture est le prix qui a été formé dans la fourchette de prix précédente. L'exemple de l'ouverture des marchés a montré que c'est incorrect.

Ne m'attribuez pas cette absurdité. Je répète :

La proposition est élémentaire : former les barres selon un modèle horaire lorsque le prix d'ouverture est égal au prix RÉEL au moment de la formation de la minute. ACTUAL (prix d'offre existant réellement), et non le prix de clôture de la barre précédente !

Le marché pour chaque IF s'ouvre au moment où le prix de l'offre pour cet IF apparaît. Dans le même FOREX, le marché n'ouvre pas pour tous les IF en même temps.

 
abolk:

Vous avez vous-même déduit la règle : "Pas de prix, pas de bar".

Si le marché était ouvert, mais qu'il n'y avait pas de liquidité (vendeurs ou acheteurs), il n'y avait pas de prix. Il y avait soit un "prix demandé", soit un "prix offert", mais en l'absence d'une des parties de la transaction - le prix était absent, il n'y avait que le prix de la période précédente.

Et c'est correct, lorsque la décision sur le prix en cas de synchronisation multi-devises est prise par le TS lui-même, et non par le terminal. Car la question de savoir quel est le prix en cas d'absence de prix est ambiguë.

OK, Andrew, tu m'as presque convaincu.

Alors laissez le terminal remplir les barres manquées par le growler avec du NAN - je suis d'accord ! Mais il ne les supprime pas de la série temporelle de manière irréversible (par des moyens standards). Tout ce dont j'ai besoin, c'est d'un outil de synchronisation standard. Je déciderai moi-même avec quoi remplir les barres "indéfinies". Même (au moins) je suis prêt à accepter de ne pas afficher les barres manquées, bien que cela ne me permette pas de comparer visuellement les graphiques de différents instruments.Mais j'ai besoin de cotations synchronisées (par numéro de barre) pour les calculs. Ma question est donc la suivante : suis-je le seul développeur original ou quelqu'un d'autre en a-t-il besoin ? Quel est le pourcentage de ceux qui en ont besoin ? Ce pourcentage augmente-t-il ou diminue-t-il ? Et enfin, quel compilateur génère un code plus rapide - MQL5 ou C++ ?

 
La tâche est simple, faire en sorte que le testeur donne le moins d'imprécisions possible. En ce moment, le testeur ment presque toujours, en disant qu'au moment de la formation de la minute, le prix était égal au prix ouvert de la barre. C'est la raison pour laquelle l'arbitrage se produit toujours aux prix ouverts dans le testeur, alors qu'il n'y a pas d'arbitrage aux prix de clôture. Et, en conséquence de l'utilisation du modèle poétique de formation des barres, TC devra dépenser ses ressources informatiques pour synchroniser plusieurs FI sur les prix de clôture des barres. Les développeurs économisent sur les matchs pour laisser les utilisateurs gaspiller beaucoup de ressources informatiques sur une synchronisation stupide à chaque fois qu'ils s'exécutent dans le testeur. Ils ne les laissent pas faire cette synchronisation avant de lancer l'optimisation.
 
hrenfx:

Le marché pour chaque IF s'ouvre lorsqu'il existe un prix d'offre pour cet IF. Dans le cas du FOREX, le marché ne s'ouvre pas pour tous les IFs en même temps.

Dans ce cas, la seule chose à faire est de forcer tous les acteurs du marché à agir exclusivement au même moment.

L'une des questions que posent les stratégies multidevises est de savoir s'il est correct ou non de considérer à un moment donné le dernier prix qui a eu lieu il y a tant et tant de temps comme adéquat.

 
abolk:

L'une des questions que posent les stratégies multidevises est de savoir s'il est correct ou non de considérer comme adéquat le dernier prix qui a eu lieu il y a si longtemps.

Tout à fait exact, tant que le prix passé est lié à la session de négociation actuelle. Prenons à nouveau le prix des pommes de terre.
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
hrenfx:
Tout à fait exact si le prix passé se réfère à la session de négociation en cours. Reprenez le prix des pommes de terre.
Correct si vous prenez en compte le prix passé pour prendre des décisions dans la session actuelle, mais attribuer le prix passé à la session actuelle est incorrect. La définition du prix que j'ai donnée ci-dessus. Il faut faire la distinction entre "le prix de l'acte d'achat/de vente", "le prix de la demande" et "le prix de l'offre". Nous "ne connaissons pas le prix de l'offre". Une session de négociation est basée sur son "prix d'achat/de vente". Vous, en revanche, proposez de baser la séance de négociation sur les prix de la période précédente "acte d'achat/vente". Pourquoi transférer ces prix à la période actuelle, s'ils ont été formés au cours de la dernière période et sont déjà connus et peuvent être obtenus.
 
abolk:
Correct lorsque vous prenez en compte le prix passé pour prendre des décisions dans la session actuelle, mais il est incorrect de relier le prix de la session passée à la session actuelle.

Ce n'est pas ce qui est dit ici ?

hrenfx:
Tout à fait exact lorsque vous faites le lien entre le prix passé et la session de négociation actuelle. Prenons à nouveau le prix des pommes de terre.

Dites-moi un défaut dans ce modèle de formation de barres :

Une nouvelle minute arrive - une barre se forme, dont le prix d'ouverture est le prix acheteur au moment de la nouvelle minute. Dans ce cas, si le prix de l'offre n'est pas disponible au moment de la nouvelle minute (ouverture d'une session de trading), une barre n'est pas formée, ou est formée avec la valeur NAN (pour le prix d'ouverture, car le High, le Low et le Close peuvent déjà être). Les barres pendant une session de négociation fermée ne sont pas formées.

 
hrenfx:

Dites-moi un défaut dans ce modèle de formation de bar :

Une nouvelle minute arrive - une barre se forme, dont le prix d'ouverture est le prix acheteur au moment de la nouvelle minute. Dans ce cas, si le prix d'offre n'est pas disponible au moment d'une nouvelle minute (ouverture d'une session de négociation), la barre n'est pas formée, ou est formée avec la valeur NAN. Les barres pendant une session de négociation fermée ne sont pas formées.

La mise en évidence est incorrecte sur la base de la définition du prix. Vous assimilez constammentle "prix de la dernière transaction" au "prix d'une transaction non encore exécutée". De plus, nous avons déjà fait une hypothèse douteuse en assimilant le "prix de la dernière transaction" au "prix de l'offre". Commencez-vous à construire la barre sur les "prix de l'offre" ? Quels sont ces prix ? Comment les connaissons-nous ?
 
abolk:
La mise en évidence est incorrecte sur la base de la définition du prix. Vous assimilez constamment le"prix de la dernière transaction" au "prix d'une transaction qui n'a pas encore eu lieu". De plus, nous avons déjà fait une hypothèse douteuse en assimilant le "prix de la dernière transaction" au "prix de l'offre". Est-ce que vous commencez à construire la barre sur les "prix de l'offre" ? Quels sont ces prix ? Comment les connaissons-nous ?

Vous continuez à m'attribuer des bêtises que vous lisez entre les lignes. Voici un exemple concret de la mise en œuvre de ma suggestion

  1. 00:59:58 - Le prix de l'EURUSD s'établit à 1,2301.
  2. 00:01:00 - le prix de 1.2301 est valide depuis 2 secondes, c'est pourquoi le prix d'ouverture de la barre de 00:01 est égal à celui-ci - 1.2301.

Un autre exemple :

  1. Ouverture de la session de négociation à 00:00:00.
  2. Le premier prix apparaît à 00:02:34 - 1.2301. Puis, en l'espace d'une minute, le prix évolue dans la fourchette de 1,2290 - 1,2310. Et à la fin de 00:02:02 minutes, il devient 1.2305.

Pour cet exemple, nous avons trois barres :

  • 00:00 - {NAN, NAN, NAN, NAN} (OHLC) ;
  • 00:01 - {NAN, NAN, NAN, NAN} (OHLC) ;
  • 00:02 - {NAN, 1.2310, 1.2290, 1.2305} (OHLC) ;

Où est la faille ?

 
MetaDriver:

OK, Andrew, tu m'as presque convaincu.

Alors laissez le terminal remplir les barres manquées par le growl avec la valeur NAN - je suis d'accord ! !! Mais il ne les supprime pas irrévocablement de la série temporelle (par des moyens standards). Tout ce dont j'ai besoin est un outil de synchronisation standard. Je déciderai moi-même avec quoi remplir les barres "indéfinies".Je peux même (au moins) accepter de ne pas afficher les barres manquées, bien que cela me prive de la possibilité de comparer visuellement les graphiques de différents instruments. Mais pour les calculs, j'ai besoin de cotations synchronisées (par numéro de barre).

Je ne peux rien dire sur la présence ou l'absence de barres "ratées" - ce n'est pas critique pour moi. De plus, je ne connais pas les problèmes de mise en œuvre. Peut-être sont-ils essentiels et la solution actuelle est un compromis pour le moment. S'il est si important et qu'il n'est pas présent dans le terminal, le "tirage" des barres "ratées" peut être effectué manuellement.