Directional Movement DMI with Cross Alerts
- 지표
- 버전: 1.0
Directional Movement DMI with Cross Alerts는 MetaTrader 5용 TV 호환 방향성 지수(DMI)입니다. TradingView에 내장된 "Directional Movement Index"와 같은 방식으로 ADX, +DI, -DI를 계산하며, 같은 기본 색상으로 별도 창에 그립니다: ADX(#F50057), +DI(#2962FF), -DI(#FF6D00).
DMI는 최근 움직임이 얼마나 강했는지(ADX), 어느 쪽이 더 많이 움직였는지(+DI 또는 -DI)를 나타냅니다. 차트 분석을 돕는 도구이며 매수·매도 신호가 아니고, 가격이 어디로 갈지 예측하지 않습니다.
계산 방법
- up = high - 직전 high, down = 직전 low - low. up > down 이고 up > 0 이면 +DM = up, 그렇지 않으면 0. down > up 이고 down > 0 이면 -DM = down, 그렇지 않으면 0.
- TR = 진정한 범위(true range): high - low, |high - 직전 close|, |low - 직전 close| 중 가장 큰 값.
- +DI = 100 x RMA(+DM) / RMA(TR), -DI = 100 x RMA(-DM) / RMA(TR), 기간은 DI Length(기본값 14).
- ADX = 100 x RMA(|+DI - -DI| / (+DI + -DI)), 기간은 ADX Smoothing(기본값 14).
- RMA는 Wilder 평활로, TradingView의 ta.rma()와 같습니다: 첫 값은 단순 평균이고, 그 이후는 alpha = 1 / length.
- 값은 Pine Script와 같은 작은 허용 오차(1e-10)로 비교하므로, 두 선이 거의 같을 때도 TradingView와 같은 봉에서 교차를 찾습니다.
확인한 방법
- TradingView 자체의 가격 봉을 MetaTrader에 불러와 TradingView 내장 DMI와 출력을 비교했습니다. ADX, +DI, -DI는 부동소수점 반올림 수준까지 일치했습니다(차이 약 1e-12).
- 브로커의 차트에서는 가격이 다른 데이터 피드에서 오기 때문에 값이 조금 다릅니다.
- Wilder 평활은 불러온 가장 오래된 봉에서 시작합니다. 과거 데이터가 TradingView와 다른 봉에서 시작하면 차트의 가장 오래된 부분이 약간 다를 수 있으며, 계산되는 봉이 늘어날수록 그 영향은 사라져 갑니다.
표시
- 별도 창에 선 3개. 색상과 선 굵기(1~5)를 바꿀 수 있습니다.
- 선택 사항인 ADX 기준선 점선(기본값 25, 회색). TradingView 내장 DMI에는 이 선이 없으며, 추가 기능입니다. 25는 흔히 쓰이는 참고 수준일 뿐 규칙이 아닙니다.
- 값은 TradingView와 같이 소수점 4자리로 표시됩니다.
최신 봉 (리페인트)
- 아직 형성 중인 봉은 TradingView와 똑같이 틱마다 다시 계산됩니다. 봉이 마감될 때까지 값이 바뀔 수 있습니다.
- 봉이 마감되면 그 값은 바뀌지 않습니다.
알림 (기본값 꺼짐)
- +DI / -DI 교차: 방금 마감된 봉에서 +DI가 -DI를 위로 또는 아래로 교차했을 때.
- ADX 기준값: 방금 마감된 봉에서 ADX가 기준값을 위로 교차했을 때(위로 교차만).
- 마감된 봉마다 한 번 확인합니다. 지표를 불러오기 전에 마감된 봉은 알림을 내지 않으므로, 지표를 붙이거나 MT5를 재시작해도 지난 알림이 나오지 않습니다.
- 메시지 예: "DMI TV EURUSD H1: +DI crossed above -DI (+DI 27.41 / -DI 19.85)".
- 팝업, 소리, 푸시 알림을 함께 쓸 수 있습니다. 푸시는 터미널 옵션에 MetaQuotes ID가 필요합니다. 알림 문구는 영어 또는 일본어입니다.
EA 및 iCUSTOM 사용자용
- 버퍼 0 = ADX, 버퍼 1 = +DI, 버퍼 2 = -DI. 값이 없는 봉은 EMPTY_VALUE를 반환합니다. 세 값은 모두 데이터 창에도 나타납니다.
- EA나 다른 지표가 iCustom으로 불러오면 알림을 내지 않으며 버퍼만 계산합니다.
사용 전에 읽어 주세요
- ADX가 나타나려면 DI Length + ADX Smoothing 개의 과거 봉이 필요합니다(기본값에서 28개). +DI와 -DI는 더 일찍 나타납니다.
- 불러온 직후, 지표가 차트 위에 있는지 확인하는 사이 지표 목록의 짧은 이름이 잠깐 "probe#..."로 보일 수 있습니다. 정상입니다.
- 전략 테스터에서는 알림을 내지 않습니다.
- DLL, 외부 파일, 인터넷 연결을 사용하지 않습니다.
- 매매를 하지 않으며, 어떠한 매매 결과도 약속하지 않습니다.
설정
DMI: ADX Smoothing (14, 1-1000), DI Length (14, 1-1000)
Style: ADX line color (#F50057), +DI line color (#2962FF), -DI line color (#FF6D00), Line width (1, 1-5), Show ADX threshold line (true), ADX threshold (25, 0-100), Threshold line color (#787B86)
Alerts: Alert: +DI / -DI cross (false), Alert: ADX crosses above the threshold (false), Alert by pop-up (true), Alert by sound (false), Alert by push notification (false), Language (Auto = 터미널 언어, English 또는 Japanese)
설정값이 범위를 벗어나면 지표가 로드되지 않으며 그 이유를 Experts 로그에 기록합니다.
지원
설치, 설정, 버그에 관한 문의는 MQL5 메시지로 환영합니다. 시장 방향이나 개별 거래에 관한 질문은 지원 범위가 아닙니다.
이 지표는 무료 TV 스타일 도구 시리즈의 하나입니다. MT4 버전도 별도 제품으로 제공됩니다. 같은 제작자의 다른 도구는 제 판매자 프로필에 있습니다.
TradingView는 TradingView, Inc.의 상표입니다. 이 제품은 TradingView, Inc.와 제휴 관계가 없으며 TradingView, Inc.의 후원이나 보증을 받지 않았습니다.
