FORTS. Fragen der Durchsetzung - Seite 64

 

Ein Blick auf das Terminal-Log für die UJPY-Modifikation zeigt:

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

Und im EA-Protokoll:

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
 

D.h. Zeit14:31:08.354 -14:31:08.339= 15 ms, nicht 0

Dementsprechend die zweite Änderung:

14:31:09.377 -14:31:09.363 = 14 ms (im EA-Protokoll 15 ms)

 
Mikhail Filimonov:

Kann jemand erklären, wie es sein kann, dass die Installations-/Modifizierungszeit = 0 sein kann?

Es sieht nach einem Logikfehler aus.

Und aus dem Code geht nicht klar hervor, mit welchen "BuyOrder" und "SellOrder" Sie inOnTradeTransaction arbeiten.

 

Und dann ist da noch derGetTickCount() -Fehler von 16ms.

Verwerfen Sie sie zugunsten von Mikrosekunden (es gibt eine ähnliche Funktion).

 
Andrey Khatimlianskii:

Es sieht nach einem Fehler in der Logik aus.

Aus dem Code geht nicht hervor, mit welchen "BuyOrder" und "SellOrder" Sie in OnTradeTransaction arbeiten.

Es gibt nur eine BuyOrder und eine SellOrder im Expert Advisor

Die Ticketnummer wird zu Beginn überprüft

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

 
Andrey Khatimlianskii:

Und dann ist da noch der GetTickCount()-Fehler von 16ms.

Verwerfen Sie sie zugunsten von Mikrosekunden (es gibt eine ähnliche Funktion).

Andrey, von welchem Fehler sprechen Sie?

Renat Fatkhullin2012.05.31 23:18 RU

Zur Info: GetTickCount hat einen Fehler, der viel kleiner als 16 ms ist, Sie benutzen also nicht Windows 95.

P / S Ich werde versuchen,GetMicrosecondCount();

 

Andrei! Danke.

Sie hatten Recht - der Fehler von 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:

Es gibt nur eine BuyOrder und eine SellOrder im EA

Zu Beginn wird die Ticketnummer überprüft...

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

Es ist nicht offensichtlich, und es hat keinen Sinn, zu raten.

Mikhail Filimonov:

Andrey, von welchem Fehler sprechen Sie?

Renat Fatkhullin2012.05.31 23:18 RU

Zur Information: GetTickCount hat einen Fehler, der viel kleiner als 16 ms ist, Sie benutzen also nicht Windows 95.

P/S Ich werde es mitGetMicrosecondCount() versuchen;

Trotzdem tritt der Fehler immer wieder auf. Es ist besser, für solche Messungen µs zu verwenden.

 
Andrey Khatimlianskii:

Es ist nicht offensichtlich, und es hat keinen Sinn, zu raten.

Dennoch ist die Fehlermarge immer vorhanden. Es ist besser, für solche Messungen µs zu verwenden.

Ich habe bereits geschrieben, dass Sie mit der Fehlermarge Recht haben (siehe meinen vorherigen Beitrag).
 
Mikhail Filimonov:
Ich habe bereits geschrieben, dass Sie mit der Fehlermarge Recht haben (siehe meinen vorherigen Beitrag).
Ich habe gesehen, dass wir sie gerade zur gleichen Zeit geschrieben haben.