Organiser le cycle de commande - page 10

 
Alexey Viktorov:

Qui a été blessé lorsqu'une commande a été re-sélectionnée ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Organiser un cycle de relecture de commande

fxsaber, 2017.10.06 06:26

Cela peut conduire à une situation où certains billets seront manqués ou à la répétition d'un billet, etc.

Et il ne s'agit même pas d'une modification, mais d'un simple AmountOrders.

 
fxsaber:

Pourquoi, si IsChange est de cinq lignes ?

Pas pour résoudre ce problème particulier. C'est pour ma bibliothèque - et beaucoup de questions nécessaires à la création d'un programme confortable sont résolues là. Mais en particulier, il renvoie juste le fait de tout changement dans les listes de marché ou d'historique.

 
fxsaber:

Et il ne s'agit même pas d'une modification, mais d'un simple AmountOrders.

Vous n'avez pas besoin de parcourir les listes de l'environnement, qui sont mélangées lorsque l'environnement change, mais vous avez votre propre liste - elle n'est pas mélangée, et elle contient tous (ou en excès, mais pas en insuffisance) les tickets que vous devez fermer/supprimer/modifier. S'ils ont disparu physiquement, vous n'avez pas besoin de recommencer le cycle, passez simplement au suivant sur la liste. Et c'est tout - pas besoin de changer l'index de la boucle ou d'essayer de répéter la boucle d'une manière ou d'une autre. Nous consultons simplement notre liste et essayons de faire ce dont nous avons besoin. Aucun billet n'est sur le marché - pas de problème (on ne peut pas déjà le rendre) - on passe au suivant et on en fait ce qu'on veut. Et la minuterie corrigera à son tour la liste au prochain tic-tac.

 
fxsaber:

Et il ne s'agit même pas d'une modification, mais d'un simple AmountOrders.

Bien sûr que oui. Tout peut arriver, n'importe quand. Vous marchez, vous marchez, tout se passe bien, et soudain vous glissez... Il n'y a pas de filet de sécurité pour tout. C'est pourquoi je n'essaie pas d'écrire des fonctions maximalement universelles "pour toutes les occasions". Alors, quelle importance si un ordre est sélectionné deux fois pour un simple AmountOrders ? Quelle est la probabilité que l'ordre soit fermé/supprimé manuellement exactement au moment de l'exécution de la boucle ? Car dans l'exemple donné, l'ordre est clôturé dans la même boucle. Cela peut être fait uniquement à titre expérimental, mais je ne peux pas imaginer que nous devions modifier l'ordre ou faire autre chose et le fermer immédiatement...

 
Artyom Trishkin:

Vous n'avez pas besoin de passer par les listes de l'environnement qui sont mélangées lorsque l'environnement change, mais vous avez votre propre liste - elle n'est pas mélangée, et elle contient tous (ou en excès, mais pas en insuffisance) les tickets que vous devez fermer/supprimer/modifier. S'ils ont disparu physiquement, vous n'avez pas besoin de recommencer le cycle, passez simplement au suivant sur la liste. Et c'est tout - pas besoin de changer l'index de la boucle ou d'essayer de répéter la boucle d'une manière ou d'une autre. Nous consultons simplement notre liste et essayons de faire ce dont nous avons besoin. Aucun billet n'est sur le marché - pas de problème (on ne peut pas déjà le rendre) - on passe au suivant et on en fait ce qu'on veut. Et le chronomètre corrige à son tour la liste au prochain tic-tac.

Supposons que nous voulions désactiver l'EA si le nombre d'ordres pour un symbole donné dépasse le nombre spécifié. Alors, comment ?

 
Alexey Viktorov:

Bien sûr que oui. Tout peut arriver, n'importe quand. Vous marchez, vous marchez, tout est droit, et soudain vous glissez... Il n'y a pas de filet de sécurité pour tout. C'est pourquoi je n'essaie pas d'écrire des fonctions maximalement universelles "pour toutes les occasions". Alors, quelle importance si un ordre est sélectionné deux fois pour un simple AmountOrders ? Quelle est la probabilité que l'ordre soit fermé/supprimé manuellement exactement au moment de l'exécution de la boucle ? Car dans l'exemple donné, l'ordre est clôturé dans la même boucle. Cela peut être fait uniquement à titre expérimental, mais je ne peux pas imaginer que nous devions modifier l'ordre ou faire autre chose et le fermer immédiatement...

Tu n'as pas regardé ça? Reproductible en un rien de temps !

 
fxsaber:

Supposons que nous voulions désactiver l'EA si le nombre d'ordres pour un symbole donné dépasse le nombre spécifié. Alors comment ?

Là - dans le chronomètre lors de l'écriture des ordres à la liste - dépassé - envoyé un événement ou levé un drapeau.

 
Artyom Trishkin:

Là - dans la minuterie lors de l'écriture des ordres à la liste - dépassé - ont envoyé un événement ou soulevé un drapeau.

Cependant, il est préférable de ne pas le faire - tout doit être à sa place.

Dans le timer de l'Expert Advisor nous prenons la liste selon les critères nécessaires et à list.Total()>xxx nous faisons ce que nous voulons.

 
fxsaber:

Tu n'as pas regardé ça? Il est jouable en un rien de temps !

C'est exactement ce que j'ai regardé.

    
  // Закрыли позиции
  for (int i = 0; i < Total; i++)
    OrderClose(Tickets[i], 1, SymbolInfoDouble(_Symbol, SYMBOL_BID), 100);
}


Et mon poste

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Comment organiser une boucle de commande

Alexey Viktorov, 2017.10.06 08:49

Quelle est la probabilité de fermer/supprimer manuellement un ordre exactement au moment de l'exécution du cycle ?


Et aussi, quel est le sens le plus profond dans le trading réel de courir continuellement après la boucle des ordres ? Le plus important pour rien...

 
Alexey Viktorov:

De même, quel est le sens profond, dans le trading réel, de la course continue à travers une boucle d'ordres ?

Dans un environnement de combat, cela devrait toujours être fait ! La probabilité de tomber sur un côté qui ferme une position dans un cycle est donc un pourcentage.

Raison: