Comment ouvrir correctement un ordre au marché ? - page 6

 
Gennady Mazur:

Vous avez été correctement informé de la pause. Il y a déjà eu un sujet sur le forum selon lequel une pause de quelques millisecondes après l'envoi de l'ordre est souvent suffisante pour continuer à travailler avec la position. Il vaut mieux ne pas compter sur OnTradeTransaction() si c'est possible.

Et en général, pour être plus fiable, essayez de vérifier la disponibilité de la position sur le prochain tick après l'envoi de l'ordre. S'il y a une position, n'envoyez pas d'autres ordres.

 
Alexey Kozitsyn:

Il ne faut pas se fier à OnTradeTransaction(), si possible.


Je me demande pourquoi.
 
prostotrader:
Je me demande pourquoi.

1. Il n'est pas certain qu'elle vienne ;

2. Se comportait mal avant dans le testeur. Je ne sais pas maintenant ;

Ajouté :

3. certains paramètres de commande ou de transaction (je ne me souviens pas exactement), comme les énumérations, peuvent avoir des "valeurs par défaut" qui ne le sont pas. C'est-à-dire que MQ n'a pas fait WRONG_VALUE mais, par exemple, ORDER_TYPE_BUY. Cela pourrait être trompeur ;

 
Alexey Kozitsyn:

Vous avez été correctement informé de la pause. Il y a déjà eu un sujet sur le forum selon lequel une pause de quelques millisecondes après l'envoi de l'ordre est souvent suffisante pour continuer à travailler avec la position. Il vaut mieux ne pas compter sur OnTradeTransaction() si c'est possible.

Et en général, pour être plus fiable, essayez de vérifier s'il y a une position après l'envoi de l'ordre au tick suivant. S'il y a une position, n'envoyez pas d'autres ordres.

En principe, je le fais, mais dans Forts un ordre est souvent accepté avec succès... mais il n'y a pas de position sur le tick suivant.
C'est là que l'ouverture supplémentaire peut se glisser .... résoudre partiellement le problème comme suit, si l'ordre est accepté, j'augmente la variable Int, et après l'augmentation les conditions d'ouverture sont légèrement différentes, donc une nouvelle ouverture ne se produit pas, mais.... si l'ordre n'est pas accepté la variable n'augmente pas, et voici la partie délicate ... Je n'ai pas correctement identifié l'état et des commandes supplémentaires arrivent.
 
Alexey Kozitsyn:

1. Il n'est pas certain qu'elle vienne ;

2. Se comportait mal avant dans le testeur. Je ne sais pas maintenant ;

Vous n'avez probablement pas vu le message des développeurs indiquant que désormais, OnTradeTransaction() est garanti.

Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.
Что касается этой фразы.

Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.

Combien de secondes de pause ? 1 sec 2, peut-être 10 ?

2016.12.14 22:01:41.371 Trades  'xxxxx': cancel order #49932961 buy limit 1.00 CHMF-6.17 at 92501 placed for execution in 64873.549 ms

Ajouté

N'oubliez pas que vous travaillez avec une application CLIENT-SERVER (demande-réponse).

 
prostotrader:

Vous n'avez probablement pas vu le message des développeurs indiquant que désormais, OnTradeTransaction() est garanti.

Кроме того, транзакции могут потеряться при доставке от сервера к терминалу.
Что касается этой фразы.

Судя по всему - она осталась из документации к одной из начальных версий терминала с асинхронной торговли. В ближайшее время уберём. Виновные будут расстреляны.

Combien de temps devons-nous faire une pause ? 1sec 2, peut-être 10 ?

2016.12.14 22:01:41.371 Trades  'xxxxx': cancel order #49932961 buy limit 1.00 CHMF-6.17 at 92501 placed for execution in 64873.549 ms

Oui, vous avez raison, je n'ai pas vu la phrase, les cadavres non plus :)

À propos de la pause - vous avez donné un cas plutôt exotique, mais, bien sûr, c'est possible. Je parlais du cas où l'on travaille avec des instruments liquides, des contrats en cours et où l'on travaille sur le tick actuel immédiatement après avoir envoyé l'ordre. Dans la grande majorité des cas, quelques millisecondes suffisent. Et, bien sûr, après la pause, il est nécessaire de vérifier la présence de la position pour continuer à travailler avec elle.

 
Gennady Mazur:
En principe je le fais, mais dans Forts l'ordre est souvent accepté avec succès...mais au tick suivant il n'y a pas encore de position....
C'est ici que l'ouverture supplémentaire peut glisser .... résoudre partiellement le problème de cette façon, si la commande est acceptée, j'augmente la variable int, et après l'augmentation les conditions d'ouverture sont légèrement différentes, donc une nouvelle ouverture ne se produit pas, mais.... si la commande n'est pas acceptée la variable n'augmente pas, mais voici l'astuce... J'ai mal évalué l'état et des commandes supplémentaires ont commencé à apparaître.
Dans tous les cas, comme cela a déjà été suggéré, utilisez une journalisation avancée, et pas seulement un retour par oui ou par non. Surtout au stade du développement.
 
Alexey Kozitsyn:

Oui, vous avez raison, je n'ai pas vu la phrase, et les cadavres non plus :)

À propos de la pause - vous avez donné un cas plutôt exotique, mais, bien sûr, c'est possible. Je parlais du cas où l'on travaille avec des instruments liquides, des contrats en cours et où l'on travaille sur le tick actuel juste après l'envoi de l'ordre. Dans la grande majorité des cas, quelques millisecondes suffisent. Et, bien sûr, après la pause, il est nécessaire de vérifier la présence de la position pour continuer à travailler avec elle.

Alexey !

Un instrument assez liquide :)

2016.12.14 22:01:41.431 Trades  'xxxxx': cancel order #49931802 sell limit 1.00 GOLD-9.17 at 1190.2 placed for execution in 64926.078 ms

Il ne s'agit pas de l'instrument (liquidité), mais du retard, qui peut se produire dans N'IMPORTE QUEL instrument.

Je fais du trading actif en utilisant des EA depuis presque 4 ans maintenant.

Dans aucun de mes EAs il n'y a de pauses (sauf la pause en attendant que les données soient téléchargées du serveur dans INDICATORS),

Si vous faites une pause, c'est un signe certain que votre EA ne l'a pas fait correctement :(

 
prostotrader:

Alexey !

Je fais du trading actif avec des EA depuis presque 4 ans maintenant.

Je n'ai aucune pause dans aucun de mes EAs (sauf une pause pour attendre que les données soient téléchargées du serveur dans INDICATORS),

Si vous entrez dans une pause, c'est un VRAI signe que vous avez mal créé l'algorithme de votre EA :(

Michael, si vous n'avez pas vu ou fait quelque chose, cela ne signifie pas que ce n'est pas possible ou pas nécessaire.
 
Alexey Kozitsyn:
Michael, si vous n'avez pas vu ou fait quelque chose, cela ne signifie pas que c'est impossible ou inutile.

Je suis tout à fait d'accord avec vous !

Chacun fait comme il veut ou comme il peut.

Raison: