Currency Strength Oscillator MT5
- 지표
-
Narayanan Mohanan Mohanan Krishnan
MT5/MQL5용 Expert Advisor, 사용자 정의 지표 및 백테스트·검증 도구를 개발합니다. 저는 깔끔하고 문서화가 잘 되어 있으며 리페인트가 없는(No Repaint) 코드에 집중합니다. 확정된 캔들 기반 로직, 검증된 버퍼(Buffer), 올바른 핸들(Handle) 및 메모리 관리와 같은 엔지니어링 원칙이 신뢰할 수 있는 도구와 불안정한 도구를 구분한다고 생각합니다. - 버전: 1.0
- 활성화: 10
이 지표는 8개 주요 통화의 상대 강도를 28개 주요 통화쌍으로부터 분해하여 시계열로 표시합니다. 패널은 현재 상황을 알려줍니다. 이 지표는 그 상황에 이르기까지의 과정을 보여줍니다. 어떤 통화가 꾸준히 강해져 왔는지, 어떤 통화가 이미 방향을 바꾸었는지, 그리고 순위가 어디에서 뒤바뀌었는지를 알 수 있습니다.
8개 계열 모두 문서화된 지표 버퍼로 제공되므로, 전문가 어드바이저(EA)에서 통화 강도를 직접 읽을 수 있습니다.
분해 원리
8개 통화 각각은 28개 통화쌍 중 7개에 등장합니다. 해당 통화의 강도는 이 7개 값의 평균이며, 그 통화가 견적 통화인 경우에는 부호를 반전시킵니다. AUDJPY의 하락은 엔화 약세가 아니라 엔화 강세를 의미합니다.
각 통화쌍은 정확히 두 통화에 영향을 주는데, 기준 통화에는 양(+)으로, 견적 통화에는 음(−)으로 기여합니다. 따라서 28개 통화쌍 전체에서 이러한 기여는 서로 상쇄되어 8개 강도 값의 합은 0이 됩니다. 지표는 이를 내부 검증에 사용합니다. 값이 균형을 이루지 않는다면 분해가 잘못된 것이기 때문입니다. 이는 또한 측정값이 절대적인 것이 아니라 상대적임을 뜻합니다. 통화는 그 자체로 강한 것이 아니라, 이 집합의 나머지 통화에 대해서만 강한 것입니다.
계산이 차트가 아니라 통화를 읽기 때문에, 지표를 어떤 심볼에 적용하든 동일한 8개 라인이 표시됩니다.
시계열이 보여주고 스냅숏은 보여줄 수 없는 것
순위는 오늘의 서열을 알려줍니다. 시계열은 그 서열이 얼마나 오래 유지되었는지, 선두가 여전히 오르고 있는지 아니면 이미 돌아섰는지, 그리고 두 통화가 언제 자리를 맞바꾸었는지를 알려줍니다. 교차 지점이 바로 순위가 뒤바뀐 곳입니다.
개별 통화는 표시를 끌 수 있으며, 8개를 모두 보는 것보다 그편이 더 유용한 경우가 많습니다. 해당 차트 심볼을 구성하는 두 통화만 표시하면 어느 쪽이 시세를 이끌고 있는지 명확하게 읽을 수 있습니다.
강도를 측정하는 두 가지 방식
변화율은 조회 기간 동안의 백분율 변동입니다. 상대값이므로 통화쌍 간에 직접 비교할 수 있습니다.
평균으로부터의 표준화 거리는 같은 변동을 표준편차로 나타내며, 변동성이 크게 다른 상품들을 하나의 척도에 담을 수 있게 합니다.
조회 기간이 길 때 두 방식은 다르게 동작합니다. 조회 기간이 200일 때 변화율은 지속적인 편향을 축적하여, 여러 통화가 창 전체에 걸쳐 0을 한 번도 통과하지 않은 채 위쪽 또는 아래쪽에 머무릅니다. 반면 표준화된 척도는 중앙을 유지합니다. 어느 쪽도 틀린 것은 아닙니다. 변화율은 실제로 일어난 움직임을 나타내고, 표준화 척도는 그 움직임이 얼마나 이례적이었는지를 나타냅니다. 조회 기간이 짧으면 차이는 크지 않습니다.
페어 모드
페어 모드는 하나의 라인만 표시합니다. 한 통화의 강도에서 다른 통화의 강도를 뺀 값입니다. 동일한 분해를 하나의 관계로 좁힌 것이며, 어떤 차트에서도 동작합니다. EURAUD를 거래하면서 CHF 빼기 JPY를 관찰할 수 있습니다.
이는 CHFJPY의 가격과는 다릅니다. 가격은 단일 시장의 호가이지만, 여기서는 각각 전체 행렬에 대해 측정된 두 통화의 차이입니다.
주요 통화를 넘어서
이 지표는 외환에 국한되지 않고 어떤 차트에서도 동작합니다. 금이나 지수 차트에서도 라인은 여전히 통화를 나타내며, 많은 경우 그것이 바로 필요한 정보입니다. 달러로 호가되는 상품은 달러 자체가 옆에 보일 때 읽기가 더 쉽습니다. 조회 기간을 달리한 여러 인스턴스를 적용하여 빠른 관점과 느린 관점을 비교할 수도 있습니다.
여기서 무엇을 주장하고 무엇을 주장하지 않는지 유의하시기 바랍니다. 금은 28개 통화쌍 행렬에 포함되지 않으며 자체적인 강도 값을 갖지 않습니다. 차트가 보여주는 것은 외환 행렬에서 측정된 달러를 금 가격과 나란히 표시한 것입니다. 정확한 해석은 "금이 오르는 동안 달러가 약해졌다"이며, "금이 강했다"가 아닙니다.
전문가 어드바이저에서 읽기
10개의 버퍼가 공개되어 있고 문서화되어 있습니다. 버퍼 순서는 알파벳순으로 고정되어 있으며 표시 스위치에 따라 바뀌지 않습니다. 통화를 숨기면 차트에서만 사라질 뿐 버퍼는 값을 그대로 유지하므로, EA는 사용자의 표시 설정에 영향을 받지 않습니다.
int h = iCustom(_Symbol, _Period, "CurrencyStrengthOscillator"); double jpy[]; ArraySetAsSeries(jpy, true); CopyBuffer(h, 5, 0, 100, jpy); // 버퍼 5는 항상 JPY
- 0 — AUD
- 1 — CAD
- 2 — CHF
- 3 — EUR
- 4 — GBP
- 5 — JPY
- 6 — NZD
- 7 — USD
- 8 — 제로 라인
- 9 — 페어 스프레드, 기준 통화 빼기 견적 통화, 페어 모드에서 값이 채워집니다
입력 파라미터
- 강도 측정 방식 — 변화율 또는 평균으로부터의 표준화 거리
- 조회 기간 — 각 값을 측정하는 구간(봉 수). 기본값 14
- 평활화 — 결과에 적용하는 이동평균. 기본값 3, 1이면 평활화 없음
- 계산할 봉 수 — 과거로 얼마나 거슬러 계산할지. 기본값 500, 0이면 사용 가능한 전체 이력
- 심볼 접미사 — 자동으로 감지되며, 브로커의 명명 방식이 특이한 경우 직접 지정할 수 있습니다
- 단일 페어 스프레드 표시 — 페어 모드로 전환하며, 비교할 기준 통화와 견적 통화를 지정합니다
- AUD 표시 ~ USD 표시 — 통화별 스위치 하나씩. 기본값은 모두 켜짐이며 페어 모드에서는 무시됩니다
스크린샷 설명
- 나란히 놓은 세 개의 차트 — NZDUSD, NZDJPY, USDJPY로, 각각 자기 심볼의 두 통화만 표시합니다. 공통된 라인은 차트를 넘어 동일한 경로를 그립니다. 뉴질랜드 달러는 앞의 두 차트에서 같은 측정값이고, 엔화는 뒤의 두 차트에서 같습니다. 지표는 차트가 아니라 통화를 읽습니다.
- GBPUSD 1시간 차트의 8개 통화 전체 — 엔화가 무리에서 벗어나 올라가는 동안 달러와 파운드가 밀려나며, 이에 수반된 가격 움직임도 함께 보입니다.
- 데이터 창 — 단일 봉에 대한 10개 버퍼 전부가 이름표와 함께 표시되어 전문가 어드바이저가 읽을 수 있습니다. 8개 통화 값의 합은 −0.001로, 제로섬 특성이 이론이 아니라 실제로 성립함을 보여줍니다.
- 두 통화만 표시한 USDJPY 일봉 — 달러와 엔화로, 교차 지점이 가격의 전환과 맞아떨어지며 주의를 분산시키는 요소가 없습니다.
- 달러만 표시한 금 1시간 차트, 두 가지 조회 기간 — 별도의 창에 두 개의 인스턴스를 배치했으며 하나는 느리고 하나는 빠릅니다. 짧은 조회 기간이 먼저 돌아서고, 긴 쪽이 뒤이어 확인해 줍니다.
- CHFJPY 일봉의 페어 모드 — 스위스 프랑 빼기 엔화, 단 하나의 라인입니다.
- 동일한 EURGBP H4 구간을 두 측정 방식으로 표시 — 하나는 변화율, 다른 하나는 표준화 척도이며 그 외에는 아무것도 바꾸지 않았습니다. 조회 기간 200에서 앞서 설명한 편향이 전자에서는 보이고 후자에서는 나타나지 않습니다.
- AUDUSD 주봉 — 가격은 2019년부터 이어지는 반면 오실레이터는 2020년 말에 시작합니다. 이 공백이 브로커의 최단 공통 이력이며, 아래에서 설명합니다.
- 파라미터 창 — 모든 설정 항목과 그 뒤로 보이는 지표 화면입니다.
과거 어디까지 표시되는가
분해가 의미를 가지려면 한 봉에 28개 통화쌍이 모두 필요하므로, 사용 가능한 깊이는 그중 가장 짧은 이력에 의해 결정됩니다. 브로커는 주요 통화쌍보다 마이너 크로스의 이력을 훨씬 적게 보관합니다. 사용 가능한 이력이 요청한 것보다 짧으면, 지표는 표시할 수 있는 범위까지 표시하고 그 제한을 전문가 로그에 한 번 보고합니다.
짧은 시간대에서는 눈에 띄지 않습니다. 주봉과 월봉에서 드러나는데, 공통 이력이 수백 봉 이하일 수 있어 가격은 훨씬 이전까지 거슬러 올라가는 차트에서 오실레이터는 중간부터 시작합니다. 이는 결함이 아니라 제한입니다. 브로커 데이터의 속성이며 모든 통화 강도 도구에 해당하지만, 대부분은 이를 알려주지 않을 뿐입니다.
계산할 봉 수의 기본값은 500입니다. 이 값을 늘리거나 0으로 설정해 전체 이력을 사용하면 더 긴 구간을 볼 수 있지만, 새로운 시간대에서 최초 로딩이 느려집니다.
계산 동작
마감된 봉의 값은 확정값입니다. 형성 중인 봉은 마감될 때까지 갱신되며, 처음 접한 시점에 고정되는 것이 아니라 매 틱마다 재계산됩니다. 따라서 그 값은 봉이 시작된 순간의 가격을 기록하는 것이 아니라 종가에서 확정됩니다.
각 봉은 28개 통화쌍 전부로 분해되거나 아예 분해되지 않습니다. 각 통화는 가정된 7개가 아니라 실제로 기여한 통화쌍들로 평균을 냅니다. 통화쌍이 빠져 있으면 해당 봉은 비워 둡니다. 공백은 한눈에 드러나지만, 불완전한 집합으로 계산된 강도는 실제 값과 똑같아 보이며 나중에 잘못되었음을 가려낼 수 없습니다.
어떤 통화쌍의 봉 시각이 차트와 맞지 않는 경우 — 최소 시간대에서 실제로 발생하는 브로커 이력의 공백 — 해당 통화쌍은 엉뚱한 봉으로 밀려나는 대신 영향을 받은 봉에서 제외되며, 제외 사실이 전문가 로그에 보고됩니다.
참고 사항
- 별도의 창에 그려지며 10개의 지표 버퍼를 가집니다. 위의 버퍼 배치는 고정이며 표시 스위치에 따라 바뀌지 않습니다.
- 28개 주요 통화쌍 전부가 브로커에서 제공되어야 합니다. 누락된 통화쌍은 이름과 함께 전문가 로그에 보고됩니다.
- 표시 범위는 28개 통화쌍 중 가장 짧은 이력에 의해 제한되며, 이는 주봉과 월봉에서 확인할 수 있습니다. 제한은 전문가 로그에 한 번 보고됩니다.
- 조회 기간이나 측정 방식을 달리한 여러 인스턴스를 같은 차트에 적용할 수 있습니다.
- 외부 의존성이 없습니다. 모든 값은 지표 내부에서 계산됩니다. 다른 지표를 전혀 호출하지 않으므로 실패할 수 있는 핸들이 없고, 함께 설치할 것도 없으며, 표준 지표 폴더의 상태에도 의존하지 않습니다.
이 제품의 성격
이것은 기술적 분석과 시장 상황 선별을 위한 도구입니다. 트레이딩 시스템이 아니며, 매수·매도 신호를 생성하지 않고, 투자 자문을 제공하지 않으며, 포지션을 개설하거나 관리하지 않습니다.
예측이 아니라 서술을 목적으로 합니다. 8개 통화가 지금까지 어떻게 움직였는지를 측정할 뿐, 앞으로 어떻게 움직일지를 예측하지 않으며, 수익성에 관한 어떠한 주장도 하지 않습니다.
| 이 개발자의 다른 도구 저는 MT5 지표와 전문가 어드바이저를 개발하며, 깔끔하고 문서화된 리페인트 없는 코드를 중시합니다. 마감봉 기반 로직, 검증된 버퍼, 그리고 다른 지표에 대한 의존성이 없다는 점입니다. 28개 통화쌍과 9개 시간대의 현재 상황을 한눈에 보고 싶으시다면, Multi Timeframe Currency Strength Panel을 무료로 제공하고 있으며 동일한 분해 방식을 사용합니다. 이 지표는 그것의 시계열 버전입니다. 계산 방식이나 버퍼, 또는 직접 만드신 EA에서의 활용에 대해 궁금한 점이 있으신가요? 개인 메시지를 보내주시면 기꺼이 답변드리겠습니다. |
MT5/MQL5 개발자 Narayanan Mohanan이 개발하고 유지 관리합니다.
이 페이지의 번역에서 오류를 발견하시면 알려주시기 바랍니다. 확인 후 수정하겠습니다.
