このクラスはインジケータが消費するメモリを削減できますか?
また、このようなインジケータを複数使用するExpert Advisorが消費するメモリについてはどうでしょうか?
それとも、単にストリーミング・データへの便利なアクセスを提供するという、異なるタスクが設定されたのでしょうか?
このクラスはインジケータが消費するメモリを削減できますか?
また、このようなインジケータを複数使用するExpert Advisorが消費するメモリについてはどうでしょうか?
それとも、単にストリーミング・データへの便利なアクセスを提供するという、異なるタスクが設定されたのでしょうか?
もちろんそうです。このクラスはメモリを削減するために正確に書かれました。中間データ用のバッファを含むすべてのバッファでは、ユーザーによって指定された最後のデータのサイズだけがメモリに保存されます。
例を公表すべきだ。
事例を公表しなければならない。
例
Class for buildingMoving Average
Class for buildingAverage True Range
Class for buildingAverage Directional Movement Index.
すでに例があるが、2番目と3番目のリンクだけが切れている。
よりよく理解するために、ちょっとした例えをしよう:
- この実装におけるリングバッファは、時系列のアナログである。
- リングバッファのサイズはTERMINAL_MAXBARSのアナログですが、TERMINAL_MAXBARSとは異なり、バッファサイズは初期化時にユーザーによって設定され、使用中に変更することができます。
- TERMINAL_MAXBARSと同様に、バッファサイズを超えたデータは利用できませんが、バッファサイズ内のすべての最新データは利用可能です。
- インジケータ・データはインジケータ・バッファと 同様にリング・バッファに保存できますが、チャート上に表示するには、データをインジケータ・バッファにコピーする必要があります。
- インジケータ・データを表示する必要がない場合は、インジケータ・バッファにコピーする必要はなく、リング・バッファから直接計算に使用します(例を参照)。
- インジケータ・データはインジケータ・バッファと 同様にリング・バッファに保存できますが、チャート上に表示するには、インジケータ・バッファにデータをコピーする必要があります。
- インジケータ・データを表示する必要がない場合は、インジケータ・バッファにコピーする必要はなく、リング・バッファから直接計算に使用します(例を参照)。
これが私が質問したことです。
本格的なインジケータ・バッファがまだ必要なのに、どうやってメモリを節約できるのでしょうか?
結局のところ、中間計算をリング・バッファに転送する場合にのみメモリを節約することができ、これはすべての問題を解決するわけではありません。
私が望んでいるのは、20個の表示バッファを持つインジケータが、直近の1000本のバーを計算し、"Max. bars in window" = 1000のときと、"Max. bars in window" = 9999999999のときで、同じ量のメモリを占有することです。
そして、これは明らかに不可能です。
それを聞きたかったんだ。
それでも本格的なインジケーター・バッファが必要な場合、どうやってメモリを節約するのか?
中間的な計算をリング・バッファに転送する場合のみ、メモリを節約できることがわかりました。
私が望んでいるのは、20個の表示バッファを持つインジケータが、直近の1000本のバーを計算し、"Max. bars in window" = 1000のときと、"Max. bars in window" = 9999999999のときで、同じ量のメモリを占有することです。
そして、これは明らかに不可能である =(
インジケータ・バッファに 保存する必要のないデータだけを保存することは可能です。
この場合にも、メモリ消費を抑える方法がいくつかあります。
インジケータ・バッファが必要となるのは、チャート上に画像を表示する必要がある場合と、他のインジケータやExpert Advisorのインジケータ・バッファからデータを取得する必要がある場合です。例えば、テスター(ビジュアライゼーション・モードではない)では、インジケーター・バッファーの代わりにリング・バッファーを使用することができます。これにより、最適化時にメモリを節約することができます。私は最適化の速度を上げることさえできた。インジケータ・バッファからのデータ転送についても同様に、インジケータからデータを取得する他の方法を試してみて、インジケータ・バッファの代わりにリング・バッファを使用することができます。
はい、インジケータ・バッファに 保存する必要のないデータだけを保存することは可能です。
この場合にも、メモリ消費を抑える方法がいくつかあります。
インジケータ・バッファが必要となるのは、チャート上に画像を表示する必要がある場合と、他のインジケータやExpert Advisorのインジケータ・バッファからデータを取得する必要がある場合です。例えば、テスター(ビジュアライゼーション・モードではない)では、インジケーター・バッファーの代わりにリング・バッファーを使用することができます。これにより、最適化時にメモリを節約することができます。私は最適化の速度を上げることさえできた。インジケータ・バッファからのデータ転送と同様に、インジケータからデータを取得する他の方法を試してみて、インジケータ・バッファの代わりにリング・バッファを使うこともできます。
もちろん、すでに興奮していたのに残念だ。
とにかくありがとう。
開発者からの正常な解決策を待つことにします。
もちろん、すでに興奮していたので残念だ。
とにかくありがとう。
開発者からの正常な解決策を待つことにするよ。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
リングバッファ作成クラス:
作者: Konstantin Gruzdev