カスタムインジケータ(機能-iCustom)使用時のEA加速度理論について - ページ 4

 
-Aleks-:

なるほど、問題は作り物なんですね。

実際のプロジェクトで 実際の指標となるブレーキを突きつけられたら、議論を続ける覚悟です。

 
-Aleks-:

5の悲しい事実、開発者はこの神聖な意味を説明しないの?

どうやら、建築の問題らしい。興味がなかったんです。

関連するトピックについて、こちらで議論がありました - https://www.mql5.com/ru/forum/8278

Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс. - - Категория: общее обсуждение
 

スターターは、指標を扱う基本を理解していないまま手を出してしまった・・・が、情報は公開されている(記事+Documentation)。

それゆえ、間違った質問や推測が多いのです...。

OpenCLを使用して作成したインジケーターへの別リンク です。ビデオカードに負荷がかかる。

確かに、計算速度を比較するためには、よほど「重い」タスクでないと......。

 
komposter:

ところで、MT4は履歴の一部だけを計算することに非常によく対応しており、ループが最後の1000本を通過する場合、バッファ全体のメモリを消費しません(たとえ50000本が「ウィンドウ内」にある場合でも)。

しかし、私はMT5でこの問題に遭遇しました - 最後の100本しかカウントされていない場合でも、50000本のバーすべてのためにメモリを割り当てます。

本当にそうでしょうか?

どちらのプラットフォームでも、指標バッファは 利用可能なすべてのバー履歴に対して自動的に、同じ方法で割り当てられます。

 
Renat:

本当にそうでしょうか?

どちらのプラットフォームでも、指標バッファは 利用可能なすべてのバー履歴に対して自動的かつ均等に割り当てられています。

ここ半年は確認していませんが、MT4とMT5で1000本のバーを表示した同じインジケータでも、(ウィンドウに多数のバーを表示した場合の)メモリ使用量が大きく違っていました。

今は疑問があります。もしかしたら、ここで取り上げたオブジェクトキャッシュの問題かもしれません。https://www.mql5.com/ru/forum/8278?

Потребление памяти терминалом
Потребление памяти терминалом
  • www.mql5.com
Для чистоты эксперимента установил голый МТ5 в новую папку, открыл демо-счет на сервере MQ, закрыл все графики, установил "макс. - - Категория: общее обсуждение
 
Renat Fatkhullin:

本当にそうでしょうか?

どちらのプラットフォームでも、指標バッファは 自動的に割り当てられ、利用可能なすべてのバーヒストリーに同じものが使用されます。

MT4で問題が発生しました。チャートにインジケータを重ね、そのバッファからデータを収集し、数学的な計算と分析を行うというタスクを持つスクリプトがあります。

ターミナル用に割り当てられたメモリ(最大)はすぐに底をつき、その結果、スクリプトはインジケータからバッファのゼロ値を取得するようになります。チャートからインジケータを削除した瞬間、または再呼び出し後に、iCustomを通して異なるパラメータで強制的にRAMクリアすることは可能ですか?)

 
-Aleks-:

MT4で問題に直面しました。チャートにインジケータを実装し、そのバッファからデータを収集し、数学的な計算と分析を実行するスクリプトがあります。

ターミナル用に割り当てられたメモリ(最大)はすぐに使い果たされ、その結果、スクリプトはインジケータからバッファのヌル値を取得し始めます。インジケータをチャートから取り外した時、または再呼び出し後に、iCustomを通して異なるパラメータで強制的にRAMクリアすることは可能でしょうか?)

また、パラメータの異なるiCustomを具体的にいくつ作成したのでしょうか?

何十何百とある(と思われる)場合、外部指標内では何もできない。メモリを消費しない計算単位として、自作EA内部にのみ挿入することができます。

MetaTrader 5では、要求されたすべての指標を完全に制御することができますが、そこでも「私は何百もの指標を作成し、削除します」というゲームは、深刻なコストを伴っています。

 
Renat Fatkhullin:

また、パラメータの異なるiCustomを具体的にいくつ作成したのでしょうか?

何十、何百とある(と思われる)場合、外部指標の中では何もできない。メモリを消費しない計算単位としてEA内に埋め込むしかないでしょう。

MetaTrader 5では、要求されたすべての指標を完全に制御することができますが、「私は何百もの指標を作成し、削除します」というゲームは、深刻なコストを伴います。

1つのインジケータを作成し、そのパラメータを変更するのです。iCustom関数は、別のインジケータのデータを要求してインジケータ自体で使用されます - このようにするのが簡単だったのです。
この束の中のすべてのリクエストを数えると、約7個のバッファが得られることになる。
iCustom関数を使った他の指標ですが、もっとシンプルなものだとスクリプトがカクカクしてしまいます...。の合計が1万人近くに重なります。6ダース目のパスで現在のインジケータがカクッとなる。
メモリが足りなくなるのはわかるのですが、古いデータを使っていないのに、なぜ新しいデータが正しく入力されないのでしょうか?

MT4では、なぜメモリからインジケータを削除する機能がないのですか、実装が非常に困難です。

 
インジケーターの枚数が多い場合は、EAに統合する。それ以外の出口はない。
 
Renat Fatkhullin:
インジケータのコピー数が多い場合は、Expert Advisorに統合してください。それ以外の解決策はない。

ここではEAの話ではなく、スクリプトの話をしています。スクリプトは、指標を分析する。この点で、メモリを解放する解決策はありますか? 何回かパス(インジケータのパラメータとその分析を変更)した後にチャートを閉じて開くようにスクリプトを教えれば、メモリをクリアすることができるのでしょうか?

Alexander Laur:

なぜExpert Advisorに、後で削除しなければならない、特に一度も削除しないインディケータを作成 するのですか?

EAのコードに、インジケーターの計算と同様の計算を行う関数を入れてください。 この関数では、計算のためのパラメータを簡単に変更でき、メモリオーバーになることはありません。さらに、私が理解しているように、必要のないすべてのバーでの計算を回避することができます。また、iCustom()関数も不要になります。

期間中のすべてのバーが必要なだけです。スクリプトは機能します - ある種の指標の分析に普遍的です - 各指標のためにスクリプトを書くのは高価です。 コンパイラが(特定のコマンドに従って)指標をアドバイザー/スクリプト/指標に挿入するだけなら、人生は違ってきますよ。ああ、夢か...。