インジケータでのOnDeinit - ページ 3

 

OnDeinitの最初にPrintを行い、クライアントターミナルを閉じた後、Expertのログを見てOnDeinitが呼ばれたことを確認しましょう!

以下は、あなたのエラーです。

for(int i=ObjectsTotal()-1;i>=0;i--)

自分で作ったモノは、はっきりわかるんですね。

ObjectsTotalと ObjectNameを参照せずに、名前を保持したまま削除する。

PS 新しいビルドでは、プレフィックスでオブジェクトのグループを削除する機能が追加されました。オブジェクトの名前に同じ一意の接頭辞を使用すると便利です

 
stringo:

OnDeinitの最初にPrintを行い、クライアントターミナルを閉じた後、EAのログを見てOnDeinitが呼ばれたことを確認する!

以下は、あなたの間違いです。

自分で作ったモノは、はっきりわかるんですね。

ObjectsTotalとObjectNameを参照せずに、それぞれの名前を保存して削除します。

PS 新しいビルドでは、プレフィックスでオブジェクトのグループを削除する機能が追加されました。オブジェクトの名前に同じ一意の接頭辞を使用すると便利です

プレフィックスによるグループ削除がどのように機能するか、すでにテストする機会がありました。素晴らしいが、以前のビルドのコンパイルされたコードでも動作しない。そのため、今のところ個人的な用途にのみ使用することができます。そのためにユーザーに無理にアップデートさせる必要はない。多くは、アップデートをDCサーバーにアップロードするまで、アップデートの方法さえ知らない。
 
stringo:

実は、すべてのプログラムにおけるdeinitは、ターミナルを閉じたときに呼び出されます。

非初期化の原因には、 特別なコードも あります。REASON_CLOSE

また、インジケーターバッファをリセットするのかしないのか?
 
eevviill:
また、インジケーターバッファをリセットするのかしないのか?
インジケーターバッファのリセット」とは?
 
eevviill:
また、インジケーターバッファをリセットするのかしないのか?
すべてがリセットされます。結局、端末が閉じてしまう )))
 
stringo:

インジケーターの状況は解決されました。

ここがポイントなのですが、ティック到着時だけでなく、最初の描画時や欠落した履歴の到着時にもインジケータは計算されます。

1.新しいティックが到着 - インジケータが計算されます。

2.欠落していたヒストリーが到着し、最後の端末のスタートから最後のティックまでのデータの間の穴を塞ぎます。指標を算出しています。しかし同時に、新しいバーの条件もないのです

この問題を解決するためには、バーの数を確認する必要があります。このくらい

ふむ、EMPTY_VALUE バッファ初期化ブロックをIniteに入れる。問題は残る。
 

initとdeinitの両方で、バッファ初期化ブロックが空の値でスタックしました。結果は同じです。つまり、存在しないのです。

開発者のコメントを待っています。

 
Scriptong:
すべてがゼロにリセットされます。結局、端末が閉じてしまう )))
そうそう。
 
eevviill:
ふむ。バッファ初期化ブロックEMPTY_VALUEは、Initeに置かれる。

なぜ?イナイトバッファはまだ割り当てられていない可能性があります。

バッファが重くなった時(新しい履歴データのバッチが到着した時)はどうでしょうか?

このような場合、バッファの初期化は、指標計算の 前に、指標全体を再計算することが明らかな場合に行われます

 
stringo:

なぜ?イナイトバッファはまだ割り当てられていない可能性があります。

また、バッファが非常に大きい場合(新しい履歴データのバッチが来た)にはどうでしょうか?

このような場合、バッファの初期化は、指標の計算前に、指標全体を再計算することが明らかな場合に行われます

OKdeinitでもゼロイングは機能しません。