Questions des débutants MQL4 MT4 MetaTrader 4 - page 250
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Si c'est simple, pour vérifier rapidement, c'est quelque chose comme ça :
Les commandes se suivent généralement dans le temps, mais ce n'est pas garanti. Il convient donc de vérifier la chronologie. Mais pour les expériences, cela fera l'affaire.
Si c'est simple, pour vérifier rapidement, c'est quelque chose comme ça :
Les commandes se suivent généralement dans le temps, mais ce n'est pas garanti. Il convient donc de vérifier la chronologie. Mais cela fera l'affaire pour les expériences.
Je suis d'accord, le timing n'est pas garanti. C'est pourquoi je veux passer en revue toutes les commandes fermées jusqu'au ticket. Je connais le billet d'ordre et j'essaie de compter à partir de celui-ci, mais quelque chose a mal tourné.
Si c'est simple, pour vérifier rapidement, c'est quelque chose comme ça :
Les commandes se suivent généralement dans le temps, mais ce n'est pas garanti. Il convient donc de vérifier la chronologie. Mais cela fera l'affaire pour les expériences.
Si nous examinons l'historique, il serait préférable d'examiner les ordres de plus petit à plus grand qui se ferment au moment du recalcul, car les ordres de marché sont considérés de plus grand à plus petit, afin que nous puissions considérer correctement ceux qui sont ouverts et fermés au même tick. Je pense que oui)
S'il est simple à vérifier rapidement, alors c'est quelque chose comme ceci :
En règle générale, les ordres se suivent dans le temps, mais ce n'est pas garanti. Il convient donc de vérifier la chronologie dans le bon sens du terme. Mais ça fera l'affaire pour les expériences.
Le code d'Alexey ne le fait-il pas aussi bien ?
Dans l'historique il vaut mieux passer de moins en plus d'ordres pour prendre en compte ceux qui vont se fermer au moment du recalcul, ce sont les ordres au marché que l'on compte de plus en moins pour comptabiliser correctement les ouverts et fermés sur le même tick. Je pense que oui)
Le code d'Alexey calcule-t-il également de manière incorrecte ?
Je ne l'ai pas essayé. Je vais l'essayer maintenant. Je vous le ferai savoir.
Si c'est simple, pour vérifier rapidement, c'est quelque chose comme ça :
Les commandes se suivent généralement dans le temps, mais ce n'est pas garanti. Il convient donc de vérifier la chronologie. Mais ça fera l'affaire pour les expériences.
Je l'ai vérifié et j'ai obtenu beaucoup d'erreurs pendant la compilation, je les ai toutes corrigées, sauf pour :
if(profit>max)
Cette ligne, je ne la comprends pas bien. Pouvez-vous l'expliquer ?
L'idée est de changer le ticket après avoir atteint un certain profit.
Le max est la limite du bénéfice après laquelle le ticket change. La valeur est fixée par vous.
Le max est la limite du bénéfice après laquelle le ticket change. Sa valeur est fixée par vous.
Le problème est différent, si je comprends bien. Il existe des commandes 1, 2 et 3. Je ne sais pas comment les prix ouverts sont formés. L'ordre 3 est fermé, le bénéfice total est égal au bénéfice de l'ordre 3. C'est-à-dire que nous devons calculer le ticket pour l'ordre ouvert avant l'ordre 3 . Alors l'ordre 2 est fermé. Nous devrions trouver le ticket de l'ordre ouvert avant l'ordre 2. Le bénéfice total est égal au bénéfice des commandes 2 et 3.
Je ne comprends pas pourquoi, mais cela semble être la logique).
Valery, je n'ai pas bien compris la logique de ces deux phrases.
Forum sur le trading, les systèmes de trading automatisé et les tests de stratégie
FAQ des débutants MQL4 MT4 MetaTrader 4
makssub, 2021.09.01 16:38
Je dois utiliser la première fonction pour trouver le ticket d'ordre requis et la seconde fonction doit calculer le profit de tous les ordres fermés suivant ce ticket. Je ne suis pas intéressé par le profit de celles qui précèdent. Mais le second ne le calcule pas correctement. Lorsqu'un ordre est ouvert, ces 2 fonctions sont appelées et donc il devrait être égal à 0, mais il ne l'est pas.
PS a suivi votre conseil, a abandonné les tableaux)
12ème boîte ci-dessus)
J'ai pensé à tout et je l'ai adapté en me basant sur vos conseils).
La tâche consistait à couvrir un ordre perdant avec d'autres ordres à profit.
Nous l'avons mis en œuvre. Nous avons mémorisé le ticket de l'ordre ouvert après l'ordre perdant ; c'était notre point de rapport. Après ce point, nous commençons à calculer le bénéfice de l'ordre déficitaire et le bénéfice des ordres fermés après lui. Je vous rappelle que le premier ordre est ouvert et que nous le fermons lorsqu'il atteint un profit.
si ( (CalculateProfitHistory() + FirstProfit() >= Profit)
{
CloseFirst() ;
Print ("Fermer le premier ordre perdant") ;
}