mt4 (MetaTrader4)使い倒シストレ

メタトレーダー、自作インジケータ、自作EAで完全自動売買。使えるものは何でも使え。
インジケーター、EA(自動売買システム)製作のご依頼はこちらへ
Googolyen FX Factory
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
Program Run (プログラム実行)
プログラムがチャートに設置されるとすぐにinit()関数が実行される。
チャートに設置されたエキスパートアドバイザー、カスタムインジケータのini()関数は、クライアント端末が開始され過去データが読み込まれた (これはエキスパートだけに関係する)後、チャートの表示期間か通貨が変化した後、 MetaEditorによってプログラムが再コンパイルされた後、エキスパートウィンドウやカスタムインジケータのセッティングが変更された後、に実行される。
エキスパートはアカウントが変化した後に初期化も行う。

チャートに設置された全プログラムはdeinit()関数によって終了する。
deinit()関数はクライアント端末が終了する時、チャートが閉じられる時、チャートの表示期間や通貨が変化する前、プログラムの再コンパイルが成功した時、設定が変化した時、アカウントが変化した時に実行される。
deinit()関数が実行されている間、UninitializeReason()関数を用いて初期化されない原因を見ることができる。
deinit()関数は2.5秒以内に実行終了しなければならない。
もしこの時間内に実行終了しなければ、強制的に終了させられる。
通常は外部からの命令無しで独立的に動作終了するスクリプトもこのルールで実行される。
もしスクリプト実行に多大な時間がかかる (無限ループや、悪いプログラムが原因)なら外部命令 (チャートメニューからのスクリプト削除、同一チャートへの新スクリプトの設置、チャートの終了、チャート表示期間や通貨の変化) によって終了される。
この場合でも、deinit()関数は2.5秒の制限を持つ。

相場価格が更新された時、エキスパートとカスタムインジケータのstart()関数は実行される。
もし相場価格が更新された時に、前の相場価格を用いてstart()関数が実行されていたら、更新された相場価格はエキスパートで処理されない。
プログラムが実行されている間に更新された全相場価格は、start()関数の現在の処理が完了するまで処理されない。
その後、最新の相場価格を用いてstart()関数は処理を行う。
カスタムインジケータにおいては、相場価格と独立した通貨や時間枠の変更ではstart()関数は再計算を行う。
エキスパートプロパティウィンドウが開いている間はstart()関数は実行されない。
エキスパートプロパティウィンドウはエキスパート実行時、開くことはできない。

チャートからプログラムを削除すると、通貨変更、時間枠変更、アカウント変更、チャートを閉じる、クライアント端末終了、と同様にプログラムの実行を遮断する。
もし実行中断の命令を受けた瞬間に、start()関数が実行していたなら、2.5秒以内に終了させられる。
プログラムは標準関数であるIsStopped()関数を用いてプログラムを終了するようにしなければならず、正確に動作を終了しなければならない。 スクリプトの実行は相場価格と独立ではない。通貨変更、チャート時間枠の変更において、スクリプトは処理を終わらせ、クライアント端末のメモリを解放する。スクリプトとエキスパートの処理は同一スレッドで行われる。カスタムインジケータでは主スレッドで処理が行われる。もしカスタムインジケータ内でiCustom()関数が呼ばれていたら呼ばれたプログラムのスレッド内で処理が行われる。ライブラリ関数も同様に呼ばれたプログラムのスレッド内で処理が行われる。

にほんブログ村 為替ブログ FX システムトレード派へ
Trackback
この記事のトラックバックURL
≪この記事へのトラックバック≫
Designed by aykm.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。