堡垒。执法问题 - 页 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

相应的是第二种修改。

14:31:09.377 -14:31:09.363 = 14 ms(在EA日志中为15 ms)。

 
Mikhail Filimonov:

谁能解释一下,为什么安装/修改时间可以=0?

这看起来是一个逻辑错误。

从代码中看不出你在OnTradeTransaction 中处理的是哪个 "BuyOrder "和 "SellOrder"。

 

然后是GetTickCount() 的16ms的错误。

抛弃它,改用微秒(有一个类似的功能)。

 
Andrey Khatimlianskii:

这看起来像是逻辑上的错误。

从代码中不清楚你在OnTradeTransaction中处理的是哪个 "BuyOrder "和 "SellOrder"。

专家顾问中只有一个BuyOrder和一个SellOrder。

在开始时检查票号

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

 
Andrey Khatimlianskii:

然后是GetTickCount()的16ms的错误。

抛弃它,改用微秒(有一个类似的功能)。

安德烈,你说的是什么错误?

Renat Fatkhullin2012.05.31 23:18 RU

对于信息:GetTickCount的错误远远小于16ms,你没有使用Windows 95。

P / S 我将尝试GetMicrosecondCount()

 

安德烈!谢谢你。

你是对的 -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中只有一个买单和一个卖单。

并在开始时检查票号...

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

这并不明显,猜测也没有意义。

米哈伊尔-菲利蒙诺夫

安德烈,你说的是什么错误?

Renat Fatkhullin2012.05.31 23:18 RU

供参考:GetTickCount的误差远小于16ms,你没有使用Windows 95。

P/S 我将尝试使用GetMicrosecondCount()

然而,这个错误不断出现。这种测量最好使用µs。

 
Andrey Khatimlianskii:

这并不明显,猜测也没有意义。

尽管如此,误差率总是存在的。这类测量最好使用µs。

我已经写过,你对误差率的看法是正确的(见我以前的帖子)。
 
Mikhail Filimonov:
我已经写过,你对误差范围的看法是正确的(见我以前的帖子)。
我看到了,我们只是同时在写它们。