Drawdown Limit Guard
- 유틸리티
- 버전: 1.0
- 활성화: 10
Drawdown Limit Guard는 손실이 설정한 금액에 도달했는지를 감시하고, 도달한 시점에 포지션을 청산하는 도구입니다.
매매 판단은 하지 않습니다. 일간 손실과 누적 손실을 감시하고, 상한에 가까워지면 경고를 내고, 상한에 도달하면 청산합니다. 동작은 이것뿐입니다.
일간 손실 상한과 누적 손실 상한을 설정합니다. 둘 중 하나만 써도 되고 둘 다 써도 됩니다. 상한에 도달하면 그 이후에 생긴 포지션을 청산하고 대기 주문을 삭제합니다. 상한에 도달한 시점에 이미 보유하고 있던 포지션은, 해당 옵션을 켠 경우에만 청산합니다.
■ 먼저 말씀드릴 것
이 도구는 새 주문이 나가는 것 자체를 막을 수 없습니다. MetaTrader 5에는 신규 거래를 정지시키는 기능이 없고, MQL5 Market에서는 DLL 사용이 금지되어 있기 때문입니다.
그래서 상한에 도달한 뒤에 주문이 나간 경우에는, 체결된 직후에 청산하는 방식을 씁니다(동작 확인에서 약 0.25초). 그 주문에는 스프레드와, 체결부터 청산까지의 가격 변동만큼의 손실이 남습니다.
상품 설명으로서는 쓰지 않는 편이 유리한 내용이지만, 오해가 생기는 쪽이 더 문제이므로 먼저 적어 둡니다.
■ 상정하고 있는 사용 방식
・스스로 정한 규칙을 감시한다. 예를 들어 「하루 손실은 잔고의 5%까지」와 같은 것.
・자금 지원 프로그램에서 정해 놓은 일간 및 누적 손실 금액을 감시한다.
이 도구는 입력된 수치를 그대로 표시하고, 그 수치에 따라 동작합니다. 특정 규칙을 충족할 수 있는지는 설정 내용, 거래 내용, 그리고 이용하시는 브로커에 따라 정해지며, 이 도구가 좌우할 수 있는 범위가 아닙니다.
■ 감시하는 내용
일간 손실
거래일 시작 시점의 잔고(또는 순자산)에서 얼마나 내려왔는지입니다.
누적 손실
측정의 기준점을 두 가지 중에서 고를 수 있습니다.
・초기 자금을 기준점으로 삼는다
・계좌의 하이워터마크(그때까지 도달했던 최대값)를 기준점으로 삼는다
하이워터마크를 고른 경우, 기준점은 최대값이 갱신될 때마다 위로만 움직이고 아래로는 돌아오지 않습니다. 감시를 재개한 뒤에도 기준점은 그 위치를 유지합니다.
계산 기준
잔고와 순자산 중에서 선택할 수 있습니다. 따르고 계신 규칙에 맞춰 설정해 주십시오.
일간 초기화
초기화할 시각을 시와 분으로 지정합니다(서버 시간). 달력상의 날짜에 따라 처리하므로, 거래가 없었던 날에도 초기화됩니다.
■ 동작은 2단계입니다
상한의 80%에서 경고(초기값)
화면에 표시를 내고 알림을 울립니다. 이 단계에서는 거래에 영향을 주지 않습니다.
상한의 100%에서 정지
패널 표시가 「Stopped」로 바뀝니다. 이후 감시를 재개할 때까지, 생긴 포지션은 청산하고 생긴 대기 주문은 삭제합니다.
상한에 도달한 시점에 이미 보유하고 있던 포지션은, 해당 옵션을 켠 경우에만 청산됩니다. 초기값은 꺼짐입니다. 직접 선택하지 않는 한 보유 중인 포지션에는 영향이 없습니다.
한 번 정지한 뒤에는 손으로 재개할 때까지 정지 상태가 이어집니다.
■ 차트 표시
패널에는 현재의 일간 손실과 누적 손실, 각 상한까지의 남은 금액과 남은 비율, 일간 초기화까지의 시간, 최대값, 현재 상태(Monitoring/Warning/Stopped)를 표시합니다.
알림은 팝업, 소리, 스마트폰 푸시 알림에 대응하며, 각각 따로 켜고 끌 수 있습니다.
매직 넘버로 대상을 좁힐 수 있어, 특정 EA의 포지션만 대상으로 삼을 수도 있고 계좌의 모든 포지션을 대상으로 삼을 수도 있습니다.
단말을 다시 시작해도 상태는 복원됩니다. 재시작 때문에 그날의 집계가 처음부터 다시 시작되는 일은 없습니다.
■ 이 도구가 하지 않는 일
・거래를 시작하지 않습니다. 진입 판단도 하지 않고, 매매 신호도 내지 않습니다.
・투자 자문은 하지 않습니다. 시세 예측도 하지 않습니다.
・주문이 나가는 것 자체를 막을 수 없습니다. 체결 직후에 청산하므로, 그 주문에는 스프레드와 가격 변동만큼의 손실이 남습니다(앞서 설명).
・단말의 Algo Trading이 켜져 있어야 합니다. 청산에는 Algo Trading 권한이 필요하므로, 꺼진 상태에서는 아무것도 청산할 수 없습니다. 그런 경우에는 화면에 표시하여 알려 드립니다.
・계좌가 상한을 넘어선 상태 그대로일 때는 「Resume monitoring」을 눌러도 해제되지 않습니다. 다음 판정에서 곧바로 다시 정지합니다. 설정을 변경하시거나 일간 초기화를 기다려 주십시오.
・하나의 단말에서 하나의 차트에서만 동작합니다. 두 번째 차트에 설정하면 실행을 거부합니다. 같은 포지션이 두 번 청산되는 것을 피하기 위해서입니다.
・MetaTrader 5가 비정상 종료된 경우, 마지막 상태가 저장되지 않을 수 있습니다. 단말이 종료 시점에 상태를 기록하는 사양이기 때문입니다.
・입금 또는 출금을 하신 경우에는 「Initial balance for total loss」 값을 손으로 갱신해 주십시오.
■ 외부 의존
DLL, 외부 사이트, 외부 API, 외부 서버를 모두 사용하지 않습니다. 전부 MetaTrader 5 안에서 완결됩니다.
■ 전략 테스터에서의 동작 확인
무료 데모는 전략 테스터에서만 동작합니다. 테스터에서는 EA가 하나만 동작하고 이 도구 자체는 거래를 하지 않으므로, 청산 대상이 되는 포지션이 존재하지 않습니다. 다만 손실 감시, 패널 표시, 2단계 동작은 확인하실 수 있습니다.
일간 상한의 종류를 「Money」로 하고 작은 값(예를 들어 10)을 입력한 뒤, 손실이 발생하는 테스트를 실행해 보십시오. 「Warning」에서 「Stopped」로 바뀌는 모습을 확인할 수 있습니다. 비주얼 모드로 실행하면 손실이 커짐에 따라 표시가 바뀌어 가는 과정을 따라갈 수 있습니다.
전략 테스터에는 손으로 주문을 낼 방법이 없습니다. 따라서 청산 그 자체는 테스터에서 재현할 수 없으며, 실계좌 또는 데모 계좌에서의 동작이 됩니다.
■ 입력 파라미터(모두 초기값 있음)
InpBasis 계산 기준(Balance / Equity). 초기값: Equity
InpInitialBalance 누적 손실의 기준점이 되는 초기 자금. 0이면 첫 실행 시의 잔고를 사용. 초기값: 0
InpDailyLimitType 일간 상한의 종류(Percent / Money). 초기값: Percent
InpDailyLimitValue 일간 손실 상한. 0이면 일간 상한을 사용하지 않음. 초기값: 5.0
InpTotalLimitType 누적 상한의 종류(Percent / Money). 초기값: Percent
InpTotalLimitValue 누적 손실 상한. 0이면 누적 상한을 사용하지 않음. 초기값: 10.0
InpTotalAnchor 누적 손실의 기준점(초기 자금 / 하이워터마크). 초기값: Initial balance
InpWarnPercent 경고를 내는 기준(상한에 대한 비율). 초기값: 80
InpResetHour 일간 초기화의 시(서버 시간, 0-23). 초기값: 0
InpResetMinute 일간 초기화의 분(서버 시간, 0-59). 초기값: 0
InpLockNewTrades 상한 도달 후에 생긴 포지션을 청산하고 대기 주문을 삭제. 초기값: 켜짐
InpClosePositions 상한 도달 시점에 보유하고 있던 포지션을 청산. 초기값: 꺼짐
InpAlertPopup 팝업으로 알림. 초기값: 켜짐
InpAlertPush 스마트폰으로 푸시 알림을 전송. 초기값: 꺼짐
InpAlertSound 알림 시 소리를 재생. 초기값: 켜짐
InpPanelCorner 차트 위 패널의 표시 위치. 초기값: 왼쪽 위
InpMagicFilter 이 매직 넘버의 포지션만 청산. 0이면 전체. 초기값: 0
■ 유의사항
외환 증거금 거래 및 CFD 거래에는 손실이 발생할 위험이 있습니다. 본 도구는 손실을 감시하고 설정된 상한에서 포지션을 청산하기 위한 보조적인 도구입니다. 매매에 관한 조언이나 신호를 제공하지 않으며, 거래 결과에 대해 어떠한 주장도 하지 않습니다. 거래의 판단 및 그 결과는 모두 고객 본인에게 귀속됩니다.
