Chaikin Oscillator CHO Indicator For MT5
Table Of Contents:
- Chaikin Oscillator CHO Indicator For MT5
- Cài đặt Chaikin Oscillator CHO Indicator For MT5
- Các tham số của Chaikin Oscillator CHO Indicator For MT5
- Bộ đệm của Chaikin Oscillator CHO Indicator For MT5
- Các bộ phận chính của bộ luật
Chaikin Oscillator CHO Indicator For MT5 dựa trên chỉ báo Phân phối tích lũy và Trung bình di chuyển theo hàm mũ. Thuật toán EMA được áp dụng trên các giá trị của chỉ báo AD. Để tính giá trị của Bộ dao động Chaikin, EMA với chu kỳ 3 và EMA với chu kỳ 10 của chỉ báo AD được tính toán. Sự khác biệt giữa EMA (3) và EMA (10) là giá trị được vẽ trên biểu đồ. Bởi vì âm lượng là một phần của chỉ báo AD, Bộ dao động Chaikin lấy được giá trị từ âm lượng và do đó có thể là một chỉ báo hàng đầu.
Cài đặt Chaikin Oscillator CHO Indicator For MT5
Sau khi bạn tải xuống chỉ báo qua biểu mẫu ở trên, bạn cần giải nén tệp zip. Sau đó, bạn cần sao chép tệp cho.mq5 vào thư mục MQL5Indicators cài đặt MT5 của bạn. Sau đó, vui lòng khởi động lại MT5 và sau đó bạn sẽ có thể thấy chỉ báo trong danh sách các chỉ báo.
Các tham số của Chaikin Oscillator CHO Indicator For MT5
Chaikin Oscillator CHO Indicator For MT5 có các tham số 4 để cấu hình.
input int InpFastMA=3; // Fast MA period input int InpSlowMA=10; // Slow MA period input ENUM_MA_METHOD InpSmoothMethod=MODE_EMA; // MA method input ENUM_APPLIED_VOLUME InpVolumeType=VOLUME_TICK; // Volumes
Bộ đệm của Chaikin Oscillator CHO Indicator For MT5
Chaikin Oscillator CHO Indicator For MT5 cung cấp bộ đệm 4 .
SetIndexBuffer(0,ExtCHOBuffer,INDICATOR_DATA); SetIndexBuffer(1,ExtFastEMABuffer,INDICATOR_CALCULATIONS); SetIndexBuffer(2,ExtSlowEMABuffer,INDICATOR_CALCULATIONS); SetIndexBuffer(3,ExtADBuffer,INDICATOR_CALCULATIONS);
Các bộ phận chính của bộ luật
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 &TickVolume[], const long &Volume[], const int &Spread[]) { int i,limit; //--- check for rates total if(rates_total lt InpSlowMA) return(0); // not enough bars for calculation //--- preliminary calculations if(prev_calculated lt 1) { limit=1; //--- first values if(InpVolumeType==VOLUME_TICK) ExtADBuffer[0]=AD(High[0],Low[0],Close[0],TickVolume[0]); else ExtADBuffer[0]=AD(High[0],Low[0],Close[0],Volume[0]); ExtSlowEMABuffer[0]=ExtADBuffer[0]; ExtFastEMABuffer[0]=ExtADBuffer[0]; } else limit=prev_calculated-1; //--- calculate AD buffer if(InpVolumeType==VOLUME_TICK) { for(i=limit;i lt rates_total && !IsStopped();i++) ExtADBuffer[i]=ExtADBuffer[i-1]+AD(High[i],Low[i],Close[i],TickVolume[i]); } else { for(i=limit;i lt rates_total && !IsStopped();i++) ExtADBuffer[i]=ExtADBuffer[i-1]+AD(High[i],Low[i],Close[i],Volume[i]); } //--- calculate EMA on array ExtADBuffer AverageOnArray(InpSmoothMethod,rates_total,prev_calculated,0,InpSlowMA,ExtADBuffer,ExtSlowEMABuffer,weightslow); AverageOnArray(InpSmoothMethod,rates_total,prev_calculated,0,InpFastMA,ExtADBuffer,ExtFastEMABuffer,weightfast); //--- calculate chaikin oscillator for(i=limit;i lt rates_total && !IsStopped();i++) ExtCHOBuffer[i]=ExtFastEMABuffer[i]-ExtSlowEMABuffer[i]; //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+