MQL4に関する質問です。 - ページ 2

 
komposterさん、まあ、助けてくださいよ。
元の質問に答えてください。
こっちは奇跡が起きているんだ...。
 
メッセージボックスのことでしょうか?
つまり、自分の目で確認すること?
 
はい、もしくは何とか。
ボタンを押す前にCFがしばらくハングアップしていると、後からEAを接続することができない、という結論に達しました。
任意のMBをdeinitに入れ、EAをロード、アンロードする。
1.素早くOKを出せば、EAを再接続することが可能なままです。
2.しばらく待つと、EAが参加しなくなります。

理解した時には気が狂いそうになりました...。
 
ログを読んでみましたか?=))))
最初の投稿でお伝えしたとおり、deinit は 2.5 秒間実行されます。
ボックスで処理が遅延し、EAが強制終了する。 その後、動作しない(今わかった)
ちなみに、スクリプトでは動作しています ;)
 
あのね、その...。
好きなようにやらせておけばいいのですが、なぜ(というか、なぜ)その後に次のEAをつなぐという難易度が必要なのでしょうか。

こうなるのが当たり前というか、欠点というか。開発者の方なら教えてくれるかもしれませんが...。
 
もしかしたら開発者が教えて
くれるかもしれない...かもしれない =)
が、今のところ彼らはこの掲示板をほとんど読んでいない(というかほとんど読んでいない?
 
komposter:
deinitの実行時間は2.5秒ですが、ユーザーはそんなに早く反応すべきなのでしょうか?)
やるべきことをファイルに書いておけば、スクリプトがそれを読み込んでMessageBoxを 表示し、その応答に応じて何かをする。
スクリプトがループしていない場合、原則としてスクリプトの終了が長くなることがあります。これは、スクリプトが外部から消滅していない場合、タイムアウトを制御する人がいないためです。
 
ストリングス
スクリプトが無限にループしない場合、そのdeinitは非常に長い時間動作することができます。よ
くわからないんですけどね。ループとdeinitデュレーションはどう関係するのですか?
 
SKif:
ストリングス
スクリプトが無限にループしない場合、そのdeinitは非常に長い時間動作することができます。
よくわからないんですけどね。ループとdeinitの持続時間にはどんな関係があるのでしょうか?
スクリプトに無限ループがある場合、それが無効になるまで実行され(その場合、deinit は 2.5 秒に制限されます)、そうでない場合、最初に起動、次に deinit(ある場合)が動作し、deinit は好きなだけ実行されます。
 
SKif:
よくわからないんですけどね。ループとdeinitのデュレーションにはどんな関係があるのでしょうか?
無限にループするスクリプトは、それ自体では終了しません。外部から終了させることができるだけです(明示的にスクリプトを削除する、新しいスクリプトを掛ける、チャートシンボル/タイムフレームを変更する、チャートを閉じる、ターミナルを閉じる)。スクリプト(および Expert Advisor も)を閉じるコマンドが渡されると、その後すぐに 2.5 秒間の待ち時間が設定されます。スクリプト(またはExpert Advisor)がIsStoppedを チェックしないほど「愚か」な場合、2秒半後に停止フラグが設定され、ループの各反復と関数の各呼び出しの後に自動的にチェックされます。
スクリプトが作業を完了したらdeinitを実行し、上から見ている人はおらず、タイムアウトチェックもありません