错误、漏洞、问题 - 页 1804

 
 
fxsaber:
只有当符号不在市场观察中时才需要睡眠。对于在指标之前(和期间)处于市场观察中的所有符号,不需要滑点。
我明白了。
 

1531--Metaquotes-Demo的刹车声并没有消失。

请求和回应

Request.action = TRADE_ACTION_DEAL (1)
Request.magic = 0
Request.order = 0
Request.symbol = #KO
Request.volume = 1.0
Request.price = 40.31
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY (0)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Position
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 117613087
Result.order = 133997293
Result.volume = 1.0
Result.price = 40.31
Result.bid = 40.28
Result.ask = 40.31
Result.comment = Request executed 345.781 + 26.356 ms
Result.request_id = 5712
Result.retcode_external = 0

OrderSend 花了345毫秒,而相应的订单和交易在历史上也花了26毫秒才变得可用。即一个非常缓慢的同步,我以前从未见过。

标准日志

2017.02.14 22:26:46.767 Trades  '5122740': prices for #KO 1.00
2017.02.14 22:26:46.852 Trades  '5122740': accepted prices for #KO 1.00
2017.02.14 22:26:46.852 Trades  '5122740': answer prices for #KO 1.00 40.28 / 40.31 in 86.046 ms (0.190 ms on server)
2017.02.14 22:26:46.852 Trades  '5122740': request buy 1.00 #KO at 40.31
2017.02.14 22:26:47.107 Trades  '5122740': accepted request buy 1.00 #KO at 40.31
2017.02.14 22:26:47.107 Trades  '5122740': deal #117613087 buy 1.00 #KO at 40.31 done (based on order #133997293)
2017.02.14 22:26:47.107 Trades  '5122740': order #133997293 buy 1.00 / 1.00 #KO at 40.31 done in 345.709 ms (3.022 ms on server)

新的日志现在是在1531年!请就本案解释一下,什么是什么。

ZZY日志几乎是在放缓后立即进行的。

2017.02.14 22:26:47.433 Trades  '5122740': prices for #KFT 1.00
2017.02.14 22:26:47.503 Trades  '5122740': accepted prices for #KFT 1.00
2017.02.14 22:26:47.506 Trades  '5122740': answer prices for #KFT 1.00 49.17 / 49.20 in 70.980 ms (4.166 ms on server)
2017.02.14 22:26:47.506 Trades  '5122740': request buy 1.00 #KFT at 49.20
2017.02.14 22:26:47.583 Trades  '5122740': accepted request buy 1.00 #KFT at 49.20
2017.02.14 22:26:47.583 Trades  '5122740': deal #117613092 buy 1.00 #KFT at 49.20 done (based on order #133997299)
2017.02.14 22:26:47.583 Trades  '5122740': order #133997299 buy 1.00 / 1.00 #KFT at 49.20 done in 149.304 ms (3.015 ms on server)

这些是被要求的字符,所以市场订单比其他的要慢。

 

TRADE_ACTION_REMOVE 的刹车。

Request.action = TRADE_ACTION_REMOVE (8)
Request.magic = 0
Request.order = 134003202
Request.symbol =
Request.volume = 0.0
Request.price = 0.0
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 0
Request.type = ORDER_TYPE_BUY (0)
Request.type_filling = ORDER_FILLING_FOK (0)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 134003202
Result.volume = 0.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 290.089 + 0.005 ms
Result.request_id = 10078
Result.retcode_external = 0
FL      0       23:02:46.797    Trades  '5122740': buy limit 1.00 Si-3.17 at 56288
GG      0       23:02:46.849    Trades  '5122740': accepted buy limit 1.00 Si-3.17 at 56288
PR      0       23:02:46.852    Trades  '5122740': order #134003202 buy limit 1.00 / 1.00 Si-3.17 at market done in 54.423 ms (0.342 ms on server)
PR      0       23:02:46.854    Trades  '5122740': cancel order #134003202 buy limit 1.00 Si-3.17 at 56288
LL      0       23:02:47.142    Trades  '5122740': accepted cancel order #134003202 buy limit 1.00 Si-3.17 at 56288
CE      0       23:02:47.144    Trades  '5122740': cancel #134003202 buy limit 1.00 Si-3.17 at market done in 290.050 ms (1.400 ms on server)
HH从终点站翻看日志,丝毫没有发现这些线路。不得不直接从文件中提取。
 
错误[无价格]现场
2017.02.14 23:18:41.442 '5122740': failed instant buy 1.00 EURPLN at 4.30632 (deviation: 100) [No prices]

怎么会没有价格,甚至在日志中也有价格呢!?

查询

