mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 71

 

fxsaber :

"MetaTrader 5에서 거래 전략 최적화 시각화" 기사 토론

fxsaber , 2018.02.22 08:39

프레임 모드에서 OnInit, OnDeinit, OnTick, OnTrade, OnTradeTransaction 및 OnTimer는 무시됩니다. OnChartEvent만 쟁기질합니다.

물론 OnChartEvent 예외로 인해 프레임 모드 플래그가 있는지 필수 확인해야 합니다.

그런 절대적인 확신은 어디에서 오는가? :-)

 
데니스 키리첸코 :

그런 절대적인 확신은 어디에서 오는가? :-)

물론 연습부터.

 

그럼 질문입니다. 프레임 모드는 일반적으로 테스트 여부를 나타내는 모드입니다.

 
데니스 키리첸코 :

그럼 질문입니다. 프레임 모드는 일반적으로 테스트 여부를 나타내는 모드입니다.

간접적으로 그렇습니다. 이 모드에서는 테스터 자신만 터미널에서 Expert Advisor를 시작할 수 있습니다.

 

좋은. 그리고 Expert Advisor에 OnTick() 처리기가 있는 경우 프레임 모드에서 작동하지 않습니다.

IMHO, 여기에서 프레임 핸들러가 터미널 자체에 의해 실행되고 테스트에 일반적인 모든 것(OnTick(), OnTrade() 등)이 테스트 에이전트 로 전송된다는 점을 명확히 해야 합니다. 따라서 프레임 모드는 에이전트가 터미널과 상호 작용하는 특수한 복합 테스트 모드입니다.

그런거...


거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2018.02.22 09:22

간접적으로 그렇습니다. 이 모드에서는 테스터 자신만 터미널에서 Expert Advisor를 시작할 수 있습니다.


간접적으로 왜? 예를 들어 일반 최적화는 Tester에서만 실행할 수도 있습니다.

 
데니스 키리첸코 :

좋은. 그리고 Expert Advisor에 OnTick() 처리기가 있는 경우 프레임 모드에서 작동하지 않습니다.

IMHO, 여기에서 프레임 핸들러가 터미널 자체에 의해 실행되고 테스트에 일반적인 모든 것(OnTick(), OnTrade() 등)이 테스트 에이전트 로 전송된다는 점을 명확히 해야 합니다. 따라서 프레임 모드는 에이전트가 터미널과 상호 작용하는 특수한 복합 테스트 모드입니다.

그런거...



간접적으로 왜? 예를 들어 일반 최적화는 Tester에서만 실행할 수도 있습니다.

프레임 모드에서도 전투 고문이기 때문입니다. 이러한 이유로 OnChartEvent에서 프레임 플래그를 확인해야 합니다. 그렇지 않으면 이러한 종류의 문제가 발생할 수 있습니다.

 sinput uint Range = 100 ;

#define SETRANGE(A, START, STEP, END) ParameterSetRange ( #A, true , A, START, STEP, END)

void OnTesterInit () { SETRANGE(Range, 0 , 1 , Range); }

void OnTesterDeinit () {}

void OnChartEvent ( const int id, const long & lparam, const double & dparam, const string & sparam)
{
   static const bool IsFrame = MQLInfoInteger ( MQL_FRAME_MODE );
  
//  if (!IsFrame) // без этой проверки Терминал (не только Агент) начнет выставлять ордера на реальном счете во время запуска Оптимизации
     OrderSend ( _Symbol , OP_BUY , 1 , Ask , 100 , 0 , 0 );
}


발표된 것은 이번이 처음인 것 같습니다. 즉, 마켓 제품은 불쾌한 취약점을 생성합니다... 게다가 이 취약점을 우회하는 것은 매우 어렵습니다. 감지도 동일합니다.

 
fxsaber :

프레임 모드에서도 전투 고문이기 때문입니다. 이러한 이유로 OnChartEvent에서 프레임 플래그를 확인해야 합니다. 그렇지 않으면 이러한 종류의 문제가 발생할 수 있습니다.

발표된 것은 이번이 처음인 것 같습니다. 즉, 마켓 제품은 불쾌한 취약점을 생성합니다... 게다가 이 취약점을 우회하는 것은 매우 어렵습니다. 감지도 동일합니다.

하지만! 그렇다면 IMHO, 이것은 테스트 모드 에서 Expert Advisor의 잘못된 작업입니다 ...

당신은 알아차릴 수 있는 훌륭한 동료입니다!

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

fxsaber , 2018.02.27 08:01

OBJ_CHART의 Expert Advisors에 대한 결론

  • OnInit, OnDeinit, 전역 생성자/소멸자 및 OnChartEvent가 작동합니다.
  • OnTimer, OnTick 및 OnBookEvent가 작동하지 않습니다.
  • 이벤트 중 CHARTEVENT_CHART_CHANGE 및 사용자 정의 이벤트만 포착합니다.
  • Expert Advisor의 OnChartEvent+EventChartCustom을 통해 OnTimer 및 OnTick에 대해 "이벤트"를 생성할 수 있지만 OnBookEvent 에는 생성할 수 없습니다.

따라서 모든 유형의 차트에서 작동(OnTimer + OnTick)할 수 있도록 적절한 포함( 예시 )을 연결하여 모든 거래 고문을 본격적인 거래 고문으로 만드는 것이 가능합니다.

ZY OBJ_CHART는 CHART_IS_OBJECT를 통해 정의됩니다.

 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

"제어된 최적화: 어닐링 방법" 기사에 대한 토론

fxsaber , 2018.02.28 08:45

tester_file은 컴파일 시간에 존재하는 경우에만 읽힙니다(내용은 중요하지 않음).

해당 파일이 없을 때 mq5가 컴파일된 경우 EX5에서는 더 이상 존재하지 않습니다.

따라서 OnTesterInit에서 tester_file에 대한 파일을 생성하는 경우 전송된 파일이 비어 있는 경우 Expert Advisor를 컴파일했는지 확인하십시오.

tester_file 지시문이 있으면 Optimizer 캐시가 작동하지 않습니다.

 
그리고 테스터_파일을 통해 Files_Common 폴더의 파일을 포함할 수 없습니다...