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

リングバッファ作成クラス - MetaTrader 5のためのライブラリ

ビュー:
782
評価:
(41)
パブリッシュ済み:
2016.08.08 15:33
\MQL5\Include\IncOnRingBuffer\
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動

説明

リングバッファは、データを保存するため整理形態の一つです。通常、それは、最も古い要素が最新のデータで置き換えられる長さの限られた配列として表れされます。このように、最後のデータには常に特定の数へのアクセスがあります。これはほとんどの場合ストリームデータの非同期読み出し/書き込みに使用されます。詳細はこちらをご参照ください

エキスパートアドバイザーと指標を書き込むときは、多くの場合、すべてのバーのために計算された値を格納する必要はありません。例えば、最後の100バーのデータを維持するので十分でしょう。リングバッファは、このために好適です。明白な利点:

  • 計算の増加
  • メモリの経済化
  • 使いやすく、配列を超えたエグジットの心配が不必要
宣言

сlass CArrayRing

タイトル

#include <IncOnRingBuffer\CArrayRing.mqh>

CArrayRing.mqhクラスファイルは MQL5\Include\に作成されたIncOnRingBufferフォルダに配置されます。クラスの使用例は下のリンクにあります。

クラスメソッド 

//--- バッファ初期化メソッド:
bool Init(                  // エラーならfalse、成功ならtrueを返す
   int    size,             // リングバッファサイズ
   double volue=EMPTY_VALUE // 空の位置バッファ
   );
//--- 新しい要素をバッファに加えるメソッド
void Add(
   const double element     // 追加された要素の値
   ); 

//--- このメソッドは指定されたインデックスを持つ要素の値を上書きする
bool Update(                // エラーならfalse、成功ならtrueを返す
   const double element,    // 要素の新しい値
   const int index=0        // 要素インデックス
   );  

//--- このメソッドは指定されたインデックスを持つ要素の値を返す
double At(                  // 要素の値を返す
   const int index          // 要素インデックス
   ) const;

//--- このメソッドはバッファ要素に書き込まれた最後の値を返す
double Last() const;

//--- このメソッドはバッファ要素に書き込まれた最後の値を上書きする:
void Last(
   const double element     // 要素の新しい値
   );  

//--- このメソッドはリングバッファのサイズを返す:
int Size();

//--- このメソッドはリングバッファのサイズを変更する:
bool Resize(
   const int size           // 新しいサイズ
   );

注意事項:

  • バッファサイズが減少すると、最後ではなく最も古い要素がなくなります。
  • このりングバッファの実装では索引付けは時系列すなわち通常の反対です。 

例示

出版の瞬間にもリングバッファを使用した3つの例があります。

 

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

XMUV XMUV

この移動平均線の描画はデマークのDaily Range Projections(日中の価格帯の予想)法に基づきます。

Exp_ColorStochNR Exp_ColorStochNR

ColorStochNRオシレータのシグナルに基づいた取引システム。

CorrectedAverage CorrectedAverage

この指標はブレイクスルーラインを表示します。

リングバッファを使用して移動平均を描画するクラス リングバッファを使用して移動平均を描画するクラス

このクラスはリングバッファを使用した移動平均の計算のために設計されています。