기고글 토론 "초보자를 위한 MQL5 Expert Advisor 코드 작성 가이드" - 페이지 3

 

몇 가지 어려움 끝에 테스터는 완전히 작동하여 기사에 명시된 결과와 일치하는 결과를 생성했습니다.

어려움에 대해. 기록 다운로드에 매우 오랜 시간(8Mbps에서 55분)이 걸렸고 여러 번 중단되어 테스터를 두 번 다시 시작해야 했습니다. 결국 테스터가 멈췄습니다. MT 5를 닫았지만 다시 열 수 없었습니다. 시스템을 완전히 재부팅해야 했습니다. 그 후 MT5가 조용히 부팅되었고 놀랍게도 테스터가 완전히 작동 (약 2 분)하고 기사에 명시된 모든 결과를 제공했습니다 (기사에 명시된대로 테스트 매개 변수를 정확하게 지정했습니다). 그리고 다른 시간대에 대한 추가 테스트도 문제없이 진행되었습니다.

요약. 기사는 멋집니다. 전문가 어드바이저는 실행 가능합니다. 더 파헤쳐 보겠습니다.

 
ArraySetAsSeries 호출이 OnTick() 본문에 있고 OnInit() 본문에 없는 이유가 궁금합니다.
Документация по MQL5: Операции с массивами / ArraySetAsSeries
Документация по MQL5: Операции с массивами / ArraySetAsSeries
  • www.mql5.com
Операции с массивами / ArraySetAsSeries - Документация по MQL5
 
Также это лучшее место для получения хэндлов технических индикаторов, которые будут использоваться (в нашем случае это индикаторы ADX 및 이동 평균).

여기서 보조지표의 핸들이란 무엇인가요?

그게 뭔가요? 보조지표 식별자?

 
vas:

여기서 기술 지표의 핸들이란 무엇인가요?

인디케이터 식별자란 무엇인가요?

인디케이터 핸들은 인디케이터가 계산되는 스레드의 식별자이며, 데이터 스트림에 주소를 지정하는 핸들을 호출합니다.

그리고 핸들을 반환하는 함수는 바로 이 스레드를 생성(시작)합니다. 그렇기 때문에 개발자는 스트림이 생성된 직후에는 데이터 계산 중일 수 있으므로 스트림에 액세스하지 않는 것이 좋습니다.

 

친환경 기사! 명확하게 구조화되어 있고 쉽게 이해할 수 있습니다.

"OnInit()"의 첫 번째 "if" 조건에 있는 반환 표현식이 의심스럽습니다. 매개변수가 0이 아니라 -1이거나, 아니면 if 조건이 중복되어 있는 건 아닌지 모르겠습니다.

 

표준 라이브러리의 클래스에 대한 https://www.mql5.com/ko/articles/100 기사의 전문가를 구현하려고했습니다.

제가 얻은 것을 게시하고 있습니다.

불행히도 기사의 코드에 오류가 있기 때문에 동일한 거래가 작동하지 않았습니다.

ExpertADX-MA.mq5 파일은 Experts\Advisors에 배치해야 합니다. -이것은 전문가 어드바이저입니다.

SignalADX-MA.mqh파일은 포함\전문가\신호 - 이것은 거래 신호의 클래스입니다.

TrailingFixedPips.mqh 파일은 Include\Expert\Trailing(교체 포함)에배치해야 합니다. 이 파일은 표준 제공에서 약간의 변경이 있는 파일입니다.

Expert.mqh 파일은 Include\Expert (교체 후)넣어야 합니다 . -파일에 넣어야합니다. 표준 배달의 파일을 약간 변경한 파일입니다.

표준 전달의 변경 사항은 다음 빌드에서 적용될 예정입니다.

참고: 트롤은 (작업자의 요청에 따라) Expert에서 "나사로 고정"되어 있습니다.

나사를 "풀려면" 줄에 주석을 달아야 합니다:

      if(!ExtExpert.InitTrailing(new CTrailingFixedPips)) return(-3);

줄을 주석 처리해야 합니다.

Пошаговое руководство по написанию MQL5-советников для начинающих
Пошаговое руководство по написанию MQL5-советников для начинающих
  • 2010.06.09
  • Samuel
  • www.mql5.com
Написание советников на MQL5 проще чем кажется, вы легко можете этому научиться. В этом руководстве вы познакомитесь с основными моментами, необходимыми для написания простого советника на основе конкретной торговой стратегии. Рассмотрена структура советника, использование встроенных технических индикаторов и торговых функций, вопросы отладки и тестирования советника на исторических данных.
파일:
 

초보자를 위한 MQL5 Expert Advisor 작성 단계별 가이드 문서에 있는 EA 코드의 오류가 수정되었습니다.

전문가 어드바이저 코드의 업데이트된 버전을 다운로드하세요.
 

위의 EA 코드에서.

동적 배열 double maVal[]은 전역 범위에서 선언됩니다.

OnTick() 함수 영역이 아닌 전역 범위에서 선언되었습니다.

전문가 어드바이저가 24시간 동안 실행되었다고 가정해 봅시다.

질문: 동적 배열에 할당된 메모리는 어떻게 될까요? 얼마나 빨리 쓰레기로 막히게 될까요?

다시 말해, 이 경우 메모리 누수가 발생하는가라는 질문을 공식화하겠습니다.

 

기사 감사합니다!

 
이 기사에 대해 매우 감사드리며 많은 도움이 되었습니다. 내 EA에 대한 코드를 작성한 후 디버깅 버튼을 눌렀는데 10 개의 오류가 있다고 들었는데 귀하의 기사에는 이러한 오류를 수정하기위한 정보가 없습니다. 이 문제를 해결하려면 어떻게해야합니까? 가능한 한 빨리 답장을 보내주세요.