L'oscillateur d'équité de MQL5 signifie - page 3

 

DV2010:

...Renat, si j'ai bien compris, l'affichage de l' indicateur sur le graphique à la fin du test est basé sur les calculs effectués pendant le test et le remplissage du tableau de l'indicateur. Mais qu'est-ce que cela signifie, que les résultats ne sont pas transférés du testeur au graphique de l'indicateur personnalisé ?

Bien entendu, les données de calcul de l'indicateur provenant de l'agent testeur ne sont pas transférées sur le graphique du terminal. Nous ne passerons pas des centaines de mégaoctets de données calculées au terminal, et elles seront immédiatement (et au prochain tick) recalculées par l'indicateur (l'appel de la fonction OnCalculate n'a pas été annulé).

L'indicateur devrait se calculer tout seul.

 

sergey1294:
Отвечу вам одно, пока не появиться режим визуализации решить вашу задачу не так просто. Есть одно решение, это записывать данные эквити в файл при тесте. потом данные из этого файла записать в буфер индикатора тем самым построить график эквити.

Mais où est-ce que j'écris exactement les données dans le tampon ?

Je pensais que cela ne pouvait être écrit que dans OnCalculated et j'ai essayé de l'implémenter de cette façon.

 
DV2010:

Rosh, la variante pour online a déjà été postée, mais en tant que personne qui travaille principalement avec l'histoire, j'ai besoin d'une variante qui fonctionne sur les données historiques. Et j'ai toujours du mal à comprendre quelle pourrait être la principale difficulté ici.


Écrire les valeurs d'équité dans un fichier. Tracez ensuite l'indicateur en fonction de ces valeurs. Cependant, le fichier de données devra être déplacé manuellement car, pendant les tests, les fichiers sont écrits dans le dossier agent_name/MQL5/Files.
 
DV2010:

Mais où est-ce que j'écris exactement les données dans le tampon ?

Je pensais que cela ne pouvait être écrit que dans OnCalculated et j'ai essayé de l'implémenter de cette façon.

Nous utilisons l'expert pour écrire les valeurs dans le fichier, puis dans l'indicateur nous écrivons le code pour lire le fichier et écrire les données dans le tampon. Je ne peux pas encore vous montrer le code, il me faudra du temps pour l'écrire.

 
Renat:

Bien entendu, les valeurs calculées des indicateurs ne peuvent pas être transférées de l'agent testeur au graphique terminal. Nous ne passerons pas des centaines de mégaoctets de données calculées au terminal, et elles seront immédiatement (et au prochain tick) recalculées par l'indicateur (l'appel de la fonction OnCalculate n'a pas été annulé).

Renat, l'indicateur devrait se lire

C'estpourquoi j'initialise les valeurs du tableau d'indicateurs avec certaines valeurs dans la méthode OnCalculated . Mais pourquoi est-il possible d'initialiser (construire) la ligne de l'indicateur de cette manière, alors que les valeurs d'équité ne le font pas ?

 
DV2010:

Renat, l'indicateur devrait se lire

C'estpourquoi j'initialise les valeurs du tableau de l'indicateur avec certaines valeurs dans la méthode OnCalculated . Mais pourquoi est-il possible d'initialiser (construire) la ligne de l'indicateur de cette manière, alors que les valeurs d'équité ne le peuvent pas ?

Parce que les prix ont une histoire, mais pas l'équité. Par conséquent, vous devez construire votre propre historique pour Equity en l'écrivant dans un fichier.
 
Rosh: Écrire les valeurs d'équité dans le fichier. Construisez ensuite l'indicateur sur la base de ces valeurs. Cependant, le fichier de données doit être transféré manuellement. Lors des tests, les fichiers sont écrits dans le dossier Agent_name/MQL5/Files.

Si je comprends bien, il devrait être écrit dans le fichier dans le OnInit du Conseiller Expert sur la base de la définition via AccountInfoDouble(ACCOUNT_EQUITY) et lu depuis le fichier - dans l' indicateurOnCalculated.

Mais pourquoi les données sur la variable Equty via AccountInfoDouble(ACCOUNT_EQUITY)sont-elles disponibles directement dans OnCalculated?

Le code deviendrait alors trop lourd.....

Jene comprends pas ...OnCalculated dans Print AccountInfoDouble(ACCOUNT_EQUITY) produit une certaine valeur .

Qu'est-ce qui l'empêche exactement d'être immédiatement affecté au tableau des valeurs indicatrices ?

J'ai toujours pensé que l'indication des valeurs dans le testeur sur l'historique ne diffère de l'indication des valeurs actuelles que par le fait que l'historique est déjà enregistré, alors que les données actuelles viennent juste d'arriver.

 

sergey1294:
потому что цены имеют историю а эквити нет. По этому для эквити вам нужно строить собственную историю записав ее в файл.

Mais alors comment la dynamique de l'Equty est-elle affichée à travers AccountInfoDouble(ACCOUNT_EQUITY) dans l' indicateur OnCalculated (et pas seulement dans l'Expert Advisor OnTick) ?

Ou est-ce que OnCalculated Indicator fonctionne différemment en mode test et en mode affichage ?

 

Déclarez deux tableaux Equity[] et Time[] au niveau global dans EA.

Inscrivez la valeur de l'équité et du temps dans le tableau approprié lorsque vous testez l'EA.

Utilisez un script pour lire le fichier à la fin du test et tracer l'équité sur le graphique requis.

C'est la meilleure façon de procéder pour vos besoins, je ne comprends pas pourquoi vous avez besoin d'un indicateur.

 
DV2010:

Si je comprends bien, il devrait être écrit dans le fichier dans l'indicateur OnInit du conseiller expert sur la base de la définition via AccountInfoDouble(ACCOUNT_EQUITY) et lu depuis le fichier - dans l' indicateurOnCalculated.

Mais pourquoi les données sur la variable Equty via AccountInfoDouble(ACCOUNT_EQUITY)sont-elles disponibles directement dans OnCalculated?

Le code deviendrait alors trop lourd.....

Jene comprends pas ...OnCalculated dans Print AccountInfoDouble(ACCOUNT_EQUITY) sort une certaine valeur .

Qu'est-ce qui l'empêche exactement d'être immédiatement affecté au tableau des valeurs indicatrices ?

J'ai toujours pensé que l'indication des valeurs dans le testeur sur l'historique ne diffère de l'indication des valeurs actuelles que par le fait que l'historique est déjà enregistré, alors que les données actuelles viennent juste d'arriver.

Je ne sais même pas comment te l'expliquer. AccountInfoDouble(ACCOUNT_EQUITY) enregistre la dernière valeur d'équité. Après le test, comme Renat l'a dit, l'indicateur est réinitialisé et recalculé. Ainsi, les données d'équité accumulées dans la mémoire tampon de l'indicateur pendant le test sont effacées.
Raison: