- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnChartEvent
この関数はChartEventイベントが発生するときに指標やEAで呼び出されます。この関数は、ユーザまたはMQL5プログラムによって行われたチャートの変更を処理するためのものです。
void OnChartEvent()
|
パラメータ
id
[in] ENUM_CHART_EVENT列挙体からのイベントID
lparam
[in] long型イベントパラメータ
dparam
[in] double型イベントパラメータ
sparam
[in] string型イベントパラメータ
戻り値
なし
注意事項
事前定義されたOnChartEvent()関数を使用して処理出来るイベントには11種類あります。CHARTEVENT_CUSTOMからCHARTEVENT_CUSTOM_LASTまでの65535のIDはカスタムイベントのために提供されています。カスタムイベントの作成にはEventChartCustom()関数が使用されます。
ENUM_CHART_EVENT列挙体からの短いイベントの記述
- CHARTEVENT_KEYDOWN — チャートウィンドウがフォーカスされている時のキー押下
- CHARTEVENT_MOUSE_MOVE — マウスの移動、マウスボタンクリック(チャートのCHART_EVENT_MOUSE_MOVE=trueの場合)
- CHARTEVENT_OBJECT_CREATE — グラフィックオブジェクトの作成(チャートの CHART_EVENT_OBJECT_CREATE=trueの場合)
- CHARTEVENT_OBJECT_CHANGE — プロパティダイアログを介してのオブジェクトプロパティ変更
- CHARTEVENT_OBJECT_DELETE — グラフィックオブジェクト削除(チャートのCHART_EVENT_OBJECT_DELETE=trueの場合)
- CHARTEVENT_CLICK — チャートのクリック
- CHARTEVENT_OBJECT_CLICK — チャートに属するグラフィックオブジェクトでのマウスクリック
- CHARTEVENT_OBJECT_DRAG — マウスを使用してのグラフィカルオブジェクトのドラッグ
- CHARTEVENT_OBJECT_ENDEDIT — グラフィックオブジェクトの入力ボックスのテキスト編集(OBJ_EDIT)の完成
- CHARTEVENT_CHART_CHANGE — チャート変更
- CHARTEVENT_CUSTOM+n — カスタムイベントID(nは0〜65535)CHARTEVENT_CUSTOM_LAST — カスタムイベントの最大の使用可能なID(CHARTEVENT_CUSTOM +65535)
すべてのMQL5プログラムは、アプリケーションのメインスレッド以外のスレッドで動作します。メインのアプリケーションスレッドは、すべてのWindowsシステムメッセージを処理し、この処理の結果、独自のアプリケーション用のWindowsメッセージを生成します。たとえば、チャート上でマウスを動かすと(WM_MOUSE_MOVEイベント)、後のアプリケーションウインドウでのレンダリングのためにいくつかのシステムメッセージが生成され、内部メッセージがチャート上で起動されたエキスパートや指標に送信されます。EAまたは指標が既にマウス移動イベントを受信している間に、メインアプリケーションスレッドがWM_PAINTシステムメッセージをまだ処理していない(したがって、まだ変更されたチャートをレンダリングしていない)状況が発生する可能性があります。この場合、チャートプロパティCHART_FIRST_VISIBLE_BARはチャートがレンダリングされた後にのみ変更されます。
各イベントタイプに対して、OnChartEvent()関数の入力には、そのイベントを処理するために必要な特定の値があります。この表では、パラメータを介して渡されるイベントと値が一覧できます。
イベント |
'id'パラメータ値 |
'lparam'パラメータ値 |
'dparam'パラメータ値 |
'sparam'パラメータ値 |
---|---|---|---|---|
キーストロークイベント |
CHARTEVENT_KEYDOWN |
押下されたボタンのコード |
キーが長押しされた状態で生成されたキー押下の数 |
キーボードのキーの状態を表すビットマスクの文字列値 |
マウスイベント(チャートのCHART_EVENT_MOUSE_MOVE=trueの場合) |
CHARTEVENT_MOUSE_MOVE |
X座標 |
Y座標 |
マウスキーの状態を表すビットマスクの文字列値 |
マウスホイールイベント(チャートのCHART_EVENT_MOUSE_WHEEL=trueの場合) |
CHARTEVENT_MOUSE_WHEEL |
キーとマウスボタンの状態のフラグ、カーソルのX座標とY座標。例をご覧ください。 |
マウスホイールスクロールのデルタ値 |
— |
グラフィックオブジェクト作成(チャートのCHART_EVENT_OBJECT_CREATE=trueの場合) |
CHARTEVENT_OBJECT_CREATE |
— |
— |
作成したグラフィックオブジェクトの名称 |
プロパティダイアログを介してのオブジェクトプロパティ変更 |
CHARTEVENT_OBJECT_CHANGE |
— |
— |
変更したグラフィックオブジェクトの名称 |
グラフィックオブジェクトの削除(チャートのCHART_EVENT_OBJECT_DELETE=trueの場合) |
CHARTEVENT_OBJECT_DELETE |
— |
— |
削除したグラフィックオブジェクトの名称 |
チャート上でのマウスクリック |
CHARTEVENT_CLICK |
X座標 |
Y座標 |
— |
グラフィックオブジェクトでのマウスクリック |
CHARTEVENT_OBJECT_CLICK |
X座標 |
Y座標 |
イベントが発生したグラフィック•オブジェクトの名称 |
マウスでのグラフィックオブジェクトの移動 |
CHARTEVENT_OBJECT_DRAG |
— |
— |
移動したグラフィックオブジェクトの名称 |
"Input field"(入力フィールド)グラフィックオブジェクトのテキスト編集の完成 |
CHARTEVENT_OBJECT_ENDEDIT |
— |
— |
テキスト編集が完成した「入力フィールド」グラフィックオブジェクトの名称 |
プロパティダイアログウィンドウでのチャートのサイズ変更やチャートのプロパティ変更 |
CHARTEVENT_CHART_CHANGE |
— |
— |
— |
N番号を使用したカスタムイベント |
CHARTEVENT_CUSTOM+N |
EventChartCustom()関数で定義された値 |
EventChartCustom()関数で定義された値 |
EventChartCustom()関数で定義された値 |
チャートイベントリスナーの例
//+------------------------------------------------------------------+
|
参照
EventChartCustom、Types of chart events、Event handling functions、Program running、Client terminal events