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

 
Maksym Mudrakov :

input string Somevalue = "Maxim" ;
...
void OnTick (){
   Comment (Somevalue);
}


MQL5 프로그램은 주석을 표시합니다.

"1487811600"

왜 이런 일이 발생합니까? 올바른 문자열 값을 표시하는 방법은 무엇입니까?

오류를 찾습니다. 또는 완전한 재현 가능한 코드를 게시하십시오. 확인 코드

//+------------------------------------------------------------------+
//|                                                        Test.mql5 |
//|                                      Copyright 2017, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#property script_show_inputs
//--- input parameters
input string Somevalue= "Maxim" ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   Comment (Somevalue);
  }
//+------------------------------------------------------------------+


오류를 재현하지 않습니다.

나는 또한 주석을 인쇄로 바꾸는 것이 좋습니다. 다른 프로그램 이 차트의 주석을 단순히 덮어쓸 가능성이 있기 때문입니다.

파일:
test.mq5  2 kb
 
다른 차트에서 고문을 다시 시작하면 모든 것이 올바르게 작동했습니다. 기이한. 하지만 도움을 주셔서 감사합니다.
 
Maksym Mudrakov :
다른 차트에서 고문을 다시 시작하면 모든 것이 올바르게 작동했습니다. 기이한. 하지만 도움을 주셔서 감사합니다.
또한 입력 변수가 있습니다. 이 유형의 변수는 코드에서 재할당할 수 없습니다. 비밀리에 오작동하고 자체 주석을 표시하는 두 번째 프로그램(어드바이저 또는 표시기)이 있는 변형이 남아 있습니다.
 
fxsaber :

누가 대답을 이해했는지 설명하십시오. 나는 아직도 왜 OrderSend의 상황이 정상인지 이해가 되지 않습니다.

내가 이해하는 한 OrderSend 는 주문 이 서버에서 처리될 때까지 기다리지만 처리 결과까지는 기다리지 않습니다.
 
테스트 에이전트 는 최적화 중에 지속적으로 떨어집니다. 로컬 에이전트는 127.0.0.1:3000에 연결할 수 없으며 테스트를 중단합니다.
 
Комбинатор :
내가 이해하는 한 OrderSend 는 주문 이 서버에서 처리될 때까지 기다리지만 처리 결과까지는 기다리지 않습니다.
여기에 모호성이 있습니다.
 
OrderSend 가 true를 반환하고 해당 줄이 로그에 나타납니다.
2017.02.23 14:18:58.013 Trades  '5245006': failed buy limit 0.01 USDCNH at 6.85199 [Request rejected due to absence of network connection]
 

애플리케이션에서 OrderSend 버그를 재현하는 스크립트. 그는 Market Watch를 실행하고 각 기호에 대해 BuyLimit을 엽니다. 그런 다음 즉시 수정(TP 설치)을 시도한 다음 삭제합니다. 주문 수정 및 삭제가 불가능한 경우 해당 메시지와 함께 스크립트가 중지됩니다.

모든 것은 동기식 OrderSend를 통해 수행됩니다. 그리고 거의 즉시 우리는 성공적인 OrderSend(BuyLimit 설정) 후 보류 중인 주문 으로 아무것도 할 수 없는 상황(수정 또는 삭제)에 직면합니다.

작업의 결과

2017.02 . 23 14 : 24 : 49.828 OrderSend -StartedBug (Si- 3.17 ,M1)       ModifyError GetLastError () = 4756 EnumToString (( ENUM_ORDER_STATE ) OrderGetInteger ( ORDER_STATE )) = ORDER_STATE_STARTED
2017.02 . 23 14 : 24 : 49.828 OrderSend -StartedBug (Si- 3.17 ,M1)       DeleteError GetLastError () = 4756 EnumToString (( ENUM_ORDER_STATE ) OrderGetInteger ( ORDER_STATE )) = ORDER_STATE_STARTED

개발자 여러분, 이것은 OrderSend 버그입니까?


ZY 그러나 TRADE_ACTION_DEAL의 OrderSend는 해당 영장이 STARTED 상태인 동안 작업을 완료하지 않습니다.

스크립트의 모든 재미는 FXOpen-MT5 서버에서 천천히 경험할 수 있습니다.

파일:
 
fxsaber :

시장가 주문 에 의해 포지션이 성공적으로 열렸을 때 결과가 0이 될 때마다 Result.deal?

SD에서
결과 거래의 티켓 완료는 보장되지 않습니다. 채우기 여부는 도구의 실행 모드와 특정 서버의 설정에 따라 다릅니다.
0이 아닌 Result.deal에 누워있는 사람 - 조치를 취하십시오.
 
OpenCL not found. Error code= 5101
Error in OpenCL initialization. Error code= 5101
CPU의 통합 그래픽이 OpenCL을 지원합니까? OpenCL용 GPU가 필요하지 않았던 것 같습니다.