설명
CADXWOnRingBuffer 클래스는 ADX 와일더(Average Directional Movement Index Wilder) 지표를 링 버퍼 알고리즘을 사용하여 계산하기 위해 설계되었습니다.
클래스 선언
class CADXWOnRingBuffer파일 포함
#include <IncOnRingBuffer\CADXWOnRingBuffer.mqh>CADXWOnRingBuffer.mqh 파일은 MQL5\Include\에 IncOnRingBuffer 폴더를 생성한 후 그 안에 위치해야 합니다. 이 폴더에서 사용된 예제 파일 두 개가 설명에 첨부되어 있습니다. 링 버퍼 및 이동 평균(Moving Average) 클래스 파일도 해당 폴더에 있어야 합니다.
클래스 메서드
//--- 초기화 메서드: bool Init( // 오류가 발생하면 false를 반환, 성공하면 true int ma_period = 14, // 이동 평균의 기간 ENUM_MA_METHOD ma_method = MODE_SMMA, // 이동 평균의 smoothing 방법 int size_buffer = 256, // 링 버퍼의 크기, 저장된 데이터 수 bool as_series = false // true이면 시간 시계열, false이면 일반 인덱싱 );
//--- 시간 시계열 또는 지표 버퍼에 기반한 계산 메서드: int MainOnArray( // 처리된 요소의 수를 반환 const int rates_total, // 배열의 크기 const int prev_calculated, // 이전 호출에서 처리된 요소 const double &high[], // 최대 값 배열 const double &low[], // 최소 값 배열 const double &close[] );
//--- 배열의 개별 요소 기반의 계산 메서드: double MainOnValue( // 설정된 요소에 대한 ADXW 값을 반환 const int rates_total, // 배열의 크기 const int prev_calculated, // 처리된 배열의 요소 const int begin, // 배열의 중요한 데이터 시작 지점 const double high, // 최대 값 const double low, // 최소 값 const double close, // 종가 const int index // 요소 인덱스 );
//--- 데이터 접근 메서드: int BarsRequired(); // 지표를 그리기 위해 필요한 바의 수를 반환 string NameADXW(); // 지표의 이름을 반환 string NameNDI(); // 음의 방향 이동 지표의 이름을 반환 string NamePDI(); // 양의 방향 지표의 이름을 반환 string MAMethod(); // smoothing 방법을 텍스트로 반환 int MAPeriod(); // smoothing 기간을 반환 int Size(); // 링 버퍼의 크기를 반환
링 버퍼에서 지표의 계산된 데이터를 일반 배열처럼 가져올 수 있습니다. 예를 들어:
#include <IncOnRingBuffer\CADXWOnRingBuffer.mqh> CADXWOnRingBuffer adxw; ... //+------------------------------------------------------------------+ //| 사용자 정의 지표 반복 함수 | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[]) { //--- 지표 계산: adxw.MainOnArray(rates_total, prev_calculated, high, low, close); ... //---연관 포스트