無料でロボットをダウンロードする方法を見る
Telegram上で私たちを見つけてください。
私たちのファンページに参加してください
興味深いスクリプト?
それではリンクにそれを投稿してください。-
他の人にそれを評価してもらいます
記事を気に入りましたか?MetaTrader 5ターミナルの中でそれを試してみてください。
インディケータ

リングバッファを使用してフラクタルを描画するクラス - MetaTrader 5のためのインディケータ

ビュー:
736
評価:
(24)
パブリッシュ済み:
2016.09.20 10:34
アップデート済み:
2016.11.22 07:34
\MQL5\Include\IncOnRingBuffer\ \MQL5\Indicators\OnRingBuffer\
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

説明

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);
  }

リングバッファでの索引付けは時系列と同じであることにご注意ください。

  1. Test_Fractals_OnArrayRB.mq5 ファイルは価格の時系列に基づいて指標を計算します。MainOnArray()メソッドの適用が実証されています。
  2. Test_Fractals_OnValueRB.mq5ファイルはMainOnValue()メソッドの使用法を実証します。 初めにフラクタル指標が計算されて描画されます。次に、この指標のリングバッファに基づいて、もう1つのフラクタルが描画されます。 


256要素のリングバッファでのTest_Fractals_OnArrayRB.mq5の作業の結果



256要素のリングバッファでのTest_Fractals_OnValueRB.mq5の作業の結果

 

コードを書く上でMetaQuotes Software Corp.Integer 及びGODZILLAの開発が使われました。

MetaQuotes Ltdによってロシア語から翻訳されました。
元のコード: https://www.mql5.com/ru/code/1422

SuperWoodiesCCI SuperWoodiesCCI

この指標はCCIを使ってトレーディング戦略を実現します。

Predict Predict

シグナルの3つの変形を持つセマフォシグナル指標

価格チャネルシグナル 価格チャネルシグナル

この指標は、すなわち再参入機能で有名なIgoradのPriceChannel_Signal_v1指標が変換されたものです。

Exp_TrendEnvelopes Exp_TrendEnvelopes

TrendEnvelopesセマフォシグナル指標に基づいて描画されたエキスパートアドバイザー