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

 
Vladislav Andruschenko :

동의한다. 변경해야 합니다.

이 규칙에 따라 분기가 있습니다.

Организация цикла перебора ордеров
Организация цикла перебора ордеров
  • 2017.09.16
  • www.mql5.com
MQL4 и MetaTrader 4: Организация цикла перебора ордеров
 
fxsaber :

이 규칙에 따라 분기가 있습니다.


네, 환경이 변할 때만 히스토리에 접근하는 기능에 대한 발췌문을 읽고 다른 주제에서 귀하의 링크를 만났습니다.

요점까지 버전을 읽은 후 오류가 나타났습니다.

 
fxsaber :

이것은 잘못된 논리입니다. 성공적이지 못한 OrderSend 후에는 현재 거래 환경을 완전히 다시 읽어야 합니다. 이 규칙은 항상 적용되어야 합니다.

반환 코드 정보. 나는 Expert Advisors에서 그것들을 분석하지 않습니다. 제 생각에는 거래 논리가 그들에게 의존해서는 안 됩니다.

이론적으로 시간 초과는 브로커 서버와의 통신이 끊어지는 동안 발생할 수 있습니다.

이런 경우에는 복원될 때까지 그리고 거래 환경이 서버와 완전히 동기화될 때까지 아무 것도 하지 않는 것이 좋습니다.

반환 코드를 분석 하지 않고 이러한 상황에 빠지지 않으려면 어떻게 해야 합니까?

 

컴파일 오류 .


Test.mqh 파일

 int Tmp = 1 ;


메인 코드

 #include "Test.mqh"

void OnStart ()
{
   Print (Tmp);
   Print (Tmp2); // 'Tmp2' - undeclared identifier
}

#define Tmp Tmp2
#include "Test.mqh"


재포함이 무시되는 것으로 나타났습니다. 그러나 이 상황에서는 잘못된 것입니다!

우리는 다음 디자인을 위해 그런 디자인이 필요합니다. Expert Advisor는 mqh 파일에 포함되어 있습니다. 그러나 실생활(첫 번째 포함)과 테스터(두 번째 포함)에서 모두 실행할 수 있어야 합니다.

 
Andrey Khatimlianskii :

이론적으로 시간 초과는 브로커 서버와의 통신이 끊어지는 동안 발생할 수 있습니다.

이런 경우에는 복원될 때까지 그리고 거래 환경이 서버와 완전히 동기화될 때까지 아무 것도 하지 않는 것이 좋습니다.

반환 코드를 분석하지 않고 이러한 상황에 빠지지 않으려면 어떻게 해야 합니까?

우리는 OrderSend 를 보냈고 서버의 응답을 기다리지 않았고, 로그 및 _LastError에 시간 초과가 발생했습니다. 동시에 _LastError를 무시하고 false만 얻습니다.

이후 연결이 되면 거래 환경을 재조립하여 결정을 내립니다.

선택은 물론 정보를 수집하기 전에 항상 확인하는 것이 바람직합니다.

 
fxsaber :

우리는 OrderSend를 보냈고 서버의 응답을 기다리지 않았고, 로그 및 _LastError에 시간 초과가 발생했습니다. 동시에 _LastError를 무시하고 false만 얻습니다.

이후 연결이 되면 거래 환경을 재조립하여 결정을 내립니다.

선택은 물론 정보를 수집하기 전에 항상 확인하는 것이 바람직합니다.

OnTick에서 작업하면 작동합니다. 그리고 그렇지 않다면?

연결을 확인하는 방법?

 
Andrey Khatimlianskii :

OnTick에서 작업하면 작동합니다. 그리고 그렇지 않다면?

연결을 확인하는 방법?

 TerminalInfoInteger ( TERMINAL_CONNECTED );
 
fxsaber :
 TerminalInfoInteger ( TERMINAL_CONNECTED );

역사적으로 나는 그를 믿지 않는다. 5-ke에서 테스트해야합니다 ..

 

시간 초과 문제는 연결이 없는 것이 아니라 요청 시간 초과가 수신된 것입니다.

한편으로 저는 이것을 봅니다. 거래를 시작하라는 신호가 있고, 요청을 하고, 시간 초과가 발생했습니다. 하지만 거래는 열려 있습니다.

조언자가 오류를 수신했지만.

거래 환경을 확인하십시오 - 우리는 열린 거래를 봅니다.

그러나이 거래가이 신호에서 정확히 시작되었음을 이해하는 방법은 무엇입니까? 예를 들어 10개의 신호가 있다면?

저것들. 새로운 거래가 기록(터미널에서)에 나타났는지 확인하십시오. 이 거래에 신호 상태를 할당합니다.


아이디어를 얻을 때까지

@A100

어떤 출력이 보이나요?

 
fxsaber :

재포함이 무시되는 것으로 나타났습니다. 그러나 이 상황에서는 잘못된 것입니다!

우리는 다음 디자인을 위해 그런 디자인이 필요합니다. Expert Advisor는 mqh 파일에 포함되어 있습니다. 그러나 실생활(첫 번째 포함)과 테스터(두 번째 포함)에서 모두 실행할 수 있어야 합니다.

모든 것이 정확하고 올바르게 무시됩니다.

Sish 해킹은 작동하지 않습니다.