Oscillator Regime Suite
- 지표
-
Narayanan Mohanan Mohanan Krishnan
MT5/MQL5용 Expert Advisor, 사용자 정의 지표 및 백테스트·검증 도구를 개발합니다. 저는 깔끔하고 문서화가 잘 되어 있으며 리페인트가 없는(No Repaint) 코드에 집중합니다. 확정된 캔들 기반 로직, 검증된 버퍼(Buffer), 올바른 핸들(Handle) 및 메모리 관리와 같은 엔지니어링 원칙이 신뢰할 수 있는 도구와 불안정한 도구를 구분한다고 생각합니다. - 버전: 1.0
- 활성화: 10
이 지표는 수렴/발산 구조 — 빠른 이동평균에서 느린 이동평균을 뺀 값과 시그널 라인 — 를 가격이 아니라 거래량에서 파생된 계열에 적용합니다. 세 가지 소스를 선택할 수 있습니다. 누적 거래량 델타, 포스 인덱스, 온밸런스 볼륨입니다.
그 결과 위에 적응형 변동성 밴드를 그리고, 마감된 각 봉을 다섯 가지 국면 상태 중 하나로 분류합니다. 이 상태는 숫자 버퍼로 제공되므로 전문가 어드바이저(EA)가 직접 읽을 수 있습니다.
소스가 중요한 이유
일반적인 MACD는 가격 모멘텀을 측정하는데, 이는 위쪽 캔들에서 이미 대체로 확인할 수 있습니다. 이 세 가지 소스는 다른 것을 측정합니다. 그 가격 움직임이 일어나는 동안 거래량이 축적되고 있었는지, 아니면 분산되고 있었는지입니다.
세 가지는 서로 대체할 수 있는 것이 아니며, 스크린숏 중 하나는 동일한 차트에 동일한 설정으로 세 가지를 모두 표시해 차이를 나란히 볼 수 있게 했습니다.
- 누적 거래량 델타 — 부호가 붙은 거래량의 누적값으로, 매일·매주·매월 시작 시점에 다시 기준점을 잡습니다. 바로 이 기준점 설정이 전체 이력이 아닌 세션 단위의 지표로 만들어 줍니다.
- 포스 인덱스 — 해당 봉의 가격 변화에 거래량을 곱한 뒤 평활화한 값입니다. 나머지 둘과는 성격이 다른 양입니다.
- 온밸런스 볼륨 — 부호가 붙은 거래량의 누적값으로, 이력 시작 시점부터 초기화 없이 연속됩니다.
거래량 델타와 온밸런스 볼륨은 부호가 붙은 거래량의 누적이라는 같은 기반을 공유하며 기준점 설정에서만 다릅니다. 델타를 연속으로 설정하면 둘은 동일한 계열을 만들어내며, 이는 두 계산 경로가 서로 일치하는지 확인하는 유용한 방법이기도 합니다.
다섯 가지 국면 상태
마감된 각 봉은 히스토그램이 밴드에 대해 어디에 위치하는지, 그리고 여전히 확장 중인지에 따라 분류됩니다.
- 강한 상승 — 상단 밴드 위에 있으며 여전히 확장 중. 버퍼 값 +2
- 약한 상승 — 상단 밴드 위에 있으나 힘이 줄어드는 중. 버퍼 값 +1
- 중립 — 밴드 안쪽. 버퍼 값 0
- 약한 하락 — 하단 밴드 아래에 있으나 완화되는 중. 버퍼 값 −1
- 강한 하락 — 하단 밴드 아래에 있으며 여전히 확장 중. 버퍼 값 −2
밴드를 벗어났다는 사실만으로는 그 움직임에 아직 힘이 남아 있는지 알 수 없습니다. 계속 쌓여 가는 움직임과 이미 소진되기 시작한 움직임을 구분해 주는 것은 히스토그램의 방향이며, 다섯 가지 상태가 바로 그것을 담고 있습니다.
분류의 선별 강도 조정
밴드는 이동평균을 중심으로 한 표준편차이므로 시장이 활발해지면 넓어지고 잠잠해지면 좁아집니다. 상태가 바뀌는 빈도는 두 개의 파라미터가 결정합니다.
밴드 기간은 구간을 정합니다. 밴드를 시그널 라인에 적용은 밴드를 시그널 라인 기준으로 측정할지, 히스토그램 자체를 기준으로 측정할지를 정합니다. 두 장의 스크린숏이 그 차이를 보여줍니다. 기본값에서는 하나의 움직임 내내 상태가 계속 바뀌지만, 밴드를 더 긴 기간으로 히스토그램에서 취하면 히스토그램이 대부분의 시간 동안 밴드 안에 머물고 실제 돌파가 있을 때만 색이 입혀집니다.
두 설정 중 어느 쪽이 정답인 것은 아닙니다. 분류가 모든 흔들림을 따라가기를 원하는지, 아니면 극단적인 국면만 표시하기를 원하는지에 달려 있습니다.
전문가 어드바이저에서 읽기
국면 편향은 버퍼 5가 아니라 버퍼 6입니다. 버퍼 1은 히스토그램의 색상 인덱스를 담고 버퍼 5는 숨겨진 플롯을 뒷받침하므로, 데이터 버퍼의 번호는 눈에 보이는 플롯과 연속되지 않습니다. 이 부분에서 혼동이 잦기 때문에 여기에 분명히 밝혀 둡니다.
int h = iCustom(_Symbol, _Period, "OscillatorRegimeSuite"); double bias[]; ArraySetAsSeries(bias, true); CopyBuffer(h, 6, 0, 100, bias); // +2, +1, 0, -1 또는 -2
- 0 — 히스토그램
- 1 — 히스토그램 색상 인덱스
- 2 — 시그널 라인
- 3 — 상단 밴드
- 4 — 하단 밴드
- 5 — 자리표시용 플롯
- 6 — 국면 편향, EA를 위한 출력
버퍼 7과 8은 빠른 이동평균과 느린 이동평균을 담고 있으며 내부용입니다. 공개된 인터페이스에는 포함되지 않습니다.
스크린숏 중 하나는 단일 봉에 대한 이 값들이 이름표와 함께 표시된 데이터 창을 보여주며, 비교를 위해 같은 차트의 기본 MACD가 나란히 있습니다.
입력 파라미터
- 소스 계열 — 누적 거래량 델타, 포스 인덱스 또는 온밸런스 볼륨
- 사용 거래량 — 틱 거래량 또는 실거래량
- 델타 기준점 — 연속, 일간, 주간 또는 월간. 누적 거래량 델타 소스에만 적용됩니다
- 포스 인덱스 평활화 — 기간과 방식. 해당 소스에만 적용되며 기본값은 13과 단순 평균입니다
- 빠른·느린 이동평균 — 각각의 기간과 방식. 기본값은 12와 26이며 둘 다 지수 평균입니다
- 시그널 이동평균 — 기간과 방식. 기본값은 9와 단순 평균입니다
- 밴드 및 국면 분류 사용 — 끄면 상태 없이 단순한 수렴/발산 오실레이터만 남습니다
- 밴드를 시그널 라인에 적용 — 기본값은 켜짐. 끄면 히스토그램 기준으로 측정됩니다
- 밴드 기간 및 편차 배수 — 기본값은 20과 1.618
스크린숏 설명
- 한 차트 위의 세 가지 소스 — 비트코인 주봉, 동일한 설정, 아래쪽에 기본 MACD를 대조군으로 배치. 세 거래량 계열은 서로 다르며 가격 모멘텀과도 다릅니다.
- 전환 구간의 다섯 가지 상태 — EURGBP H4에서 강한 하락에서 중립을 거쳐 강한 상승으로, 그리고 다시 되돌아가는 흐름을 봉 단위로 읽을 수 있습니다.
- 데이터 창 — 단일 봉에 대한 모든 버퍼가 이름표와 함께 표시되며 국면 편향은 −2.00입니다. 그 옆에는 기본 MACD의 이름 없는 두 값이 있습니다.
- USDJPY 1시간봉의 급락 — 가격 MACD가 아직 양수인 동안 거래량 계열은 이미 음수로 전환했습니다. 한 종목의 한 구간이며, 이것이 무엇을 보여주고 무엇을 보여주지 않는지는 아래 설명을 참고하십시오.
- 금 M15, 일간 기준점 — 델타가 매 세션 초기화되며, 같은 차트에 훨씬 느린 온밸런스 볼륨 인스턴스가 함께 있습니다.
- 은 H4에 50/200/20과 US30 일봉에 34/89/13 — 기간은 입력값이며, 기본값에서 크게 벗어난 설정에서도 분류가 유지됩니다.
- 선별적인 설정 — GBPUSD 1시간봉에서 밴드를 더 긴 기간으로 히스토그램에서 취한 예. 대부분의 봉은 중립으로 남고 뚜렷한 돌파에만 색이 입혀집니다.
- 기준점 안내 — 일봉 차트에서 일간 기준점을 요청하면 매 봉마다 초기화됩니다. 지표는 이를 전문가 로그에 알리고 연속 계열로 대체합니다.
- 파라미터 창 — 모든 설정 항목과 그 뒤로 보이는 지표 화면입니다.
계산 동작
마감된 봉의 값은 확정값입니다. 형성 중인 봉은 마감될 때까지 갱신되며, 처음 접한 시점에 고정되는 것이 아니라 매 틱마다 재계산됩니다.
누적 소스는 직전 봉의 값에서 한 봉씩 전진하므로, 형성 중인 봉을 다시 처리해도 그 거래량이 이중으로 계산되지 않습니다. 이는 누적 계열이 끝없이 위로 표류하게 만드는 결함입니다.
계산에 필요한 이력이 확보되기 전에는 아무것도 그려지지 않습니다. 기본 기간에서는 55개 봉이며, 밴드 기간을 늘리거나 포스 인덱스 소스를 사용하면 더 늘어납니다. 불완전한 구간으로 계산한 값을 완전한 것처럼 그리는 일은 결코 없습니다.
현재 시간대에서 성립할 수 없는 기준점 — 예를 들어 일봉 차트의 일간 기준점은 매 봉마다 초기화됩니다 — 은 전문가 로그에 보고되고 연속 계열로 대체됩니다. 지표 창의 이름도 그에 맞게 바뀌므로, 차트는 실제로 어떤 계열을 표시하고 있는지 항상 알려줍니다.
참고 사항
- 별도의 창에 그려지며 아홉 개의 버퍼를 가지고, 그중 일곱 개를 위에 설명했습니다.
- 시그널 라인에 어떤 평균 방식을 선택하든 밴드는 항상 단순 이동평균을 기준으로 계산됩니다. 표준편차 밴드의 일반적인 관례를 따른 것입니다.
- 실거래량은 브로커가 제공하는 경우에만 사용할 수 있습니다. 틱 거래량이 기본값이며 어디서나 동작합니다.
- 같은 차트에 서로 다른 소스나 기간으로 여러 인스턴스를 적용할 수 있습니다.
- 외부 의존성이 없습니다. 모든 값은 지표 내부에서 계산됩니다. 다른 지표를 전혀 호출하지 않으므로 실패할 수 있는 핸들이 없고, 함께 설치할 것도 없으며, 표준 지표 폴더의 상태에도 의존하지 않습니다.
이 제품의 성격
이것은 기술적 분석과 시장 상황 선별을 위한 도구입니다. 트레이딩 시스템이 아니며, 매수·매도 신호를 생성하지 않고, 투자 자문을 제공하지 않으며, 포지션을 개설하거나 관리하지 않습니다.
예측이 아니라 서술을 목적으로 합니다. 스크린숏에서 거래량 계열이 가격보다 먼저 전환하는 장면은 한 종목의 한 구간이며, 설명에 적합해서 선택한 것입니다. 이는 해당 계열이 가격에 선행한다는 증거가 아니며, 그런 주장을 뒷받침하려면 다수의 종목과 다양한 시장 상황에서 검증해야 합니다. 수익성에 관한 어떠한 주장도 하지 않습니다.
| 이 개발자의 다른 도구 저는 MT5 지표와 전문가 어드바이저를 개발하며, 깔끔하고 문서화된 리페인트 없는 코드를 중시합니다. 마감봉 기반 로직, 검증된 버퍼, 그리고 다른 지표에 대한 의존성이 없다는 점입니다. 세 소스 중 두 가지는 개별적으로도 무료로 공개되어 있습니다. Anchored Volume Delta with Adaptive Bands와 Force Index with Adaptive Volatility Bands입니다. 각각 밴드와 함께 하나의 계열을 그리지만 국면 분류는 포함하지 않으므로, 이 제품을 구매하기 전에 접근 방식이 맞는지 확인해 보기에 좋습니다. 온밸런스 볼륨 소스와 다섯 가지 상태 분류만 필요하시다면, OBVCD Pro가 단일 소스 지표로 정확히 그 역할을 합니다. 계산 방식이나 버퍼, 또는 직접 만드신 EA에서의 활용에 대해 궁금한 점이 있으신가요? 개인 메시지를 보내주시면 기꺼이 답변드리겠습니다. |
MT5/MQL5 개발자 Narayanan Mohanan이 개발하고 유지 관리합니다.
이 페이지의 번역에서 오류를 발견하시면 알려주시기 바랍니다. 확인 후 수정하겠습니다.
