特殊関数【Special functions】

There are three functions with pre-defined names in MQL4:

MQL4 には、前もって定められた名前の3つの関数があります。

init() is a function to be called during the module initialization. If it is not available, no function will be called at initialization.

init() は、モジュールの初期化時に呼び出される関数です。もし、それが利用可能でない場合は、初期化時に呼び出しされる関数はありません。

start() is the basic function. For experts, it is called after the next tick has income. For custom indicators, it is called at recalculation after the indicator has been attached to the chart, at opening of the client terminal (if the indicator is attached to the chart), and after the next tick has income, as well.
For scripts, it is executed immediately after the script has been attached to the chart and initialized. If there is no start() function in the module, the module (expert, script, or custom indicator) cannot be launched.

start() は、基本関数です。エキスパートでは、次のティックが発生した後に呼び出されます。カスタム・インディケーターでは、チャートに関連付けられた後の再計算時、クライアント・ターミナルが開いたとき(インディケーターがチャートに関連付けられている場合)に呼び出されます。および、次のティックが発生した場合も同様です。スクリプトでは、スクリプトがチャートに関連付けられて初期化された直後に実行されます。もし、モジュール内に start() 関数が無い場合、そのモジュール(エキスパート、スクリプト、カスタム・インディケーター)を起動することはできません。

deinit() is a function to be called during deinitialization of the module. If it is not available, no function will be called at deinitialization.

deinit() は、モジュールの終了時に呼び出される関数です。もし、それが利用可能でない場合は、終了時に呼び出される関数はありません。

Pre-defined functions can have some parameters. However, no parameters will be taken from outside when these functions are called by the client terminal, but the default values will be used. Functions of start(), init(), and deinit() can be called from any point of the module according to the common rules, equally to other functions.

定義済みの関数は、いくつかのパラメータを指定できます。ただし、これらの関数がクライアントターミナルによって呼び出されるとき、外部からパラメータの取得をすることはできません。しかし、規定値は使用することができます。start()、init()、deinit() の関数は、他の関数と同様に、共通ルールに従って、モジュールの任意の場所から、呼び出すことが出来ます。

It is not recommended to call start() function from init() function or to perform trade operations, as chart data, market prices, etc. can be incomplete by the moment of the module initialization. The init() and deinit() functions must finish their working as soon as possible and, in no case, shall they loop when trying to start its full-fledged working before the start() function is called.

init() 関数から start() 関数を呼び出したり、トレード操作をすことは推奨できません。モジュール初期化の最中は、チャートデータや市場価格が不完全である場合があります。init() と deinit() 関数は出来るだけ早く動作を終了する必要があります。そして、start() 関数が呼び出される前に、その完全な動作を完了し、始めようとするとき処理中である場合はあり得ません。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">