IsStopped
Проверяет принудительное завершение работы mql5-программы.
boolIsStopped();
Возвращаемое значение
Возвращает true, если в системной переменной _StopFlag содержится значение, отличное от 0. Ненулевое значение записывается в переменную _StopFlag, если поступила команда завершить выполнение mql5-программы.
В этом случае необходимо как можно быстрее завершить работу программы, в противном случае программа будет завершена принудительно извне через 3 секунды.
何もわかっていないふりをするのはやめよう:背景はフラッシュドライブからドラッグできる。他にも方法はいくらでもある。メインは引きずり出すことです。他人のパソコン自体でやる必要もない。
パスワードを転送し、他人のコンピュータでパスワード保存を有効にして、それを穴と呼んでいるのです。パスワード保存を有効にしたことをギリギリまで隠していたんですね。
結論は論理的です。あなたのクローンのうち12人は、すでに再犯で釈放されています。
デバッガで、変数をハイライトするMetaEditorの機能を変更し、使用するすべての変数を自動的に作成する予定はありますか?Qt Creator IDEやVS.NETと同じように、「Qt Creator IDE」を使用することができます。
はい、そうします。
グローバル/スタティック変数の初期化に関する リクエスト#1416121をご確認ください。
行列に並ぶ。アプリケーションは、まだ2時間しか経っていない。
一般的に、このような質問はフォーラムで行うべきものです。多くの人に影響を与えることができるからです。勝手に引用して、回答させていただきます。
こんにちは。間違っていたら訂正してください。静的変数とグローバル変数は、プログラムを開始する前に一度だけ初期化されます(つまりOnInit()関数です)。従って、プログラムが初期化された場合(OnDeinit()関数が呼ばれた場合)、プログラムはグローバル変数/静的変数の値を「忘れ」、次の実行までにOnInit()で初期値を設定する必要があります。
mql4のExpert Advisorで面白い事実を発見しました。グローバル/スタティック変数を宣言しておけば、例えばOnDeinit()の後、入力パラメータを変更しても、これらの変数の値はリセット されません。しかし、指標では-。 どうすればいいのか?これはエラーのようです。
mql5 (build 1241 x64)で確認しました - 似たようなものです。エキスパートアドバイザーでは - リセットされませんが、インジケーターでは - リセットされます。
これは計画的な行動です。さらに、ドキュメントに 明記されている
インジケーターのロードとアンロード
インジケーターは次のような場合に読み込まれます。
-チャートへのインジケータの取り付け。
-端末の起動(端末が前回終了する前にチャートにインジケータが装着されていた場合)。
-テンプレートのロード(テンプレートにチャートに添付されたインジケータが含まれている場合)
-プロファイルを変更 する(プロファイル・チャートの1つにインジケータが添付されている場合)。
-チャートのシンボルや期間を変更し、インジケータを 取り付ける。
- インジケーターのリコンパイルに成功 した後、このインジケーターがチャートに添付されている場合
-インジケータ入力パラメータの 変更。
以下の場合、インジケータはアンロードされます。
- チャートからインジケータをデタッチ するとき。
-端末の クローズ(チャートにインジケータが装着されている場合)。
-インジケータがチャートに添付されている場合、テンプレートの読み込みを 行う。
インジケーターが装着されたチャートを閉じる- ターミナルを閉じる(チャートにインジケーターが装着されている場合)。
-プロファイルの 変更、変更するプロファイルのチャートの1つにインジケータが装着されている場合。
-チャートのシンボルや期間を 変更する。
-インジケーターの入力パラメータを 変更する。
アンロードとローディングは、すべてのものを完全に初期化する必要があります。
ファイブでは、ご指摘の通り、似たような状況です。
確かに、歴史的にそうでしたので、MQL4ではまずこの動作を変更しました(エキスパートと同じように、つまり皆さんが期待する動作にするために)。しかし、この初期設定に基づく旧来の指標には、多くの疑問が生じました。帰らざるを得なくなった
5では、アーキテクチャの関係ですぐにそうなった。パラメータを変更すると、古いパラメータを持つ古いインジケータは破棄され、変更されたパラメータを持つ新しいインジケータが作成されます。
念のため、ここに複製しておきました。
これは計画的な行動です。しかも、ドキュメントに明確に記載 されています。
今、ここと ここを見て きました。それに、スタティック・メモリ・クラスを扱っているのだから、論理的だと思う。そして、やはり、プログラムの種類との関係で確立された技術という形で「キャッチ」があるのであれば、静的メモリクラス(スタティック変数とグローバル変数)のドキュメントにも記述するのが良いと思われます。
備考に追加してください。
念のため、ここに複製しておきました。
ここと ここを 見ただけなんですけどね。それに、スタティック・メモリ・クラスを扱っているのだから、論理的だと思う。そして、やはり、プログラムの種類との関係で確立された技術という形で「キャッチ」があるのであれば、静的メモリクラス(スタティック変数とグローバル変数)のドキュメントにも記述するのが良いと思われます。
備考に追加してください。
どんなコメント?プログラムのロード/アンロードについて?
MT5のヘルプです。
確認したところ、インジケータはチャートから削除されましたが、3秒、10秒、3分...と動き続けています。(IsStoppedは そこでチェックされなかったので、これは問題外です)。
1) 「3秒間強制終了する」と書いてあるのに、実際には動作しないのはなぜですか?
2) チャートから削除されたとき、ユーザーがテストを停止したときなど、プロセス(スクリプト、インジケータ、Expert Advisor、テスターエージェント)が強制的に終了しないのはなぜですか?