오류, 버그, 질문 - 페이지 1804

 
이 주제와 관련이 없는 댓글은 " MQL4에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 "으로 이동되었습니다.
 
fxsaber :
수면은 기호가 Market Watch에 없는 경우에만 필요합니다. 지표의 출시 전(및 작동 중) 시장 감시에 있는 모든 기호에는 전표가 필요하지 않습니다.
알았습니다.
 

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

345ms는 OrderSend 에 의해 실행되었고 26ms는 해당 주문 및 거래가 기록에서 사용 가능하게 하는 데 필요했습니다. 저것들. 매우 느린 동기화 - 나는 이것을 전에 본 적이 없습니다.

표준 로그

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년에 있습니다! 이 경우 무엇인지 설명하십시오.

브레이크 직후 ZY 로그

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)
터미널에서 로그의 ZY 검토는 어떤 식으로든 이러한 행을 발행하지 않았습니다. 파일에서 직접 가져와야 했습니다.
 
[가격 없음] 갑자기 발생한 오류
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에 있는 아주 유명한 회사의 기술 지원팀과 이야기하고 있는 중입니다...(비밀 서신이 있으므로 이름을 밝히지 않겠습니다), 그들은 그들의 거래 서버 에서 실행 시간 이 다음과 같다고 설명합니다. FIX에 따라 전송되고 약 1-6ms인 MT4(MT4가 있음)에서 시작된 주문과 동일합니다. 그런 다음 MT4에서 거래 할 때 40-50ms에 소비 한 시간이 무엇인지 묻습니다. 그래서 주문을 보내고 응답을받는 순간부터 약 40-60ms가 걸립니다. 그들은 당신의 네트워크 지연을 살펴보는 것과 같이 관대하게 어깨를 으쓱합니다. 내가 그들에게 1-2ms를 핑(ping)하고 다시 어깨를 으쓱합니다. 결론 - MT4/5의 서버 부분이 느려집니다. 이제 새 로그가 이를 보여줍니다. 나는 시간이 FIX에 따라 "순수"할 수 없다는 것을 이해하지만 최소한 같은 순서여야 합니다.
 
Andrey Dik :
추신. 현재 제가 L에 있는 아주 유명한 회사의 기술 지원팀과 이야기하고 있는 중입니다...(비밀 서신이 있으므로 이름을 밝히지 않겠습니다), 그들은 그들의 거래 서버 에서 실행 시간 이 다음과 같다고 설명합니다. FIX에 따라 전송되고 약 1-6ms인 MT4(MT4가 있음)에서 시작된 주문과 동일합니다. 그런 다음 MT4에서 거래 할 때 40-50ms에 소비 한 시간이 무엇인지 묻습니다. 그래서 주문을 보내고 응답을받는 순간부터 약 40-60ms가 걸립니다. 그들은 당신의 네트워크 지연을 살펴보는 것과 같이 관대하게 어깨를 으쓱합니다. 내가 그들에게 1-2ms를 핑(ping)하고 다시 어깨를 으쓱합니다. 결론 - 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() 함수에 버퍼가 작성되면 모든 것이 항상 올바르게 기록됩니까?