ChannelEA2: 메타트레이더 5를 위한 최적의 EA

Mike 2018.06.16 18:52 60 0 0
첨부파일

ChannelEA2는 ChannelInd 지표에 의해 그려진 채널에서 작동하는 EA입니다.

이 EA는 독립적으로 작동할 수 있으며, ChannelInd 지표는 EA의 작동에 필수적이지 않습니다. 필요한 데이터는 모두 EA 내부에서 계산됩니다.

EA는 시간 기반으로 거래를 수행합니다. EA 설정에서 지정된 거래 시간에 맞춰, 채널 경계에 두 개의 보류 중인 스탑 오더를 배치하고, 채널의 반대쪽에 스톱 로스 레벨을 설정합니다. 테이크 프로핏 레벨은 설정하지 않으며, 거래 시간이 종료되면 모든 기존 포지션이 종료되고, 발동되지 않은 주문은 삭제됩니다.

주의: 이 EA는 교육 목적으로 설계되었습니다.

ChannelEA2는 다음과 같은 여덟 가지 구성 가능한 파라미터를 가지고 있습니다:

  • 시작 시간 (Begin hour) - 거래 시작 시간;
  • 종료 시간 (End hour) - 거래 종료 시간;
  • EA 고유 번호 (Experts magic number) - EA의 포지션을 식별하는 고유한 번호;
  • 로트 (Lots) - 열 포지션의 볼륨;
  • 가격 슬리피지 (Slippage of price) - 포지션 오픈 시 허용되는 최대 슬리피지;
  • 스탑을 위한 스프레드 배수 (Multiplier spread for stops) - 스탑 오더의 적절한 거리를 계산하기 위해 적용되는 스프레드 배수 (*);
  • 환경 업데이트 대기 시간 (Waiting for environment update) - 거래 환경 업데이트를 기다리는 시간 (초) (**);
  • 환경 상태 획득 시도 횟수 (Number of attempts to get the state of the environment) - 거래 환경에 대한 정확한 정보를 얻기 위한 시도 횟수 (***).
* 보류 중인 주문(스톱 로스 또는 테이크 프로핏 포함)의 경우, 스탑 오더를 배치하기 위한 최소 허용 거리인 StopLevel이 있습니다. 즉, 보류 중인 주문(스톱 로스 또는 테이크 프로핏)은 가격에 대해 위의 거리보다 가까이 배치될 수 없습니다. 그러나 StopLevel이 0이라면 이는 StopLevel이 없다는 것이 아니라 플로팅 상태임을 의미합니다. 이 경우 최소 거리는 보통 스프레드의 두 배 값이지만, 때때로 두 배 스프레드조차도 충분하지 않을 수 있습니다. 이 때문에 EA는 보류 주문을 배치하기 위한 최소 거리를 계산하는 데 사용되는 커스텀 스프레드 배수를 도입했습니다.
** 거래 주문이 서버로 전송될 때, 실행 지연이 발생하면 시장 포지션의 수를 잘못 계산할 수 있습니다. 이러한 '정의되지 않은' 상태가 감지되면, EA는 지정된 초 수 만큼 기다린 후 환경을 다시 읽습니다.
*** 한 틱 내에서의 대기 기간 수는 EA 파라미터에 설정되어 있습니다. 정확한 환경 정보를 얻기 위한 모든 시도를 한 후, EA는 처리 중단하고 다음 틱을 기다립니다. 만약 이 시간까지 거래 환경이 업데이트되지 않았다면, EA는 새 틱에서 이러한 시도를 반복합니다.

전략을 검증하기 위해 기본 설정을 사용하여 EURUSD H1에서 1분 OHLC 모드로 2017.01.02부터 2018.03.29까지 테스트를 진행했습니다.

그 후, 거래 시작/종료 파라미터(시작 시간종료 시간)를 최적화했습니다:

최고의 결과는 다음 설정으로 얻어졌습니다:

  • 시작 시간 = 8;
  • 종료 시간 = 10.

목록
댓글 0