기고글 토론 "인디케이터의 경제적 계산 원칙"

 

새로운 기고글 인디케이터의 경제적 계산 원칙 가 게재되었습니다:

사용자 및 기술 인디케이터에 대한 호출은 자동 거래 시스템의 프로그램 코드에서 매우 적은 공간을 차지합니다. 종종 단순히 몇 줄의 코드 일뿐입니다. 그러나 가장 많은 시간을 사용하는 몇 줄의 코드로 Expert Advisor를 테스트하는 데 소비해야 하는 경우가 종종 있습니다. 따라서 인디케이터 내 데이터 계산과 관련된 모든 것은 언뜻 보기 보다 훨씬 더 철저히 고려되어야 합니다. 이 글은 이것에 대해 정확하게 이야기 할 것입니다.

이제 Expert Advisor의 코드에서 인디케이터 값의 복사 함수에 대한 합리적인 호출의 세부 사항이 명확해졌으므로 Expert Advisors에서 IsNewBar () 함수를 적용하여 얻을 수 있는 이점을 테스트 할 수 있습니다.

따라서 전략 테스터에서 테스트 할 수 있는 두 가지 Expert Advisors 옵션이 있는데, 첫 번째 옵션은 AMA_Test.ex5입니다. 각 틱에서 인디케이터 버퍼의 데이터를 복사합니다.

그림 9 Expert Advisor AMA_Test에 합격한 결과

두 번째 - IsNewBar_AMA_Test.mq5는 바의 변경 중에만 데이터를 복사합니다.

그림 10 Expert Advisor의 테스트에 합격한 결과 IsNewBar_AMA_Test

네! 테스트 결과는 다소 실망스럽습니다. 각 틱마다 IsNewBar () 함수를 호출하는 것이 사용자 배열의 세 셀에 데이터를 복사하는 것보다 훨씬 더 비쌉니다! 

여기에서 중요하지만 눈에 띄지 않는 인디케이터의 또 다른 부분에 주의를 기울이고 싶습니다. 사실 OnInit () 함수에서 인디케이터의 핸들을 얻으면 OnTick () 함수 내에서 이 인디케이터의 데이터를 복사하는지 여부에 관계없이 아직 계산되지 않은 현재 바에 대한 계산, 틱마다 계속 수행됩니다.

작성자: Nikolay Kositsin