안녕하세요, 트레이더 여러분! 오늘은 메타트레이더 5에서 사용할 수 있는 다이버전스 오실레이터에 대해 이야기해보려고 해요. 이 커스텀 지표는 가격 움직임과 오실레이터 사이의 다이버전스를 감지하고 시각화하는 데 도움을 줍니다. 다이버전스는 가격과 오실레이터의 움직임이 일치하지 않을 때 발생하며, 이는 종종 시장의 반전이나 지속을 알리는 신호로 해석될 수 있어요. 이 지표는 매수/매도 신호, 오실레이터의 히스토그램, 그리고 다이버전스를 강조하기 위한 추세선을 표시합니다.


지표의 주요 특징:
다이버전스 감지:
- 강세 다이버전스: 가격이 낮은 저점을 형성하는데 반해 오실레이터는 높은 저점을 형성합니다.
- 약세 다이버전스: 가격이 높은 고점을 형성하는데 반해 오실레이터는 낮은 고점을 형성합니다.
시각화:
- 매수/매도 화살표: 차트에 화살표를 그려 다이버전스에 기반한 매수 또는 매도 신호를 나타냅니다.
- 히스토그램: 오실레이터 값을 히스토그램으로 표시합니다.
- 추세선: 가격과 오실레이터 간의 다이버전스를 강조하기 위해 차트에 추세선을 그립니다.
커스텀 버퍼:
- 데이터를 저장하기 위해 네 개의 버퍼를 사용합니다:
- 매수/매도 신호를 위한 BuyBuffer와 SellBuffer.
- 오실레이터 값을 위한 HistogramBuffer.
- 다이버전스 확인을 위한 PointsCounterBuffer.
- 데이터를 저장하기 위해 네 개의 버퍼를 사용합니다:
동적 추세선 그리기:
- CChartObjectTrend를 사용하여 가격과 오실레이터에 대한 추세선을 동적으로 차트에 그립니다.
교차 확인:
- 가격 또는 오실레이터가 추세선을 넘는지 확인하는 CheckCrossing 함수를 포함하여 다이버전스를 확인하거나 무효화하는 데 도움을 줍니다.
보간법:
- 두 점 사이의 중간 값을 계산하기 위해 선형 보간법 (CalculateIntermediateValue)을 사용하여 교차 확인에 활용합니다.
작동 방식:
초기화:
- OnInit() 함수는 지표의 버퍼를 설정하고, 속성(예: 색상, 스타일)을 할당하며, 오실레이터 핸들을 초기화합니다.
주요 계산:
- OnCalculate() 함수는 가격과 오실레이터 데이터를 처리하여 다이버전스를 감지합니다:
- 가격과 오실레이터에서 저점 (낮은 저점) 및 고점 (높은 고점)을 식별합니다.
- 가격과 오실레이터의 추세를 비교하여 다이버전스를 확인합니다.
- 다이버전스가 확인될 경우 매수/매도 신호를 표시하고 추세선을 그립니다.
- OnCalculate() 함수는 가격과 오실레이터 데이터를 처리하여 다이버전스를 감지합니다:
다이버전스 확인:
- IsBullishTrend 및 IsBearishTrend와 같은 조건을 사용하여 다이버전스를 확인합니다.
- 가격과 오실레이터의 추세선 사이에 교차가 발생하지 않도록 하여 다이버전스를 검증합니다.
동적 업데이트:
- 지표는 새로운 바가 추가될 때마다 동적으로 업데이트되며, 필요에 따라 다이버전스를 재계산하고 추세선을 다시 그립니다.
주요 함수:
IsBottom() 및 IsTop():
- 배열에서 로컬 최소값(저점)과 최대값(고점)을 감지합니다.
CheckCrossing():
- 가격 또는 오실레이터가 추세선을 넘는지 확인하여 다이버전스를 무효화할 수 있습니다.
CalculateIntermediateValue():
- 추세선 분석을 위해 선형 보간법을 사용하여 중간 값을 계산합니다.
AddUniqueCoordinates():
- 추세선 그리기를 위한 배열에 고유한 좌표가 추가되도록 합니다.
TotalAligned():
- 다이버전스의 강도를 확인하기 위해 정렬된 점의 수를 센다.
사용 방법:
- 이 지표는 다이버전스 전략을 사용하는 트레이더에게 유용하여 시장의 잠재적인 반전이나 지속을 파악하는 데 도움을 줍니다.
- 화살표, 추세선, 히스토그램과 같은 시각적 신호를 제공하여 트레이더가 정보를 바탕으로 의사 결정을 할 수 있도록 돕습니다.
예시 시나리오:
- 가격이 낮은 저점을 형성하고 (약세), 오실레이터가 높은 저점을 형성하는 경우, 강세 다이버전스가 감지됩니다. 이때 지표는 매수 화살표를 표시하고 다이버전스를 강조하기 위해 추세선을 그립니다.
- 반대로, 가격이 높은 고점을 형성하고 (강세), 오실레이터가 낮은 고점을 형성하는 경우, 약세 다이버전스가 감지됩니다. 이때 지표는 매도 화살표를 표시하고 추세선을 그립니다.
기술적 세부 사항:
- 플랫폼: 메타트레이더 5 (MT5).
- 언어: MQL5.
- 종속성: 계산을 위해 오실레이터(iAO)를 사용합니다.
- 커스텀 객체: 추세선 그리기를 위해 CChartObjectTrend와 좌표 배열 관리를 위해 CArrayInt를 활용합니다.
이 지표는 다이버전스 감지 및 시각화를 자동화하여 트레이딩 전략의 정확성을 높이고 시간을 절약할 수 있는 강력한 도구입니다.