EventSetMillisecondTimer
この関数はクライアント端末にこのエキスパートアドバイザーまたは指標のためのタイマー イベントは1秒未満の間隔で生成されるべきだと示します。
bool EventSetMillisecondTimer( |
パラメータ
milliseconds
[in] タイマーイベントの頻度を定義するミリ秒数
戻り値
実行成功の場合は true、それ以外の場合は falseエラーコードを受け取るには GetLastError() 関数が呼ばれるべきです。
注意事項
この機能は、高分解能タイマーが必要な場合のために設計されています。言い換えると、タイマーイベントは1秒に1回よりも頻繁に受信する必要があります。1秒以上の時間軸を持つ従来のタイマーが充分である場合 EventSetTimer() が使用されます。
ストラテジーテスターでは、最小で1000ミリ秒の間隔が使用されます。一般的に、タイマー期間が減少する際にはタイマーイベントのハンドラがより頻繁に呼び出されるようにテスト時間が増加します。リアルタイムモードで操作している場合、タイマーイベントは、ハードウェアの制約のために10〜16ミリ秒に1回以下で生成されます。
通常、この関数は OnInit() 関数またはクラスコンストラクタで呼ばれるべきです。タイマーからのイベントを処理するには、エキスパートアドバイザーまたは指標は OnTimer() 関数を持つべきです。
それぞれのエキスパートアドバイザーと指標は独自のタイマーを操作しそのタイマーのみからイベントを受信します。MQL5 プログラムが停止した場合、作成されて EventKillTimer() 関数で無効にされていないタイマーは強制的に破壊されます。
1 つのプログラムでは 1 つのタイマーのみが起動出来ます。各MQL5アプリケーションとチャートは、新たに到着したイベントが配置される独自のイベントキューを持っています。キューにすでにタイマーイベントがある、またはこのイベントが処理段階にある場合、新しいタイマーイベントは MQL5 アプリケーションキューには追加されません。
EventSetTimer
この関数はクライアント端末にこのエキスパートアドバイザーまたは指標のためのタイマーイベントは指定された時間軸で生成するべきだと示します。
bool EventSetTimer( |
パラメータ
seconds
[in] タイマーイベントの発生頻度を決定する秒数
戻り値
成功の場合は true、それ以外の場合は false。エラーコードを受け取るには GetLastError() 関数が呼ばれるべきです。
注意事項
通常、この関数は OnInit() 関数またはクラスコンストラクタで呼ばれるべきです。タイマーからくるイベントを処理するために,エキスパートアドバイザーはOnTimer() 関数を持つべきです。
エキスパートアドバイザーならびに指標は、全て独自のタイマーで動作しそこからのみイベントを受けとります。作成されたタイマーは EventKillTimer() 関数で無効にされていない限り MQL5 プログラムの操作の終了時に強制的に破壊されます。
プログラムでは複数のタイマーを実行することは出来ません。各MQL5アプリケーションとチャートは、新たに到着したイベントが配置されるイベントの独自のキューを持っています。タイマーイベントがキューに存在するまたは処理中の場合、新しいタイマーイベントは MQL5 プログラムのキューに加えられません。
EventKillTimer
Timer イベントの発生を停止する必要があるクライアント端末を指定します。
void EventKillTimer(); |
戻り値
なし
注意事項
この関数は、一般的に、EventSetTimer() 関数がOnInit() 関数から呼ばれた場合、OnDeinit().関数から呼ばれなければなりません。EventSetTimer() 関数がクラスのコンストラクタで呼び出されている場合、この関数はデストラクタからも呼び出せます。
エキスパートアドバイザーならびに指標は、全て独自のタイマーで動作しそこからのみイベントを受けとります。作成されたタイマーは EventKillTimer() 関数で無効にされていない限り MQL5 プログラムの操作の終了時に強制的に破壊されます。
EventChartCustom
この関数は指定されたチャートのカスタムイベントを生成します。
bool EventChartCustom( |
パラメータ
chart_id
[in] チャート識別子( 0 は現在のチャート)
custom_event_id
[in] ユーザイベントの ID。この識別子は自動的に CHARTEVENT_CUSTOM 値に足され、整数型に変換されます。
lparam
[in] OnChartEvent 関数に渡される long 型のイベントパラメータ
dparam
[in] OnChartEvent 関数に渡される double 型のイベントパラメータ
sparam
[in] OnChartEvent 関数に渡される string 型のイベントパラメータ(文字列が 63 文字より長い場合は切り捨てられます)
戻り値
カスタムイベントがイベントを受信するチャートのイベントキューに正常に配置された場合は true を返します。失敗の場合 false を返します。エラーコードを取得するには GetLastError() を使用します。
注意事項
エキスパートアドバイザや特定のチャートに付属する指標は OnChartEvent(int event_id, long& lparam, double& dparam, string& sparam) を使用してイベントを処理します。
OnChartEvent() 関数の入力パラメータはイベントの種類ごとにイベント処理に必要とされる一定の値を有しています。パラメータで受け渡しされるイベントと値は以下の表に記載されています。
イベント | id パラメータ値 | lparam パラメータ値 | dparam パラメータ値 | sparam パラメータ値 |
キーストロークイベント | CHARTEVENT_KEYDOWN | 押されたキーのコード | 繰り返し回数(ユーザのキーの長押しがキーストロークの繰り返しとみなされた場合の繰り返し回数) | キーボードボタンの状態を記述するビットマスクの文字列値 |
マウスイベント (チャートに CHART_EVENT_MOUSE_MOVE=true プロパティが設定されている場合) | CHARTEVENT_MOUSE_MOVE | 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 | — | — | 移動したグラフィックオブジェクトの名称 |
LabelEdit グラフィックオブジェクトの入力ボックスでのテキスト編集完成のイベント | CHARTEVENT_OBJECT_ENDEDIT | — | — | テキスト編集が完成した LabelEdit グラフィックオブジェクトの名称 |
チャートでの変更イベント | CHARTEVENT_CHART_CHANGE | — | — | — |
N 番号を使用したユーザイベントID | CHARTEVENT_CUSTOM+N | EventChartCustom() 関数で設定された値 | EventChartCustom() 関数で設定された値 | EventChartCustom() 関数で設定された値 |
例:
//+——————————————————————+ string buttonID=“Button”; //— 情報を表示するラベルを作成する //— } //— イベントがユーザイベントだとチェック |
参照
クライアント端末イベント、イベント処理関数
Originally posted 2019-07-30 09:45:12.