トップ  >  リファレンス  >  MQL4プログラム  >  クライアントターミナルイベント
スポンサーリンク
検索
カスタム検索
リファレンスツリー
オススメ
クライアントターミナルイベント



Init


クライアントターミナルがプログラム(EAとカスタムインジケータ)をロードした直後に、
OnInit()イベントハンドラによって送信される初期化イベント。
グローバル変数の初期化を開始します。

このイベントは、通貨ペアまたはチャート時間軸を変更した後にも生成されます。
またプログラムが再コンパイルされた時、
EA・カスタムインジケータの設定画面からインプットパラメータを変更した時、
アカウントが変更された時にも生成されます。




Deinit


プログラム(EAとカスタムインジケータ)がアンロードされる前に、
クライアントターミナルはプログラムにDeinitイベントを送信します。
Deinitは、
クライアントターミナルが閉じられた時、
チャートが閉じられた時、
時間軸が変更される直前、
プログラムが再コンパイルされた(コンパイルが成功した時)時、
アカウントが変更された時に生成されます。

Deinitの理由OnDeinit()関数へ渡される引数から得られます。
OnDeinit()関数実行は2.5秒に制限されています。
この時間内に関数の処理が完了しない場合、強制に処理終了となります。





Start


Startイベントはスクリプト起動時の為のイベントで、スクリプトロード時に送信されます。
このイベントはOnStartハンドラによって処理されます。
StartイベントはEAまたはカスタムインジケータに送信されません。




NewTick


NewTickイベントは、新しいクォートがある場合に生成されます。
それはEAのOnTick()関数で処理されます。

前のクォートでOnTick関数が処理されている時に新しいクォートを受信した場合、
新しいクォートはEAによって無視されます。
これは対応するイベントがキューに格納出来ないからです。

プログラム実行中に受信した全ての新しいクォートは、OnTick()関数が処理完了するまで無視されます。
関数の処理完了後に新しく受信したクォートのみ実行されます。
NewTickイベントは、自動売買が許可されているかどうかに関係無く生成されます。
自動売買の禁止はEAからのオーダー送信だけが許可されていないだけで、
EAの処理は保たれている事を示します。

ターミナルの自動売買ボタンを押す事による自動売買の禁止で、OnTick関数の現在の処理が停止する事はありません。
またEAのプロパティウィンドウが開いている時はOnTick()関数が開始されません。
管理人の勝手なコメント:
EAプロパティを開いている時にOnTick関数が開始されないと記載されていますが、
恐らくEAをチャートに適用した時に初めに開かれるプロパティウインドウの時だけだと思います。
開始というニュアンスで書かれているのもその為だと思われます。
稼働済みのEAのプロパティウインドウを開いた場合はOnTick関数は普通に継続して処理されます。





Calculate


Calculateイベントは、インジケータでのみ発生します。
価格データの変更があった時にイベント発生します。
これはOnCalculate関数で処理されます。




Timer


Timerイベントは、クライアントターミナルによって定期的に生成されます。
EventSetTimer()関数によってタイマーを起動させてEAによって定期的に生成されます。

通常、EventSetTimer()関数はOnInitで呼び出します。
Timerイベントの処理はOnTimer()関数で実行します。
EAの処理が完了した後、通常はOnDeinit関数が呼ばれた時に、
EventKillTimer()関数を使用してタイマーを破壊する必要があります。




Tester


Testerイベントは、EAのテスト完了後に生成されます。
イベントはOnTester()関数によって処理されます。




ChartEvent


ChartEventイベントは、ユーザーがチャート上で以下の様な操作した時にクライアントターミナルによって生成されます。

・対象のチャートウインドウがフォーカスされている時に、キーボードのキーを押下。
グラフィカルオブジェクトが作成された
・グラフィカルオブジェクトが削除された
・グラフィカルオブジェクトがマウスでクリックされた
・グラフィカルオブジェクトがマウスで移動された
・LabelEditオブジェクトでテキスト編集が終わった


またカスタムイベントがあり、EventChartCustom()関数を使用してMQL4プログラムによってEAに送信する事が出来ます。
イベントはOnChartEvent()関数によって処理されます。

スポンサーリンク



Copyright ©2015 MT4でEA自作しちゃお〜 All Rights Reserved.


Top

inserted by FC2 system