無料でロボットをダウンロードする方法を見る
Facebook上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
- ビュー:
- 872
- 評価:
- パブリッシュ済み:
- 2016.09.20 10:25
- アップデート済み:
- 2016.11.22 07:34
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
説明
このクラスは、リングバッファアルゴリズムを使用したマネーフロー指数(Money Flow Index、MFII)テクニカル指標の計算のために設計されています。
宣言
class CMFIOnRingBuffer : public CArrayRing
タイトル
#include <IncOnRingBuffer\CMFIOnRingBuffer.mqh>
CMFIOnRingBuffer.mqhクラスファイルはMQL5\Include\に作成されたIncOnRingBufferフォルダに配置されます。クラスによって使用されるこのフォルダからの2つのファイルの例は説明に添付されています。リングバッファと移動平均クラスファイルもこのフォルダになければなりません。
クラスメソッド
//--- 初期化メソッド: bool Init( // エラーならfalse、 // 成功ならtrueを返す int period = 14, // MFI期間 ENUM_MA_METHOD method = MODE_SMA, // 平滑化手法 ENUM_APPLIED_PRICE applied_price = PRICE_TYPICAL, // 計算に使用される価格 ENUM_APPLIED_VOLUME applied_volume = VOLUME_TICK, // 計算に使用される数量 int size_buffer = 256, // リングバッファのサイズ bool as_series = false // 時系列の場合は true、入力データの索引付けが通常の場合はfalse ); //--- 時系列または指標バッファーに基づいた計算法: int MainOnArray( // 処理された要素の数を返す const int rates_total, // 配列サイズ const int prev_calculated, // 前の呼び出しで処理された配列要素 const double& open[], // 始値 const double& high[], // 最高値 const double& low[], // 最低値 const double& close[], // 終値 const long& tick_volume[], // ティックボリューム const long& volume[]); // 株の数量 ); //--- 配列の別個の一連の要素に基づいた計算法 double MainOnValue( // 設定された要素のMFI 値を返す(バー) const int rates_total, // 配列サイズ const int prev_calculated, // 処理された配列要素 const int begin, // 配列の重要なデータの初め const double open, // バーの始値 const double high, // バーの最大値 const double low, // バーの最小値 const double close, // バーの終値 const long tick_volume, // バーのティックボリューム const long volume, // バーの株の数量 const int index // 要素インデックス(バー) ); //--- データアクセスメソッド: int BarsRequired(); // 指標描画に必要なバー数を返す string Name(); // 指標名を返す int Period(); // 期間を返す string Method(); // 方法を文字列で返す ENUM_APPLIED_PRICE Price(); // 使われた値段のタイプを返す ENUM_APPLIED_VOLUME Volume(); // 使われた数量のタイプを返す int Size(); // リングバッファのサイズを返す
リングバッファからの指標の計算されたデータを取得するは、通常の配列から同様に可能です。例を示します。
//--- MFI指標計算メソッドを持つクラス: #include <IncOnRingBuffer\CMFIOnRingBuffer.mqh> CMFIOnRingBuffer mfi; ... //+------------------------------------------------------------------+ //| カスタム指標反復関数 | //+------------------------------------------------------------------+ 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[]) { //--- 時系列に基づいた指標計算: mfi.MainOnArray(rates_total,prev_calculated,open,high,low,close,tick_volume,volume); ... //--- 「mfi」リングバッファのデータを使う: // 例えば、データを指標バッファにコピーする: for(int i=start;i<rates_total && !IsStopped();i++) MFI_Buffer[i] = mfi[rates_total-1-i]; // 指標ライン ... //--- 次の呼び出しのためのprev_calculatedの返し値 return(rates_total); }
リングバッファでの索引付けは時系列と同じであることにご注意ください。
例
- Test_MFI_OnArrayRB.mq5ファイルは価格の時系列に基づいて指標を計算します。MainOnArray()メソッドの適用が実証されます。
- Test_MFI_OnValueRB.mq5ファイルはMainOnValue()メソッドの使用法を実証します。初めにMFI指標が計算されて描画されます。次に、この指標のリングバッファに基づいて、もう1つのMFI指標が算出されます。
256要素のリングバッファでのTest_MFI_OnArrayRB.mq5の作業の結果 コードを書く上でMetaQuotes Software Corp.、Integer 及びGODZILLAの開発が使われました。
256要素のリングバッファでのTest_MFI_OnValueRB.mq5の作業の結果
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1395

このクラスはリングバッファを使用したモメンタム(Momentum)の計算のために設計されています。

ブレイクアウトバートレンドv2指標に基づいたエキスパートアドバイザー。エントリは、設定に関係なく、決まった数の偽シグナルを逃した後にトレンド反転のように行われます。