無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
私たちのファンページに参加してください
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
リングバッファを使用してフラクタルを描画するクラス - MetaTrader 5のためのインディケータ
- ビュー:
- 736
- 評価:
- パブリッシュ済み:
- 2016.09.20 10:34
- アップデート済み:
- 2016.11.22 07:34
- このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
説明
CFractalsOnRingBufferはリングバッファを使用したフラクタル指標(Fractals)の計算のために設計されています。
宣言
class CFractalsOnRingBuffer
タイトル
#include <IncOnRingBuffer\CFractalsOnRingBuffer.mqh>
CFractalsOnRingBuffer.mqhファイルはMQL5\Include\に作成されたIncOnRingBufferフォルダに配置されます。クラスによって使用されるこのフォルダからの2つのファイルの例は説明に添付されています。リングバッファクラスもまたこのフォルダになければなりません。
クラスメソッド
//--- 初期化メソッド: bool Init( // エラーならfalse、成功ならtrueを返す int bars_right = 2, // 極値から右のバーの数 int bars_left = 2, // 極値から左のバーの数 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[], // 最低値の配列 ); //--- high[]配列の別々の一連の要素に基づいたフラクタルの計算メソッド double MainOnHigh( // 上部フラクタルのindex-bars_right 要素(バー)の値を返す const int rates_total, // 配列サイズ const int prev_calculated, // 処理された配列要素 const int begin, // 配列の重要なデータの初め const double high, // 現在のバーの最高値 const int index // 現在の要素(バー)インデックス ); //--- low[]配列の別々の一連の要素に基づいた下部フラクタルの計算メソッド double MainOnLow( // 下部フラクタルのindex-bars_right要素(バー)の値を返す const int rates_total, // 配列サイズ const int prev_calculated, // 処理された配列要素 const int begin, // 配列の重要なデータの初め const double low, // 現在のバー最小値、現在の配列要素の最大値 const int index // 現在の要素(バー)インデックス ); //--- データアクセスメソッド: int BarsRequired(); // 指標の描画に必要なバーの数を返す string Name(); // 指標名を返す string NameUpper() // 上部フラクタルの名前を返す string NameLower() // 下部フラクタルの名前を返す int BarsRight() // 極値から右のバーの数を返す int BarsLeft() //極値から左のバーの数 int Size(); // リングバッファサイズを返す
リングバッファからの指標の計算されたデータの取得は、通常の配列からの場合ともに可能です。例を示します。
//--- フラクタル指標計算メソッドを持つクラス: #include <IncOnRingBuffer\CFractalsOnRingBuffer.mqh> CFractalsOnRingBuffer fractals; ... //+------------------------------------------------------------------+ //| カスタム指標反復関数 | //+------------------------------------------------------------------+ 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[]) { //--- 価格の時系列に基づいた指標計算: fractals.MainOnArray(rates_total,prev_calculated,high,low); ... //--- 「fractals」リングバッファのデータを使う: // 例えば、データを指標バッファにコピーする: for(int i=start;i<rates_total-BarsRight && !IsStopped();i++) { UpperBuffer[i] = fractals.upper[rates_total-1-i]; // 上部フラクタル LowerBuffer[i] = fractals.lower[rates_total-1-i]; // 下部フラクタル } ... //--- 次の呼び出しのためのprev_calculatedの返し値 return(rates_total); }
リングバッファでの索引付けは時系列と同じであることにご注意ください。
例
- Test_Fractals_OnArrayRB.mq5 ファイルは価格の時系列に基づいて指標を計算します。MainOnArray()メソッドの適用が実証されています。
- Test_Fractals_OnValueRB.mq5ファイルはMainOnValue()メソッドの使用法を実証します。 初めにフラクタル指標が計算されて描画されます。次に、この指標のリングバッファに基づいて、もう1つのフラクタルが描画されます。
256要素のリングバッファでのTest_Fractals_OnArrayRB.mq5の作業の結果 コードを書く上でMetaQuotes Software Corp.、Integer 及びGODZILLAの開発が使われました。
256要素のリングバッファでのTest_Fractals_OnValueRB.mq5の作業の結果
MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1422
価格チャネルシグナル
この指標は、すなわち再参入機能で有名なIgoradのPriceChannel_Signal_v1指標が変換されたものです。
Exp_TrendEnvelopesTrendEnvelopesセマフォシグナル指標に基づいて描画されたエキスパートアドバイザー