Iin_MA_Signal 지표를 기반으로 한 이 거래 시스템은 이전 거래 결과에 따라 향후 거래의 거래량을 조정하는 능력을 제공합니다. 거래 신호는 바가 닫힐 때 형성되며, 트렌드가 변화했을 때(지표의 색상 레이블로 표시됨) 발생합니다.
거래 포지션의 거래량을 관리하기 위한 EA 변수 블록이 추가되었습니다:
input uint BuyTotalMMTriger=5; // 손절매를 계산할 마지막 매수 거래 수 input uint BuyLossMMTriger=3; // 손실 매수 거래 수에 따라 MM을 줄입니다 input uint SellTotalMMTriger=5;// 손절매를 계산할 마지막 매도 거래 수 input uint SellLossMMTriger=3; // 손실 매도 거래 수에 따라 MM을 줄입니다 input double SmallMM_=0.01; // 손실 시 거래의 예치금 비율 input double MM=0.1 // 일반 거래 시의 예치금 비율 input MarginMode MMMode=LOT; // 로트 값 결정 방법
이와 같은 입력값을 설정하고 최근 5건의 거래 중 3건이 동일 방향에서 손실이 발생하면, EA는 동일한 방향으로 0.01 로트의 거래를 엽니다. 만약 최근 5건 중 손실 거래가 3건 미만이면 포지션의 거래량은 0.1로 설정됩니다.
이 EA는 Exp_Iin_MA_Signal EA의 개선된 버전입니다. EA 입력 블록이 코드에 추가되었고, 포지션 개설/종료 블록이 변경되었습니다:
//---- 거래 실행 //---- 매직 넘버로 롱 포지션 종료 BuyPositionClose_M(BUY_Close,Symbol(),Deviation_,BuyMagic); //---- 매직 넘버로 숏 포지션 종료 SellPositionClose_M(SELL_Close,Symbol(),Deviation_,SellMagic); double mm; //---- 매직 넘버로 롱 포지션 개설 if(BUY_Open) { mm=BuyTradeMMRecounterS(BuyMagic,BuyTotalMMTriger,BuyLossMMTriger,SmallMM_,MM); // 이전 거래 결과에 따라 롱 포지션 거래량 정의 BuyPositionOpen_M1(BUY_Open,Symbol(),UpSignalTime,mm,MMMode,Deviation_,StopLoss_,TakeProfit_,BuyMagic); } //---- 매직 넘버로 숏 포지션 개설 if(SELL_Open) { mm=SellTradeMMRecounterS(SellMagic,SellTotalMMTriger,SellLossMMTriger,SmallMM_,MM); // 이전 거래 결과에 따라 숏 포지션 거래량 정의 SellPositionOpen_M1(SELL_Open,Symbol(),DnSignalTime,mm,MMMode,Deviation_,StopLoss_,TakeProfit_,SellMagic); }
이 EA가 올바르게 작동하려면 컴파일된 Iin_MA_Signal.ex5 지표 파일이 <terminal_data_directory> MQL5\nIndicators 폴더에 있어야 합니다.
아래 테스트에서 사용된 기본 Expert Advisor의 입력 파라미터는 스톱이 없는 상태였습니다.

그림 1. 차트에서의 거래 예시
2017년 GBPJPY H1 테스트 결과:

그림 2. 테스트 결과 차트