FORTI. Problemi di applicazione - pagina 64

 

Se guardiamo il log del terminale per la modifica UJPY, vediamo:

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 nel registro 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
 

Cioè il tempo14:31:08.354 -14:31:08.339= 15 ms, non 0

Corrispondentemente la seconda modifica:

14:31:09.377 -14:31:09.363 = 14 ms (nel registro EA 15 ms)

 
Mikhail Filimonov:

Qualcuno può spiegare come può essere che il tempo di installazione/modifica possa essere = 0?

Sembra un errore di logica.

E non è chiaro dal codice con quali "BuyOrder" e "SellOrder" state lavorando inOnTradeTransaction.

 

E poi c'è l'erroreGetTickCount() di 16ms.

Scartatelo a favore dei microsecondi (c'è una funzione simile).

 
Andrey Khatimlianskii:

Sembra un errore di logica.

Non è chiaro dal codice con quali "BuyOrder" e "SellOrder" state lavorando in OnTradeTransaction.

C'è solo un BuyOrder e un SellOrder nell'Expert Advisor

Il numero del biglietto viene controllato all'inizio

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

 
Andrey Khatimlianskii:

E poi c'è l'errore GetTickCount() di 16ms.

Scartatelo a favore dei microsecondi (c'è una funzione simile).

Andrey, di quale errore stai parlando?

Renat Fatkhullin2012.05.31 23:18 RU

Per info: GetTickCount ha un errore molto più piccolo di 16 ms, non stai usando Windows 95.

P / S ProveròGetMicrosecondCount();

 

Andrei! Grazie.

Avevi ragione: l'errore di 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:

C'è solo un BuyOrder e un SellOrder nell'EA

E il numero del biglietto viene controllato all'inizio...

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

Non è ovvio e non ha senso indovinare.

Mikhail Filimonov:

Andrey, di quale errore stai parlando?

Renat Fatkhullin2012.05.31 23:18 RU

Per informazione: GetTickCount ha un errore molto più piccolo di 16 ms, non state usando Windows 95.

P/S Proverò conGetMicrosecondCount();

Tuttavia, l'errore appare costantemente. È meglio usare i µs per queste misure.

 
Andrey Khatimlianskii:

Non è ovvio e non ha senso indovinare.

Tuttavia, il margine di errore è sempre presente. È meglio usare i µs per queste misure.

Ho già scritto che hai ragione sul margine di errore (vedi il mio post precedente)
 
Mikhail Filimonov:
Ho già scritto che hai ragione sul margine di errore (vedi il mio post precedente).
Ho visto, li stavamo scrivendo nello stesso momento.
Motivazione: