FORTS. Questions relatives à l'application de la loi - page 64

 

Si nous regardons le journal du terminal pour la modification UJPY, nous voyons :

2016.01.14 14:31:08.339 Trades  'xxxxx': modify order #25815313 sell limit 5.00 UJPY-3.16 at 118.23 sl: 0.00 tp: 0.00 -> 118.21, sl: 0.00 tp: 0.00
2016.01.14 14:31:08.347 Trades  'xxxxx': modify order #25815313 sell limit 5.00 UJPY-3.16 at 118.23 sl: 0.00 tp: 0.00 -> 118.21, sl: 0.00 tp: 0.00 placed for execution in 8 ms
2016.01.14 14:31:09.363 Trades  'xxxxx': modify order #25815313 sell limit 5.00 UJPY-3.16 at 118.21 sl: 0.00 tp: 0.00 -> 118.03, sl: 0.00 tp: 0.00
2016.01.14 14:31:09.370 Trades  'xxxxx': modify order #25815313 sell limit 5.00 UJPY-3.16 at 118.21 sl: 0.00 tp: 0.00 -> 118.03, sl: 0.00 tp: 0.00 placed for execution in 8 ms

Et dans le journal de l'EA :

2016.01.14 14:31:08.354 Forts_trader (UJPY-3.16,H1)     OnTradeTransaction: Sell ордер был модифицирован за 0 ms
2016.01.14 14:31:09.377 Forts_trader (UJPY-3.16,H1)     OnTradeTransaction: Sell ордер был модифицирован за 15 ms
 

C'est-à-dire que le temps14:31:08.354 -14:31:08.339= 15 ms, et non 0.

En conséquence, la deuxième modification :

