メタトレーダーのMQL言語でプログラミングする自動売買システム作成サイト メタシス・シーカー

メタトレーダーMQLプログラミング自動売買システム作成サイト メタシス・シーカー
メタトレーダーMQLプログラミング自動売買システム作成サイト メタシス・シーカー メタトレーダー関連書籍 メタトレーダーMQL言語リファレンス日本語翻訳マニュアル 準備中 準備中 このサイト「メタシス・シーカー」について

プログラムの実行【Program Run】

プログラム実行【Program Run】

Immediately after the program has been attached to the chart, it starts working with the init() function. The init() function of an expert advisor or a custom indicator attached to the chart will run just after client terminal has started and history data (this concerns only experts, but not indicators) have been loaded additionally, after the symbol and/or chart period have been changed, after the program has been recompiled in MetaEditor, after inputs have been changed from the window of expert or custom indicator settings. An expert will also be initialized after the account has been changed.
プログラムが、チャートに関連付けられた直ぐ後に、init() 関数が作動し始めます。チャートに関連付けられた エキスパート アドバイザー、カスタム インディケーターの init() 関数は、通貨ペアのチャート期間が変更された後、プログラムが MetaEditor で再コンパイルされた後、エキスパート ウィンドウ、もしくは、カスタム インディケータ の設定が入力が変更された後、ヒストリー データ(エキスパートにのみ関与し、インディケータはない)を、付け加えて読み込んだ後で、クライアント ターミナルが開始されます。エキスパートはアカウントが変更された後にも初期化されます。

Every program attached to a chart completes its work with the deinit() function. The deinit() function runs at the client terminal shutdown, at chart closing, immediately before the symbol and/or chart period is changed, at successful recompiling of the program, at changing of inputs, or at changing of the account. One can see the reason of deinitialization using the UninitializeReason() function during execution of the deinit() function. The deinit() function must be executed within 2.5 seconds. If the function has not completed its execution within this time period, it will be completed forcedly. Scripts are an exception to this rule, as they normally finish their working independently, without any commands from outside. If a script works very long (due to endless loop, foe example), it can be finished by an outside command (at deletion of the script from the chart context menu, at attaching of a new script to the same chart, at closing of the chart, at changing of the symbol and/or chart period). In this case, the deinit() function is limited by 2.5 seconds, too.

チャートに関連付けられたすべてのプログラムは deinit() 関数の動作をもって完了します。deinit() 関数は、クライアント ターミナルが終了するとき、チャートが閉じられるとき、チャートの通貨ペアや期間が変更されたとき、プログラムの再コンパイルが成功したとき、入力値が変更されたとき、アカウントが変更されたとき、などに実行される。非初期化の理由を deinit() 関数が実行されている間に UninitializeReason() 関数を使って、知ることができます。 deinit() 関数は、2.5秒以内に実行する必要があります。もし、その関数が先の時間内に実行を完了することができなかったら、強制終了されます。スクリプトでは、外部からの命令がない、独立的な動作を正常終了したときに、このルールで実行されます。もし、スクリプトの動作がとても長い(無限ループ、障害プログラム)場合、外部命令で終了することができます。(スクリプトがチャートのコンテキスト メニューから削除されたとき、同じチャートに新しいスクリプトが関連付けられたとき、チャートが閉じられたとき、通貨ペアやチャート期間が変更されたとき)この場合、deinit() 関数では、同じく 2.5秒に制限されます。

At incoming of new quotes, the start() function of the attached experts and custom indicators will be executed. If the start() function launched at the preceding quote was running when a new quote came, the new quote will be skipped by the expert. All new quotes income while the program was being executed are skipped by the program until the current execution of the start() function has been completed. After that, the start() function will be run only when a successive new quote incomes. For custom indicators, the start() function will be launched for recalculation after the current chart symbol or timeframe has been changed independently on new quotes incoming. The start() function will not be run when the expert properties window is open.
The latter cannot be opened during the expert execution.
新しい相場価格を受信したとき、関連付けられたエキスパートとカスタム インディケータの start() 関数が実行されます。もし、先の相場価格で start() 関数が起動して動作中に、新しい相場価格を受信した場合、新しい相場価格はエキスパートではスキップされます。プログラムが現在実行している start() 関数が完了するまで、すべての新しい相場価格の受信によるプログラムの実行はスキップされます。その後、start() 関数は、次に続く新しい相場価格を受信したときに実行されます。カスタム インディケータでは、現チャートの通貨ペア、もしくは時間枠が変更され、独立した新しい相場価格を受信した後に start() 関数は、再計算するために起動されます。start() 関数は、エキスパートのプロパティ ウィンドウが開いているときは実行されません。後者はエキスパートの実行中は開くことができません。

Detaching of the program from the chart, change of symbol and/or chart period, change of the account, closing of the chart, as well as shutdown of the client terminal will interrupt execution of the program. If the start() function was being executed at the moment when the stop working command was given, the time remaining for its work is limited by 2.5 seconds. The program can get to know that it is tried to shut it down with the built-in function of IsStopped() and finish its work correctly.
チャートからプログラムを取り外すと、通貨ペアの変更や、チャート期間の変更、アカウントの変更、チャートが閉じられる、クライアント ターミナルのシャットダウンと同様に、プログラムの実行が中断されます。もし、処理停止コマンドが与えられた時、この時点で start() 関数が実行されていた場合は、その処理の残り時間は 2.5秒に制限されます。プログラムは、IsStopped() の組み込み関数でシャットダウンして、正しく処理が終了される事を知ることができます。

Execution of scripts does not depend on incoming quotes. At change of symbol and/or chart period, the script will finish its work and be unloaded from the client terminal.
スクリプトの実行は受信する相場価格に依存しません。通貨ペアや期間の変更したとき、スクリプトは処理を完了し、クライアント ターミナルのメモリから解放されます。

Scripts and experts work in their own thread. Custom indicators work in the main interface thread. If a custom indicator has been called with the iCustom() function, this indicator works in the thread of the program that has called it. Library (imported) functions work in the calling program thread, as well.
スクリプトとエキスパートの処理はそれら自身のスレッドで動作します。もし、カスタム インディケーターが iCustom() 関数で呼び出された場合は、このインディケーターの処理は、それを呼び出したプログラムのスレッドで動作します。同様に、ライブラリ(読み込み済)関数の処理も、呼び出したプログラムのスレッドで動作します。






トップページメタトレーダー関連書籍メタトレーダー日本語翻訳MQL言語リファレンス マニュアルこのサイト「メタシス・シーカー」についてサイトマップ
Copyright(C) 2009 MetaSys-Seeker.net All Rights Reserved.
免責事項:当サイト(メタシス・シーカー)のFx外国為替保証金取引、メタトレーダー、自動売買、システムトレード検証、サンプルプログラム、MQL言語リファレンスマニュアルなどの情報に関しては十分に注意した上で掲載するよう努めておりますが、その正確性を保証するものではありません。万一、当サイトに記載されている情報利用によって損害が生じても当サイト運営者は一切責任を負うものではありません。また、当サイトの内容や情報は予告なく変更、中止されることがありますことを予めご了承ください。掲載情報については、ご利用者自身の判断と責任でご利用ください。