私たちのファンページに参加してください
リングバッファを使用してADX Wilderを描画するクラス - MetaTrader 5のためのインディケータ
- ビュー:
- 823
- 評価:
- パブリッシュ済み:
- 2016.08.08 15:56
- アップデート済み:
- 2016.11.22 07:34
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
説明
CADXWOnRingBufferクラスはリングバッファアルゴリズムを使用したテクニカル指標のADXW(Average Directional Movement Index Wilder、ADX Wilder)の計算のために設計されています。
宣言
class CADXWOnRingBuffer
タイトル
#include <IncOnRingBuffer\CADXWOnRingBuffer.mqh>
CADXWOnRingBuffer.mqhクラスファイルはMQL5\Include\に作成されたIncOnRingBufferフォルダに配置されます。クラスによって使用されるこのフォルダから2つのファイルがの例が説明に添付されています。リングバッファと移動平均クラスファイルもこのフォルダになければなりません。
クラスメソッド
//--- 初期化メソッド: bool Init( // エラーならfalse、成功ならtrueを返す int ma_period = 14, // 移動平均平滑化の期間 ENUM_MA_METHOD ma_method = MODE_SMMA, // 移動平均平滑化法 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(); // 平滑化の方法を文字列で返す int MAPeriod(); // 平滑化の期間を返す 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); ... //--- 「adxw」リングバッファのデータを指標にコピーする: for(int i=start;i<rates_total;i++) { ADXW_Buffer[i] = adxw[rates_total-1-i]; // ADXWr PDI_Buffer[i] = adxw.pdi[rates_total-1-i]; // 正の方向性指数 NDI_Buffer[i] = adxw.ndi[rates_total-1-i]; // 負の方向性指数 } ... }
リングバッファでの索引付けは時系列と同じであることにご注意ください。
例示
- Test_ADXW_OnArrayRB.mq5ファイルは価格の時系列に基づいて指標を計算します。MainOnArray() メソッドの適用が実証されます。
- Test_ADXW_OnValueRB.mq5ファイルはMainOnValue()メソッドの使用法を実証します。初めにADXW指標が計算されて描画されます。この指標のリングバッファに基づいて、後3つのADXW指標が算出されます。
256要素のリングバッファでのTest_ADXW_OnArrayRB,mq5の作業の結果 コードを書く上でMetaQuotes Software Corp.、Integer 及びGODZILLAの開発が使われました。
256要素のリングバッファでのTest_ADXW_OnValueRB.mq5の作業の結果
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1356
Exp_ColorTrend_CF取引システムは、ColorTrend_CF指標で表示されるトレンド方向の変化に基づいています。
Exp_ColorLeManTrendExp_ColorLeManTrend 取引システムは、ColorLeManTrend指標で表示されるトレンド方向の変化に基づいています。
このスクリプトは、気配値表示のすべての銘柄のピボットポイントを計算し、HTMLファイルに結果を表示します。
VininI_Trend期間が等差数列によって変更移動平均のグループのシグナルに基づいて値が決定されるトレンド指標。