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
Quelqu'un utilise-t-il OnTradeTransaction, pour déterminer si un ordre a été passé ?
Dans le testeur de stratégie, lorsqu'une transaction et 2 ordres sont envoyés dans un intervalle de 3 ticks, TRADE_TRANSACTION_REQUEST n'arrive que 1, sur le dernier ordre envoyé.
Vous regardez les journaux du testeur ou ceux de l'agent ? Pouvez-vous écrire au Service Desk et fournir des détails ?
J'ai regardé les journaux dans l'agent, et là, un trop gros morceau de journal devrait être imprimé. J'ai juste esquissé un code approximatif, je suis trop paresseux pour m'occuper du Service Desk. Je l'ai lancé sur RoboForex depuis 2011.10.10 où un TRADE_TRANSACTION_REQUEST sur trois apparaît, et sur Metakvot deux sur trois. Apparemment, cela dépend de la fréquence d'apparition des tiques.
2012.08.22 09:43:15 Terminal SIGTrader 5 x64 build 687 lancé
J'ai regardé les journaux dans l'agent, et là, un trop gros morceau de journal devrait être imprimé. J'ai juste esquissé un code approximatif, je suis trop paresseux pour m'occuper du Service Desk. Je l'ai lancé sur RoboForex depuis 2011.10.10 où un TRADE_TRANSACTION_REQUEST sur trois apparaît, et sur Metakvot deux sur trois. Apparemment, cela dépend de la fréquence des tiques.
2012.08.22 09:43:15 Terminal SIGTrader 5 x64 build 687 lancé
En fait,OnTradeTransaction ne dépend pas du tout des ticks - c'est le gestionnaire de l'événement de transaction.
Et il gère son propre tour, la file d'attente des événements commerciaux.
OnTradeTransaction est censé ne pas dépendre du tout du tick, c'est un gestionnaire d'événement de transaction.
Et il traite son tour, une file d'attente d'événements commerciaux.
Dans cet exemple, il dépend des ticks pour fixer les ordres, à chaque tick un nouvel ordre est fixé.
Je me demande si l'absence de TRADE_TRANSACTION_REQUEST a été répétée par les développeurs, ou si nous ne pouvons pas le faire sans Service Desk ?
Dans cet exemple, la vitesse de placement des ordres dépend des ticks, un nouvel ordre est placé à chaque tick.
Je me demande si l'absence de TRADE_TRANSACTION_REQUEST a été répétée par les développeurs, ou s'il est impossible de le faire sans Service Desk ?
On ne peut probablement pas se passer de SD, la fonction est nouvelle et des bugs sont possibles. Il faut l'examiner en détail.
SZY Je suis en train de rédiger un article sur l'utilisation de cette fonction, mais je n'ai pas rencontré une telle situation.
ZZZY Je ne l'ai testé que sur les serveurs Alpari et MQ,
Si vous me donnez le nom correct du serveur, je vais essayer de le vérifier.
Probablement pas sans un CD, la fonction est nouvelle et il peut y avoir des bogues. Je dois l'examiner en détail.
Je suis en train de réaliser un article sur l'utilisation de cette fonction, mais cette situation ne m'est jamais arrivée.
ZZZY J'ai vérifié uniquement sur les serveurs Alpari et MQ,
Veuillez me donner le nom correct du serveur, je vais essayer de le vérifier.
RoboForex-MetaTrader 5
MetaQuotes-Démo
EURUSD est la devise, mais elle est mentionnée dans les logs ci-dessus.
J'ai joint un fichier avec la date du 10.10.10. Je l'ai vérifié à nouveau et il montre seulement 1 dernière TRADE_TRANSACTION_REQUES sur RoboForex.
RoboForex-MetaTrader 5
MetaQuotes-Démo
EURUSD est la devise, mais elle est mentionnée dans les logs ci-dessus.
Le fichier joint ci-dessus montre un début le 10 du mois, donc le début du test était 2011.10.10. Je l'ai vérifié une fois de plus, seul 1 dernier TRADE_TRANSACTION_REQUES est systématiquement reçu par RoboForex.
Le bogue ne se reproduit pas.
Tant sur MQ que sur RoboForex, en temps réel et dans le testeur, toutes les TRADE_TRANSACTION_REQUEST arrivent normalement.
Le système est x86, je ne peux pas vérifier sur x64 pour le moment.
En comparant les 2 journaux, nous pouvons voir que si la transaction OnTradeTransaction n'a pas été traitée avant qu'un nouvel ordre soit placé, TRADE_TRANSACTION_REQUEST est abandonné.
Voici 1 de 3
GM 0 Trade 03:35:28 2011.10.10 02:00:00 instant sell 1.00 EURUSD at 1.3385 (1.3385 / 1.3387 / 1.3385)
OL 0 Trades 03:35:28 2011.10.10 02:00:00 deal #2 sell 1.00 EURUSD at 1.3385 done (based on order #2)
JQ 0 Trade 03:35:28 2011.10.10 02:00:00 deal performed [#2 sell 1.00 EURUSD at 1.3385]
RJ 0 Trade 03:35:28 2011.10.10 02:00:00 order performed sell 1.00 at 1.3385 [#2 sell 1.00 EURUSD at 1.3385] <== 1
MH 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 TRADE_ACTION_DEAL Установлен 1 ордер
HE 0 Trade 03:35:28 2011.10.10 02:00:00 buy limit 1.50 EURUSD at 1.3234 (1.3384 / 1.3386 / 1.3384) <== 2
MP 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 TRADE_ACTION_PENDING Установлен 2 ордер
QN 0 Trade 03:35:28 2011.10.10 02:00:00 buy limit 1.50 EURUSD at 1.3285 (1.3385 / 1.3387 / 1.3385) <== 3
MM 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 TRADE_ACTION_PENDING Установлен 2 ордер
HI 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==6----- n=0
GE 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
GD 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==2----- n=1
CF 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
MF 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==3----- n=2
OS 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
OQ 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=3
KL 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
JL 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=4
GN 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
EO 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=5
CK 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
PI 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=6
OD 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ****************************************************************************
LG 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ///////////////////// trans.type==10----- n=7
OJ 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 EnumToString(type)=TRADE_TRANSACTION_REQUEST
QN 0 test5 (EURUSD,M30) 03:35:28 2011.10.10 02:00:00 ------------trans===
TRADE_TRANSACTION_REQUEST
ici 2 de 3
CL 0 Trade 03:36:07 2011.10.10 02:00:00 instant vendre 1.00 EURUSD à 1.33989 (1.33989 / 1.34003 / 1.33989)
NP 0 Trades 03:36:07 2011.10.10 02:00:00 deal #2 sell 1.00 EURUSD at 1.33989 done (based on order #2)
QR 0 Trade 03:36:07 2011.10.10 02:00:00 transaction effectuée [#2 sell 1.00 EURUSD at 1.33989]
DJ 0 Trade 03:36:07 2011.10.10 02:00:00 ordre exécuté sell 1.00 at 1.33989 [#2 sell 1.00 EURUSD at 1.33989] <== 1
RK 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 TRADE_ACTION_DEAL 1 ordre exécuté
QE 0 Trade 03:36:07 2011.10.10 02:00:00 achat limite 1.50 EURUSD à 1.32490 (1.33990 / 1.34004 / 1.33990) <== 2
LS 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 TRADE_ACTION_PENDING 2ème ordre fixé
GP 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==6----- n=0
JM 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
DM 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==2----- n=1
JH 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
FJ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==3----- n=2
JG 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
DG 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=3
JR 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
ID 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==0----- n=4
JQ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
IR 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ///////////////////// trans.type==10----- n=5
RP 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 EnumToString(type)=TRADE_TRANSACTION_REQUEST
RG 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ------------trans===
DEMANDE_DE_TRANSACTION
...
FD 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:00 ****************************************************************************
OG 0 transaction 03:36:07 2011.10.10 02:00:01 achat limite 1.50 EURUSD à 1.32992 (1.33992 / 1.34006 / 1.33992) <== 3
QQ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 TRADE_ACTION_PENDING 2ème ordre fixé
RQ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ///////////////////// trans.type==0----- n=6
OO 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ****************************************************************************
RM 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ///////////////////// trans.type==10----- n=7
CF 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 EnumToString(type)=TRADE_TRANSACTION_REQUEST
CJ 0 test5 (EURUSD,H1) 03:36:07 2011.10.10 02:00:01 ------------trans===
DEMANDE_DE_TRANSACTION
...
Le bug ne fonctionne pas.
Tant sur MQ que sur RoboForex, en temps réel et dans le testeur, toutes les TRADE_TRANSACTION_REQUEST arrivent normalement.
Le système est x86, je ne peux pas le vérifier sur x64 pour le moment.
J'ai essayé sur un vieil ordinateur portable, cela a fonctionné de manière séquentielle : mise en place des commandes - réponse - mise en place des commandes - réponse - mise en place des commandes - réponse
Je pense que cela devrait fonctionner si nous envoyons 2 ordres pendant 1 tick.OnTradeTransaction ne fonctionnera pas à temps alors.
J'ai un peu modifié le fichier.
Bon après-midi.
J'ai créé une unité pour compter les battements sur les lignes d'enveloppes, elle semble tout compter correctement, mais le journal manque certaines entrées - par exemple le journal a count[Number] =3 et le count[Number] suivant =5. Je peux voir que le comptage est correct mais le journal manque pour une raison quelconquecount [Number] =4. Parfois le journal contient toutes les entrées. Je ne comprends pas pourquoi ça arrive. Si vous voyez des erreurs dans le code, pouvez-vous corriger le code?
De plus, parfois, le testeur en cours d'exécution génère l'erreur " OnTick critical error ", mais au démarrage suivant, il commence à tester. Quel pourrait être le problème ?