MetaTrader 5를 위한 Freeman EA: 효율적인 자동 거래 시스템

Mike 2018.10.26 03:27 37 0 0
첨부파일

아이디어 저자 - vgs

mq5 코드 저자 - barabashkakvn

주의: 헤지 계좌 전용입니다! 순차 거래는 금지됩니다!

손절매와 이익 실현은 동적으로 계산됩니다. iATR (평균 진폭) 지표의 값이 바 #0에서 곱해져 손절매이익 실현 비율을 산출합니다.

열려 있는 포지션이 여러 개일 경우, 잠금을 위한 주문이 없다면 포지션을 평균화할 가능성을 확인합니다:

  • BUY 포지션이 있을 때 현재 Ask 가격이 개장 가격보다 Distance 이상으로 떨어지면 추가 BUY 포지션을 엽니다.
  • SELL 포지션이 있을 때 현재 Bid 가격이 개장 가격보다 Distance 이상으로 상승하면 추가 SELL 포지션을 엽니다.

Distance는 4자리 통화쌍에 대한 표준 값으로 줄어듭니다.

열린 포지션의 볼륨은 고정되거나 동적으로 계산될 수 있습니다:

  • 포지션 볼륨이 고정된 경우 - Lots 파라미터가 0.0보다 크고, Risk가 0.0이면, Lots 파라미터가 포지션 볼륨(랏)을 설정합니다.
  • 포지션 볼륨이 동적인 경우 - Lots 파라미터가 0.0이고, Risk가 0.0보다 크면, Risk가 거래당 위험을 설정합니다.

트레일링은 손절매를 원금으로 이동시키고, 이후 수정 시 트레일링으로 작동합니다. Trailing Stop은 수정 후 가격과 손절매 간의 최소 거리이며, Trailing Step은 트레일링 스텝입니다. 두 파라미터 모두 4자리 통화쌍에 대한 표준 값으로 줄어듭니다.

바 제어(Bar Control) 파라미터는 EA 작동 방식을 정의합니다: 새로운 바가 발생할 때만 작동(“true”) 또는 바 내부에서 작동(“false”).

거래 신호 형성

거래 신호에 대한 일반 파라미터: Current Bar는 현재 바입니다.

추세 필터

추세 필터는 현재 바(Current Bar)의 iMA(이동 평균) 값을 이전 바(Current Bar - 1)의 값과 비교합니다.

가격과 지표 MA 간의 최소 거리. BUY를 열기 위해서는 MA가 가격 아래에 있어야 하며, SELL을 열기 위해서는 MA가 가격 위에 있어야 합니다.

RSI 필터

RSI 필터는 현재 바(Current Bar)의 iRSI(상대 강도 지수) 지표 값을 RSI level UPRSI level DOWN 수준과 비교합니다. SELL 포지션 신호를 열기 위해서는 RSI가 RSI level UP을 초과해야 하며, BUY 포지션 신호를 열기 위해서는 RSI level DOWN 아래에 있어야 합니다.

잠금

열린 포지션이 있고 같은 방향의 마지막 종료 가격이 손실로 종료된 경우, 이는 잠금을 위한 전제 조건입니다. 다음을 확인합니다:

  • BUY 포지션이 있을 때, 이전 BUY가 손실로 종료되었고 현재 Ask 가격이 이 BUY 포지션에서 Distance 이상으로 떨어져 있으면, 또 다른 BUY 포지션을 엽니다. 위치가 높거나 낮은지 여부는 중요하지 않으며, 거리는 절대값으로 취급됩니다.
  • SELL 포지션이 있을 때, 이전 SELL이 손실로 종료되었고 현재 Bid 가격이 이 SELL 포지션에서 Distance 이상으로 떨어져 있으면, 또 다른 SELL 포지션을 엽니다. 위치가 높거나 낮은지 여부는 중요하지 않습니다.

포지션 종료 순간 탐지는 OnTradeTransaction에서 수행됩니다.

EURUSD, M15:

freeman

목록
댓글 0