2017.02.14 23:18:41.442 Request.action = TRADE_ACTION_DEAL (1)
2017.02.14 23:18:41.442 Request.magic = 0
2017.02.14 23:18:41.442 Request.order = 0
2017.02.14 23:18:41.442 Request.symbol = EURPLN
2017.02.14 23:18:41.442 Request.volume = 1.0
2017.02.14 23:18:41.442 Request.price = 4.30632
2017.02.14 23:18:41.442 Request.stoplimit = 0.0
2017.02.14 23:18:41.442 Request.sl = 0.0
2017.02.14 23:18:41.442 Request.tp = 0.0
2017.02.14 23:18:41.442 Request.deviation = 100
2017.02.14 23:18:41.442 Request.type = ORDER_TYPE_BUY (0)
2017.02.14 23:18:41.442 Request.type_filling = ORDER_FILLING_RETURN (2)
2017.02.14 23:18:41.442 Request.type_time = ORDER_TIME_GTC (0)
2017.02.14 23:18:41.442 Request.expiration = 1970.01.01 00:00:00
2017.02.14 23:18:41.442 Request.comment = My Position
2017.02.14 23:18:41.442 Request.position = 0
2017.02.14 23:18:41.442 Request.position_by = 0
2017.02.14 23:18:41.442 Result.retcode = 10021
2017.02.14 23:18:41.442 Result.deal = 0
2017.02.14 23:18:41.442 Result.order = 0
2017.02.14 23:18:41.442 Result.volume = 0.0
2017.02.14 23:18:41.442 Result.price = 0.0
2017.02.14 23:18:41.442 Result.bid = 0.0
2017.02.14 23:18:41.442 Result.ask = 0.0
2017.02.14 23:18:41.442 Result.comment = No prices 0.028 + 0.000 ms
2017.02.14 23:18:41.442 Result.request_id = 0
2017.02.14 23:18:41.442 Result.retcode_external = 0
2017.02.14 23:18:41.442
2017.02.14 23:18:41.442 SymbolInfoDouble(Symb,::SYMBOL_BID) = 4.30151
2017.02.14 23:18:41.442 SymbolInfoDouble(Symb,::SYMBOL_ASK) = 4.30632
 
fxsaber:
错误[无价格]现场
2017.02.14 23:18:41.442 '5122740': failed instant buy 1.00 EURPLN at 4.30632 (deviation: 100) [No prices]

怎么会没有价格,甚至在日志中也没有呢!?

我最近在我的真实账户上得到了同样的错误。我试着下了一个订单,但服务器没有执行它。

我目前正在与一家非常知名的公司的技术支持进行沟通。(此刻我正在和一家非常知名的公司L的技术支持聊天(我们的通信是保密的,我就不这么叫了),他们解释说他们的服务器的执行时间 对于从MT4发出的订单是一样的,他们有MT4,有FIX订单,大约是1-6ms。然后,我问他们,从MT4交易时,40-50毫秒的时间是什么,因为从发送订单到得到答复的时间大约是40-60毫秒。他们宽容地耸耸肩,好像在寻找网络延迟,我告诉他们ping 1-2ms,他们又耸耸肩。结论是,MT4/5的服务器部分很慢。现在新的日志显示。我理解时间不可能像FIX那样 "干净",但至少应该有相同的顺序。
 
Andrey Dik:
目前我正在与洛杉矶一家非常有名的公司的技术支持人员交谈。(我不知道为什么我不给他们打电话,他们解释说在他们的交易服务器上的执行时间 与从MT4(他们有MT4)发出的订单相同,由FIX发送,大约是1-6ms。然后,我问他们,从MT4交易时,40-50毫秒的时间是什么,因为从发送订单的那一刻起,得到的答案是40-60毫秒。他们宽容地耸耸肩,好像在寻找网络延迟,我告诉他们ping 1-2ms,他们又耸耸肩。结论是,MT4/5的服务器部分很慢。现在新的日志显示。我理解时间不可能像FIX那样 "干净",但至少应该有相同的顺序。

在L...铭记,当他们收到订单进入他们的系统时,系统本身的执行时间和送回的时间可以忽略不计。他们可以从MT4服务器或通过FIX和他们的其他API获得订单。MT4服务器本身会花费几十毫秒进行内部处理,这与执行没有任何关系。

曾几何时,MT4的最小时间是150ms。似乎有什么东西被严重调整了,因为它已经变成了40-60。但MT5明显更快。现在我可以在日志中看到服务器工作了多少时间。剩下的就是要了解主要时间花在什么地方。

 
与本主题无关的评论已被移至 "CopyClose 为什么会出现错误?".
 

编译错误: 无法访问f() //2

typedef void (*fn)();
#import "Test.ex5"
        void f(); //1
#import
void f() {} //2
void OnStart()
{
        fn g1 = Test::f; //нормально
        fn g2 =       f; //Error: 'f' - cannot resolve function address
}
 
@Slawa,请澄清一下,在OnCalculate()函数之外写入指标缓冲区是否有任何限制?如果在OnTimer()、OnBookEvent()、OnChartEvent()等函数中写入缓冲区,一切都会正确写入吗?

原因: