보조지표 게시글

링 버퍼를 이용한 모멘텀 지표 계산하기 - MetaTrader 5에서의 활용

첨부파일
1396.zip (6.02 KB, 다운로드 0회)

안녕하세요, 트레이더 여러분! 오늘은 MetaTrader 5에서 링 버퍼를 활용하여 모멘텀 지표를 계산하는 방법에 대해 알아보겠습니다. 이 글에서는 CMomentumOnRingBuffer 클래스를 통해 모멘텀 지표를 효과적으로 계산하고 활용하는 방법을 소개할게요.

CMomentumOnRingBuffer 클래스 소개

CMomentumOnRingBuffer 클래스는 링 버퍼 알고리즘을 사용하여 기술 지표인 모멘텀(Momentum)을 계산하기 위해 설계되었습니다.

클래스 선언

class CMomentumOnRingBuffer : public CArrayRing

파일 위치

CMomentumOnRingBuffer.mqh 파일은 MQL5\Include\IncOnRingBuffer 폴더에 위치해야 하며, 이 폴더에는 클래스에 사용되는 예제 파일 두 개도 첨부되어 있습니다. 링 버퍼 클래스 파일도 이 폴더에 있어야 합니다.

클래스 메서드

//--- 초기화 메서드:
bool Init(// 오류 시 false, 성공 시 true
      int  period  = 14,  // 모멘텀 주기
      int  size_buffer = 256,  // 링 버퍼 크기
      bool as_series   = false // true면 시계열, 아니면 false
  );
//--- 시계열 또는 지표 버퍼를 기반으로 계산하는 메서드:
int MainOnArray(// 처리된 요소 수 반환
      const int     rates_total,// 배열 크기
      const int     prev_calculated,// 이전 호출에서 처리된 요소
      const double& array[]);// 입력 데이터 배열

링 버퍼에서 계산된 데이터를 일반 배열과 동일하게 가져올 수 있습니다. 예를 들어:

//--- 모멘텀 지표 계산 클래스:
#include <IncOnRingBuffer\CMomentumOnRingBuffer.mqh>
CMomentumOnRingBuffer momentum;

... 

//+------------------------------------------------------------------+
//| 사용자 정의 지표 반복 함수|
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,// 배열 가격[] 크기
      const int prev_calculated,// 이전 호출에서 처리된 막대
      const int begin,// 유의미한 데이터 시작점
      const double& price[])// 계산용 배열
  {

예제 코드 및 결과

  1. Test_Momentum_OnArrayRB.mq5 파일은 가격 시계열을 기반으로 지표를 계산합니다. MainOnArray() 메서드 사용을 보여줍니다.
  2. Test_Momentum_OnValueRB.mq5 파일은 MainOnValue() 메서드를 사용한 예제를 보여줍니다. 먼저 모멘텀 지표가 계산되고 그 다음 이 링 버퍼를 기반으로 또 다른 모멘텀 지표가 그려집니다.


Test_Momentum_OnArrayRB.mq5의 결과 (링 버퍼 크기 256)


Test_Momentum_OnValueRB.mq5의 결과 (링 버퍼 크기 256)

이 코드를 작성하는 데는 MetaQuotes Software Corp., IntegerGODZILLA의 개발물이 사용되었습니다.

연관 포스트

댓글 (0)