진짜 저자: 블라디미르 클리스토프
가장 간단한 EA로, Fractal_WeightOscillator 가중 오실레이터를 기반으로 합니다. 오실레이터의 과매도 레벨을 상향 돌파할 때 매수하고, 과매도 레벨을 하향 돌파할 때 매도하는 방식입니다. 신호는 바가 닫히는 시점에서 형성됩니다.
EA에 포함된 Fractal_WeightOscillator_HTF 지표는 전략 테스터에서 트렌드를 시각적으로 더 편리하게 보기 위한 것이며, 다른 운영 모드에서는 비활성화됩니다.
Fractal_WeightOscillator.ex5 및 Fractal_WeightOscillator_HTF.ex5 파일을 <terminal_data_folder>\MQL5\Indicators에 배치하세요.
컴파일 후, Exp_Fractal_WeightOscillator.ex5 전문가 파일은 Fractal_WeightOscillator.ex5 및 Fractal_WeightOscillator_HTF.ex5 지표를 리소스, 로 포함하고 있기 때문에, 컴파일된 EA가 작동하는 데에 해당 지표가 터미널 폴더에 존재할 필요가 없습니다! 이를 위해 EA 코드에 해당 지표를 전문가의 실행 파일에 포함시키는 코드가 추가되었습니다.
지표 실행 파일은 전역 범위에서 리소스로 추가되었습니다.
#resource "\Indicators\Fractal_WeightOscillator.ex5"
#resource "\Indicators\Fractal_WeightOscillator_HTF.ex5"
지표로 사용되는 문자열 경로를 OnInit() 함수 블록 내에서 변경했습니다.
InpInd_Handle=iCustom(Symbol(),InpInd_Timeframe,"::Indicators\Fractal_WeightOscillator",
e_period,normal_speed,RSIWeight,RSIPrice,MFIWeight,MFIPrice,MFIVolumeType,
WPRWeight,DeMarkerWeight,bMA_Method,bLength,bPhase,HighLevel,LowLevel);
if(InpInd_Handle==INVALID_HANDLE)
{
Print(" Fractal_WeightOscillator 지표 핸들 가져오기에 실패했습니다");
return(INIT_FAILED);
}
//---- 전략 테스터에서 시각화를 위한 Fractal_WeightOscillator_HTF 지표 핸들 얻기
if(MQLInfoInteger(MQL_VISUAL_MODE))
{
//---- Fractal_WeightOscillator_HTF 지표 핸들 얻기
int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\Fractal_WeightOscillator_HTF",InpInd_Timeframe,
e_period,normal_speed,RSIWeight,RSIPrice,MFIWeight,MFIPrice,MFIVolumeType,
WPRWeight,DeMarkerWeight,bMA_Method,bLength,bPhase,HighLevel,LowLevel);
if(Ind_Handle==INVALID_HANDLE)
{
Print(" Fractal_WeightOscillator_HTF 지표 핸들 가져오기에 실패했습니다");
return(INIT_FAILED);
}
}
따라서, 전문가의 컴파일된 실행 파일은 지표 없이도 다른 거래 터미널에서 사용할 수 있습니다.
TradeAlgorithms.mqh 라이브러리 파일은 비제로 스프레드를 제공하는 브로커와 함께 포지션 오픈 시 스톱 로스 및 테이크 프로핏 설정 옵션을 사용할 수 있게 해줍니다. 더 많은 라이브러리 변형은 다음 링크에서 다운로드할 수 있습니다: 트레이드 알고리즘.
아래에 표시된 테스트에서 기본 EA의 입력 매개변수가 사용되었습니다. 테스트 중 스톱 로스 및 테이크 프로핏은 사용되지 않았습니다.

그림 1. 차트에서의 거래 사례
2015년 GBPUSD H6의 테스트 결과:

그림 2. 테스트 결과 차트