14:31:09.377 -14:31:09.363 = 14 ms (dans le journal d'EA 15 ms)

 
Mikhail Filimonov:

Quelqu'un peut-il expliquer comment il est possible que le temps d'installation/modification soit = 0 ? ??

Ça ressemble à une erreur de logique.

Le code n'indique pas clairement avec quels "BuyOrder" et "SellOrder" vous travaillez dansOnTradeTransaction.

 

Et puis il y a l'erreurGetTickCount() de 16ms.

Jetez-la au profit des micro-secondes (il existe une fonction similaire).

 
Andrey Khatimlianskii:

Ça ressemble à une erreur de logique.

Le code n'indique pas clairement avec quels "BuyOrder" et "SellOrder" vous travaillez dans OnTradeTransaction.

Il n'y a qu'un seul ordre d'achat et un seul ordre de vente dans le conseiller expert.

Le numéro du ticket est vérifié au début

si( ( BuyOrder.ticket != 0 ) && ( trans.order == BuyOrder.ticket ) )

 
Andrey Khatimlianskii:

Et puis il y a l'erreur GetTickCount() de 16ms.

Jetez-la au profit des micro-secondes (il existe une fonction similaire).

Andrey, de quelle erreur parlez-vous ?

Renat Fatkhullin2012.05.31 23:18 RU

Pour info : GetTickCount a une erreur bien plus petite que 16 ms, vous n'utilisez pas Windows 95.

P / S Je vais essayerGetMicrosecondCount();

 

Andrei ! Merci.

Vous aviez raison - l'erreur de GetTickCount()

2016.01.14 15:37:02.535 Forts_trader (UJPY-3.16,H1)     OnTradeTransaction: Sell ордер был установлен за 17466 mcs
2016.01.14 15:37:02.916 Forts_trader (UJPY-3.16,H1)     OnTradeTransaction: Sell ордер был модифицирован за 27860 mcs
2016.01.14 15:37:27.744 Forts_trader (UCHF-3.16,H1)     OnTradeTransaction: Buy ордер был установлен за 15879 mcs
2016.01.14 15:37:27.834 Forts_trader (UCHF-3.16,H1)     OnTradeTransaction: Buy ордер был модифицирован за 17645 mcs
2016.01.14 15:37:27.890 Forts_trader (UCHF-3.16,H1)     OnTradeTransaction: Buy ордер был модифицирован за 17926 mcs
2016.01.14 15:37:29.161 Forts_trader (UCAD-3.16,H1)     OnTradeTransaction: Buy ордер был установлен за 22780 mcs
2016.01.14 15:37:29.252 Forts_trader (UCAD-3.16,H1)     OnTradeTransaction: Buy ордер был модифицирован за 18094 mcs
2016.01.14 15:37:40.291 Forts_trader (TATN-3.16,H1)     OnTradeTransaction: Buy ордер был установлен за 2795167 mcs
2016.01.14 15:37:40.295 Forts_trader (TRNF-3.16,H1)     OnTradeTransaction: Buy ордер был установлен за 1734401 mcs
2016.01.14 15:37:40.410 Forts_trader (TRNF-3.16,H1)     OnTradeTransaction: Buy ордер был модифицирован за 26514 mcs
2016.01.14 15:37:41.402 Forts_trader (TRNF-3.16,H1)     OnTradeTransaction: Buy ордер был модифицирован за 17583 mcs
2016.01.14 15:38:00.597 Forts_scalper (RTS-3.16,M1)     OnTradeTransaction: Сделка совершена. Билет = 25818639
2016.01.14 15:38:31.216 Forts_scalper (RTS-3.16,M1)     OnTradeTransaction: Сделка совершена. Билет = 25818664
2016.01.14 15:38:31.252 Forts_scalper (RTS-3.16,M1)     OnTradeTransaction: Сделка совершена. Билет = 25818665
2016.01.14 15:38:31.644 Forts_scalper (RTS-3.16,M1)     OnTradeTransaction: Сделка совершена. Билет = 25818666
2016.01.14 15:38:31.647 Forts_scalper (RTS-3.16,M1)     OnTradeTransaction: Сделка совершена. Билет = 25818666
2016.01.14 15:38:36.818 Forts_trader (GOLD-3.16,M1)     OnTradeTransaction: Sell ордер был установлен за 15058 mcs
2016.01.14 15:38:37.104 Forts_trader (SNGP-3.16,H1)     OnTradeTransaction: Sell ордер был установлен за 17065 mcs
2016.01.14 15:38:43.401 Forts_trader (AUDU-3.16,H1)     OnTradeTransaction: Sell ордер был установлен за 18336 mcs
2016.01.14 15:38:44.280 Forts_trader (AUDU-3.16,H1)     OnTradeTransaction: Sell ордер был модифицирован за 22194 mcs
2016.01.14 15:38:45.282 Forts_trader (AUDU-3.16,H1)     OnTradeTransaction: Sell ордер был модифицирован за 18528 mcs
2016.01.14 15:39:49.657 Forts_scalper (RTS-3.16,M1)     OnTradeTransaction: Сделка совершена. Билет = 25818744
2016.01.14 15:39:50.465 Forts_trader (ROSN-3.16,H1)     OnTradeTransaction: Buy ордер был установлен за 606665 mcs
2016.01.14 15:39:50.579 Forts_trader (ROSN-3.16,H1)     OnTradeTransaction: Buy ордер был модифицирован за 66626 mcs
2016.01.14 15:40:28.718 Forts_trader (UJPY-3.16,H1)     OnTradeTransaction: Sell ордер был модифицирован за 21332 mcs
2016.01.14 15:40:33.802 Forts_trader (BR-2.16,M1)       OnTradeTransaction: Buy ордер был установлен за 15558 mcs
 
Mikhail Filimonov:

Il n'y a qu'un BuyOrder et un SellOrder dans l'EA.

Et le numéro du ticket est vérifié au début...

si( ( BuyOrder.ticket != 0 ) && ( trans.order == BuyOrder.ticket ) )

Ce n'est pas évident, et il ne sert à rien de deviner.

Mikhail Filimonov:

Andrey, de quelle erreur parlez-vous ?

Renat Fatkhullin2012.05.31 23:18 RU

Pour information : GetTickCount a une erreur bien inférieure à 16 ms, vous n'utilisez pas Windows 95.

P/S Je vais essayer avecGetMicrosecondCount();

Néanmoins, l'erreur apparaît constamment. Il est préférable d'utiliser des µs pour de telles mesures.

 
Andrey Khatimlianskii:

Ce n'est pas évident, et il ne sert à rien de deviner.

Néanmoins, la marge d'erreur est toujours présente. Il est préférable d'utiliser des µs pour de telles mesures.

J'ai déjà écrit que vous avez raison au sujet de la marge d'erreur (voir mon message précédent).
 
Mikhail Filimonov:
J'ai déjà écrit que vous avez raison au sujet de la marge d'erreur (voir mon message précédent).
J'ai vu, nous les écrivions juste en même temps.