mql5言語の特徴、微妙なニュアンスとテクニック - ページ 131

 
fxsaber:

メモリ解放が 唯一の理由です。

メモリはどんなものですか? もし冗長であれば、すでに言われているようにreserve_size=- 1で十分です。そこの人だけ明らかに速度測定で何か間違っている(テスト条件が正しくない、でしょ うか)。

 

私は、指標再帰と呼ぶことにする、興味深い可能性に気づきました。

指標を自分から計算できるようになったとき。

handle=iMA(_Symbol,_Period,per1,0,MaMethod,PriceBase);  
for(int i=0;i<N;i++) handle=iMA(_Symbol,_Period,per2,0,MaMethod,handle);

インジケーターファンには便利かも・・・。

このトピックがすでに取り上げられている場合、繰り返しは学習の母である。

この機能を実証するために、特別にQBでインジケータを 書きました。

 
Nikolai Semko:

私は、指標再帰性と呼ぶべき、興味深い可能性に気づきました。

指標を自分から計算できるようになったとき。

インジケーターファンには便利かも・・・。

このトピックがすでに取り上げられている場合、繰り返しは学習の母である。

この機能を実証するために、特別にQBでインジケータを 書きました。

そうですね...まさか特集とは。必要になってからは、ハンドルの変数名を変えて、そのように書いているだけです。みんな必要なときに使っていると思っていたのに......。

 
Alexey Viktorov:

そうですね...まさか機能だとは思いませんでした。必要になってから、そのまま書きましたが、ハンドルの変数名は変えています。みんな必要なときに使っていると思っていたのに......。

今はループに入れることしか考えていません。インジケータは100回再現できますが、ハンドルは1つだけです。

 
Nikolai Semko:

ループに入れるというのは、今考えたところです。インジケータは100回以上再現できますが、ハンドルは1つしかありません。

ハンドルが1つではなく、変数が1つなんですね。今までの持ち手の価値観がなくなってしまったんですね。また、どのように閉じるのですか?

 
Alexey Navoykov:

ハンドルが1つではなく、変数が1つなんですね。今までの持ち手の価値観がなくなってしまったんですね。また、どのように閉じるのですか?

まあ...

メモリを大量に消費する。本当に、TFを変更するだけで、不要になった内部指標バッファを 解放することができるのです。))

ArrayFreeにねじ込む方法はない。

 
Nikolai Semko: 本当に、TFを変えるだけで、不要な内部指標バッファを 解放することができるのです。))

ArrayFreeをアタッチする方法はない。

TFを変更すると、インジケータの新しいコピーが作成され、古いコピーが破棄されます。

 
Igor Makanu:

TFを変更すると、インジケータの新しいコピーが作成され、古いコピーが破棄されます。

なるほど......それは理解できますね。

私のインジケーターの最大設定(スライダーを右から端まで)でロードしたときのメモリ使用量を見たところ。50MBだったメモリは、400MB程度まで増えています。しかし、インジケータを最小(スライダーを左)に戻しても、メモリは400Mbのままハングアップしています。

これは、計算された100個のインジケーターが、使われていないにもかかわらず、すべてメモリー上にぶら下がっていることを意味します。
TFを変更するとクリアされます。

 
Nikolai Semko:

まあ、それは理解できる。

ただ、私のインジケーターの最大設定(スライダーを右から端まで)に従って、起動時のメモリ使用量を見ただけです。50MBだったメモリは400MBくらいまで増えました。しかし、インジケータを最小(スライダーを左)に戻しても、メモリは400Mbのままハングアップしています。

つまり、計算された100個の指標は、もう使われていないにもかかわらず、すべてメモリにぶら下がっているのです。
TFを変更するとクリアになります。

クラス計算インジケータで包む - バッファをクラスフィールドにバインドする

 
Igor Makanu:

インジケータ計算をクラスで包む - バッファをクラスのフィールドにバインドする

はい、試してみますね。ありがとうございます。
理由: