전문가 상담 프로그램 파라미터 (입력값)
이번 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) (시장 실행)
새로운 시장 포지션 (매수 또는 매도)을 여는 것을 처리합니다.
브로커의 최소, 최대 및 스텝 크기에 대해 롯트 크기를 검증하고 정상화합니다.
충분한 마진이 있는지 확인합니다.
고정 이익 실현 또는 손절매 없이 거래를 실행합니다.
글로벌 마틴게일 상태 변수를 업데이트합니다.
CloseAllPositions()
현재 열린 포지션을 반복하여 이 EA가 연 포지션을 닫습니다.
PendingOrders(ENUM_ORDER_TYPE type, double price, double lotSize, string comment) (보류 중인 주문 배치)
매수 한도 또는 매도 한도 주문을 배치하는 함수입니다:
롯트 크기를 검증하고 충분한 마진을 체크합니다.
브로커의 최소 거리와 비교하여 진입 가격을 검증합니다.
보호 이익 실현을 기반으로 고정 이익 실현을 계산합니다.
거래 요청을 전송합니다.
UpdateHighLowAndOrders() (초기 진입 논리)
포지션이 열려 있지 않을 때 초기 진입 메커니즘입니다:
가장 높은 고점과 가장 낮은 저점을 찾기 위해 과거 바를 돌아봅니다.
가장 높은 고점과 가장 낮은 저점을 기준으로 가격 한도 설정합니다.
EA의 매직넘버를 가진 보류 중인 매수 및 매도 주문이 이미 존재하는지 확인합니다.
최근의 가장 높은 고점 바로 위에 매도 한도 주문을, 가장 낮은 저점 바로 아래에 매수 한도 주문을 배치합니다.
OnTick() (주요 논리)
EA 실행 논리의 핵심입니다:
중복 계산을 방지하기 위해 타임 체크를 합니다.
거래가 허용되지 않는 경우 보류 중인 모든 주문을 삭제합니다.
유동 이익이 보호 이익 목표에 도달하면 모든 포지션을 닫고 마틴게일 상태 변수를 재설정합니다.
새로운 바가 형성되면 보류 중인 주문을 삭제하고 새로운 초기 주문을 배치합니다.
전략 요약
"Babi Ngepet" EA는 리스크가 크지만 잠재적으로 높은 보상을 제공하는 마틴게일 전략과 초기 진입 전략을 결합합니다:
초기 진입: EA는 최근 저점 아래에 매수 한도와 최근 고점 위에 매도 한도를 배치합니다.
거래 관리: 초기 거래가 활성화되고 포지션이 총 손실 상태에 이르면, 정의된 거리만큼 가격이 움직일 경우 더 큰 롯트 크기로 새로운 포지션을 엽니다.
종료 전략: 모든 거래의 유동 이익이 보호 이익 목표에 도달하면 모든 포지션을 닫고 EA를 새로 시작합니다.
경고: 마틴게일 전략은 높은 손실 위험이 있으며, 매번 손실 후 롯트 크기가 증가합니다.