フォルツァ執行上の問題点 - ページ 64

 

UJPY改造のターミナルログを見ると、こうなっています。

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

そして、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
 

すなわち、時間14:31:08.354 -14:31:08.339= 15 ms であり、0ではない

2回目の修正に対応する。

14:31:09.377 -14:31:09.363 = 14 ms (EAログでは15ms)

 
Mikhail Filimonov:

どなたか、インストール/修正時間が=0になることを説明できる方はいらっしゃいますか?

ロジックエラーのようです。

また、OnTradeTransaction でどの "BuyOrder" と "SellOrder" を扱っているのか、コードからはよくわかりません。

 

そして、GetTickCount()の 16msのエラーです。

マイクロ秒を優先して破棄する(同様の機能がある)。

 
Andrey Khatimlianskii:

論理の間違いのようです。

OnTradeTransaction でどの "BuyOrder" と "SellOrder" を扱っているのか、コードから明らかではありま せん。

Expert AdvisorにはBuyOrderとSellOrderが1つずつしかありません。

最初にチケット番号を確認します

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

 
Andrey Khatimlianskii:

そして、GetTickCount()の16msのエラーです。

マイクロ秒を優先して破棄する(同様の機能がある)。

アンドレイ どのようなエラーなのですか?

Renat Fatkhullin2012.05.31 23:18 RU

参考:GetTickCountのエラーが16msよりずっと小さい場合、Windows95を使用していないことになります。

P / SGetMicrosecondCount() を試してみます。

 

アンドレイ ありがとうございます。

あなたの言う通り、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:

EAにはBuyOrderとSellOrderが1つずつしかありません。

そして、最初にチケット番号を確認するのですが...。

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

当たり前じゃないし、推測しても意味がない。

ミハイル・フィリモノフ

アンドレイ どのようなエラーなのですか?

Renat Fatkhullin2012.05.31 23:18 RU

参考:GetTickCountのエラーが16msよりずっと小さい場合、Windows95を使用していないことになります。

P/SGetMicrosecondCount() で試してみます。

それにもかかわらず、エラーは常に表示されます。このような測定にはµsを使用するのがよいでしょう。

 
Andrey Khatimlianskii:

当たり前じゃないし、推測しても意味がない。

とはいえ、誤差は常に存在する。このような測定にはµsを使用するのがよいでしょう。

誤差については、その通りだと既に書いています(前回の記事参照)
 
Mikhail Filimonov:
誤差の範囲については、すでにおっしゃるとおりと書きました(前回の記事参照)。
なるほど、ちょうど同時期に書いていたんですね。
理由: