시스템트레이딩 게시글

MetaTrader 5에서 활용하는 이동 평균 기반 EA

첨부파일
20610.zip (8.81 KB, 다운로드 2회)

아이디어 제공자: Vladimir Pastushak.

MQL5 코드 제공자: Vladimir Karputov.

이 EA는 이동 평균 지표를 기반으로 거래하며, 모든 준비 및 거래 기능이 CMoving이라는 별도의 파일 Moving.mqh에서 구현됩니다.


입력 값

  • 매직 넘버 - EA의 고유 식별자;
  • 로트 - 포지션 볼륨 (0 이상의 포지션 볼륨 또는 0 이상의 리스크 크기 지정 가능);
  • 리스크 - 거래당 자유 마진의 퍼센트로서의 리스크 (0 이상의 포지션 볼륨 또는 0 이상의 리스크 크기 지정 가능);
  • MA: 기간 - 이동 평균 지표: 타임프레임;
  • MA: 평균 기간 - 이동 평균 지표: 평균 기간;
  • MA: 수평 이동 - 이동 평균 지표: 수평 이동;
  • MA: 스무딩 타입 - 이동 평균 지표: 평균 방법;
  • MA: 가격 타입 - 이동 평균 지표: 지표가 계산되는 가격의 타입;
  • 테이크 프로핏 - 한 포지션이 열려 있을 때의 테이크 프로핏;
  • 포지션 시리즈의 로트 배수 - 포지션 시리즈의 볼륨을 증가시키기 위한 설정;
  • 이동 평균과의 거리 - 이동 평균 지표와의 거리;
  • 일반 이익이 있는 경우의 추가 인덴트 - 일반 이익이 있을 경우 인덴트를 추가하는 옵션.

이 EA는 스윙 원칙을 사용하며 로트를 증가시킬 수 있는 가능성이 있습니다. 작동을 위한 간단한 전략은 다음과 같습니다:

  • 가격이 설정된 이동 평균과의 거리 이상으로 이동 평균 지표 위에 있을 경우, BUY 포지션을 열어야 합니다;
  • 가격이 설정된 이동 평균과의 거리 이상으로 이동 평균 지표 아래로 내려가면, 같은 로트로 SELL 포지션을 열어야 합니다;
  • 가격이 BUY 포지션의 최고가에서 설정된 이동 평균과의 거리 이상으로 상승하면, 다음 BUY 포지션을 열어야 합니다;
  • 가격이 BUY 포지션의 최저가에서 설정된 이동 평균과의 거리 이상으로 하락하면, 다음 SELL 포지션을 열어야 합니다;


CMoving 클래스

설정 매개변수
초기화

주요 초기화 - 다음 매개변수가 설정됩니다:

  • 심볼 - EA가 작동할 심볼의 이름
  • 매직 - EA의 고유 식별자
  • 슬리피지 - 슬리피지.
GetFlag
초기화 플래그의 상태를 반환합니다. 기본 EA에서 내부 m_init 변수를 확인할 때 보조 함수로 사용됩니다.
LotsOrRisk
포지션 로트 계산 유형을 정의합니다: 수동으로 (로트 매개변수가 0 이상) 또는 거래당 자유 마진의 퍼센트로 (리스크 매개변수가 0 이상).
CreateMA
이동 평균 지표를 생성합니다.
TakeProfit
테이크 프로핏 매개변수를 정의합니다.
Multiplier
로트 증가 매개변수를 정의합니다.
DistanceMA
이동 평균 지표에서의 간격을 정의합니다.
ProfitPlus
일반 이익이 있을 때의 추가 인덴트를 정의합니다.
주요 기능
Processing
모든 계산이 수행되는 주요 기능입니다.
보호 접근 지정자가 있는 클래스 기능
RefreshRates
심볼에 대한 시세를 업데이트합니다.
CheckVolumeValue
입력된 포지션 볼륨의 정확성을 확인합니다 (수동으로 포지션 볼륨을 정의할 때 사용됨).
IsFillingTypeAllowed
주문 체결 모드를 확인합니다.
iMAGet
지수 index가 있는 바에서 이동 평균 지표 값을 가져옵니다.
CalculateAllPositions

호출 시 포지션에 대한 정보를 가져옵니다:

  • count_buys - BUY 포지션 수;
  • price_highest_buy - 가장 높은 BUY 포지션 가격;
  • price_lowest_buy - 가장 낮은 BUY 포지션 가격;
  • lot_highest_buy - 가장 높은 BUY 포지션의 볼륨;
  • lot_lowest_buy - 가장 낮은 BUY 포지션의 볼륨;
  • total_lots_buy - BUY 포지션의 총 볼륨;
  • count_sells - SELL 포지션 수;
  • price_lowest_sell - 가장 낮은 SELL 포지션 가격;
  • price_highest_sell - 가장 높은 SELL 포지션 가격;
  • lot_lowest_sell - 가장 낮은 SELL 포지션의 볼륨;
  • lot_highest_sell - 가장 높은 SELL 포지션의 볼륨;
  • total_lots_sell - SELL 포지션의 총 볼륨.
Prices
설정된 이동 평균과의 거리를 고려하여 BUY 및 SELL 포지션의 기준 가격을 가져옵니다.
LotCheck
포지션 볼륨을 확인하고 정규화합니다 (수동으로 포지션 크기를 정의할 때 사용됨).
OpenBuy
BUY 포지션을 엽니다.
OpenSell
SELL 포지션을 엽니다.
PrintResult
포지션을 열기 위한 거래 작업의 결과를 출력합니다.
SetTakeProfit
포지션의 테이크 프로핏 수준을 설정하거나 모든 테이크 프로핏 및 손절매 수준을 제거합니다 (여기서 delete_take_profit 매개변수가 "true"일 경우).
CompareDoubles
두 실수를 비교하여 같음을 확인합니다.
AwerageTakeProfit
특정 유형 pos_type의 포지션에 대한 단일 테이크 프로핏 수준을 계산하고 설정합니다.

GBPUSD, H1, "실제 틱 기반의 모든 틱에 대하여."

VR---MUVING

연관 포스트

댓글 (0)