시스템트레이딩 게시글

Babi Ngepet - 메타트레이더 5를 위한 EA(자동매매)

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

전문가 상담 프로그램 파라미터 (입력값)

이번 EA는 사용자가 원하는 대로 행동을 조절할 수 있는 여러 외부 파라미터를 제공합니다.

일반 파라미터

파라미터 유형 설명
매직넘버 int EA 거래의 고유 식별자입니다.
초기 롯트 double 일련의 첫 거래에 대한 시작 롯트 크기입니다.
구매 허용 bool EA가 매수 거래를 열 수 있도록 허용하는 플래그입니다.
판매 허용 bool EA가 매도 거래를 열 수 있도록 허용하는 플래그입니다.
이익 실현 int 보류 중인 주문을 할 때 사용하는 고정 이익 실현 포인트입니다.
과거 바 찾기 int 초기 보류 중인 주문 배치를 위해 가장 높은 고점과 가장 낮은 저점을 찾기 위해 돌아보는 이전 바의 수입니다.
바 수 초기화 int 초기 보류 중인 주문이 삭제되고 재평가되는 바의 수입니다 (포지션이 열려 있지 않은 경우).

마틴게일 전략

파라미터 유형 설명
역마틴게일 bool 참이면, 이후 마틴게일 거래가 시리즈의 마지막 거래의 반대 방향으로 열립니다. 거짓일 경우, 같은 방향으로 열립니다.
롯트 배수 double 손실이 발생한 시리즈에서 다음 거래의 롯트 크기를 곱하는 배수입니다.
보호 이익 목표 double 모든 열린 거래를 종료할 총 유동 이익입니다.
마틴게일 거리가격 int 마틴게일 거래가 열리기 전에 가격이 마지막 거래의 개방가에 대해 얼마나 움직여야 하는 거리입니다.
시리즈 최대 거래 수 int 하나의 마틴게일 시리즈에서 허용되는 최대 거래 수입니다.

시간 전략

파라미터 유형 설명
월요일 허용... 금요일 허용 bool 특정 요일에 거래를 활성화하거나 비활성화하는 플래그입니다.
금지된 날짜 string 거래가 금지된 날짜의 목록입니다 (형식: YYYY.MM.DD).

핵심 기능 개요

OnInit() (초기화)

EA의 매직넘버, 마진 모드 및 편차를 설정합니다. 마틴게일 상태 변수를 초기값으로 재설정하여 새로 시작할 준비를 합니다.

OnDeinit() (비초기화)

EA가 중지되거나 제거될 때 메시지를 출력하는 간단한 정리 함수입니다.

IsTradingDateAllowed() 및 IsTradingDayAllowed() (거래 필터)

현재 날짜와 요일을 사용자 정의 입력값 (월요일 허용부터 금요일 허용 및 금지된 날짜)과 비교하여 거래가 허용되는지 확인합니다.

OpenTradeLogic(ENUM_ORDER_TYPE type, string tradeComment) (시장 실행)

새로운 시장 포지션 (매수 또는 매도)을 여는 것을 처리합니다.

  1. 브로커의 최소, 최대 및 스텝 크기에 대해 롯트 크기를 검증하고 정상화합니다.

  2. 충분한 마진이 있는지 확인합니다.

  3. 고정 이익 실현 또는 손절매 없이 거래를 실행합니다.

  4. 글로벌 마틴게일 상태 변수를 업데이트합니다.

CloseAllPositions()

현재 열린 포지션을 반복하여 이 EA가 연 포지션을 닫습니다.

PendingOrders(ENUM_ORDER_TYPE type, double price, double lotSize, string comment) (보류 중인 주문 배치)

매수 한도 또는 매도 한도 주문을 배치하는 함수입니다:

  1. 롯트 크기를 검증하고 충분한 마진을 체크합니다.

  2. 브로커의 최소 거리와 비교하여 진입 가격을 검증합니다.

  3. 보호 이익 실현을 기반으로 고정 이익 실현을 계산합니다.

  4. 거래 요청을 전송합니다.

UpdateHighLowAndOrders() (초기 진입 논리)

포지션이 열려 있지 않을 때 초기 진입 메커니즘입니다:

  1. 가장 높은 고점과 가장 낮은 저점을 찾기 위해 과거 바를 돌아봅니다.

  2. 가장 높은 고점과 가장 낮은 저점을 기준으로 가격 한도 설정합니다.

  3. EA의 매직넘버를 가진 보류 중인 매수 및 매도 주문이 이미 존재하는지 확인합니다.

  4. 최근의 가장 높은 고점 바로 위에 매도 한도 주문을, 가장 낮은 저점 바로 아래에 매수 한도 주문을 배치합니다.

OnTick() (주요 논리)

EA 실행 논리의 핵심입니다:

  1. 중복 계산을 방지하기 위해 타임 체크를 합니다.

  2. 거래가 허용되지 않는 경우 보류 중인 모든 주문을 삭제합니다.

  3. 유동 이익이 보호 이익 목표에 도달하면 모든 포지션을 닫고 마틴게일 상태 변수를 재설정합니다.

  4. 새로운 바가 형성되면 보류 중인 주문을 삭제하고 새로운 초기 주문을 배치합니다.

전략 요약

"Babi Ngepet" EA는 리스크가 크지만 잠재적으로 높은 보상을 제공하는 마틴게일 전략과 초기 진입 전략을 결합합니다:

  1. 초기 진입: EA는 최근 저점 아래에 매수 한도와 최근 고점 위에 매도 한도를 배치합니다.

  2. 거래 관리: 초기 거래가 활성화되고 포지션이 총 손실 상태에 이르면, 정의된 거리만큼 가격이 움직일 경우 더 큰 롯트 크기로 새로운 포지션을 엽니다.

  3. 종료 전략: 모든 거래의 유동 이익이 보호 이익 목표에 도달하면 모든 포지션을 닫고 EA를 새로 시작합니다.

경고: 마틴게일 전략은 높은 손실 위험이 있으며, 매번 손실 후 롯트 크기가 증가합니다.

연관 포스트

댓글 (0)