안녕하세요, 트레이더 여러분! 오늘은 MetaTrader 5에서 사용할 수 있는 Exp_2pbIdealMA_ReOpen EA에 대해 알아보겠습니다. 이 EA는 이동평균의 교차를 기반으로 포지션 스케일링을 통해 트렌드에 맞춰 거래를 진행합니다.
신호는 바가 닫힐 때 2pbIdeal1MA의 빠른 이동평균과 2pbIdeal3MA의 느린 이동평균이 교차할 때 형성됩니다. 이후, EA 입력 파라미터에서 설정한 임계값을 초과하는 마지막 거래의 이익 포인트에 따라 열린 포지션의 볼륨을 조절합니다. 빠른 이동평균의 돌파는 매수 신호로, 하락은 매도 신호로 작용합니다.
이와 관련된 포지션 스케일링 정보는 거래 코멘트에 스케일 수 / 마지막 거래 가격 / 마지막 거래 볼륨 형식으로 저장됩니다.
먼저, 2pbIdeal1MA.ex5와 2pbIdeal3MA.ex5 파일을 <terminal_data_folder>\MQL5\Indicators 폴더에 넣어주세요.
컴파일 후, Exp_2pbIdealMA_ReOpen.ex5 EA 파일에는 2pbIdeal1MA.ex5와 2pbIdeal3MA.ex5 지표가 리소스로 포함되어 있어, 이 지표들이 터미널 폴더에 없어도 EA가 정상적으로 작동합니다! 이를 위해 EA 코드에 해당 지표들을 포함하는 코드가 추가되었습니다.
지표 실행 파일은 전역 범위에서 리소스로 추가되었습니다.
#resource "\\Indicators\\2pbIdeal1MA.ex5"
#resource "\\Indicators\\2pbIdeal3MA.ex5"
이후, OnInit() 함수 블록에서 리소스로 사용된 지표의 경로를 변경했습니다.
InpInd1_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\\2pbIdeal1MA.ex5",Period1,Period2,0);
if(InpInd1_Handle==INVALID_HANDLE)
{
Print("2pbIdeal1MA 지표 핸들 가져오기 실패! 오류 코드=",GetLastError(),".");
return(INIT_FAILED);
}
//---- 2pbIdeal3MA 지표 핸들 가져오기
InpInd2_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\\2pbIdeal3MA.ex5",PeriodX1,PeriodX2,PeriodY1,PeriodY2,PeriodZ1,PeriodZ2,0);
if(InpInd2_Handle==INVALID_HANDLE)
{
Print("2pbIdeal3MA 지표 핸들 가져오기 실패! 오류 코드=",GetLastError(),".");
return(INIT_FAILED);
}
이렇게 해서, EA의 컴파일된 실행 파일은 다른 거래 터미널에서도 지표 없이 독립적으로 사용할 수 있습니다.
아래의 테스트에서는 기본 Expert Advisor의 입력 파라미터를 사용했습니다. 테스트 동안 Stop Loss와 Take Profit은 사용되지 않았습니다.

Fig. 1. 차트에서의 거래 예시
2015년 GBPJPY H4에 대한 테스트 결과입니다:

Fig. 2. 테스트 결과 차트
댓글 0