FORTES. Questões de aplicação da lei - página 64

 

Se olharmos o registro do terminal para a modificação do UJPY, vemos:

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

E no diário de bordo da 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
 

Isto é, tempo14:31:08.354 -14:31:08.339= 15 ms, não 0

Correspondentemente, a segunda modificação:

14:31:09.377 -14:31:09.363 = 14 ms (em log EA 15 ms)

 
Mikhail Filimonov:

Alguém pode explicar como pode ser que o tempo de instalação/modificação pode ser = 0 ???

Parece ser um erro lógico.

E não está claro no código com que "BuyOrder" e "SellOrder" você está trabalhando naOnTradeTransaction.

 

E depois há o erroGetTickCount() de 16ms.

Descarte-o em favor dos micro-segundos (há uma função similar).

 
Andrey Khatimlianskii:

Parece um erro de lógica.

Não está claro qual "BuyOrder" e "SellOrder" você está trabalhando na OnTradeTransaction.

Há apenas um BuyOrder e um SellOrder no Expert Advisor

O número do bilhete é verificado no início

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

 
Andrey Khatimlianskii:

E depois há o erro GetTickCount() de 16ms.

Descarte-o em favor dos micro-segundos (há uma função similar).

Andrey, de que erro você está falando?

Renat Fatkhullin2012.05.31 23:18 RU

Para informações: GetTickCount tem um erro muito menor que 16 ms, você não está usando o Windows 95.

P / S Vou tentarGetMicrosecondCount();

 

Andrei, obrigado.

Você estava certo - o erro 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:

Há apenas um BuyOrder e um SellOrder na EA

No início, o número do bilhete é verificado.

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

Não é óbvio, e não vale a pena adivinhar.

Mikhail Filimonov:

Andrey, de que erro você está falando?

Renat Fatkhullin2012.05.31 23:18 RU

Para informação: GetTickCount tem um erro muito menor que 16 ms, você não está usando o Windows 95.

P/S Vou tentar comGetMicrosecondCount();

No entanto, o erro aparece constantemente. É melhor usar µs para tais medidas.

 
Andrey Khatimlianskii:

Não é óbvio, e não vale a pena adivinhar.

No entanto, a margem de erro está sempre presente. É melhor usar µs para tais medidas.

Eu já escrevi que você está certo sobre a margem de erro (veja meu post anterior)
 
Mikhail Filimonov:
Eu já escrevi que você está certo sobre a margem de erro (veja meu post anterior).
Eu vi, acabamos de escrevê-los ao mesmo tempo.