EventChartCustom 関数
この関数は、指定したチャートのカスタムイベントを生成します。
指定したチャートに添付された Expert Advisor または インジケータは、OnChartEvent関数を使用してイベントを処理します。
データ型と構成・戻り値
bool EventChartCustom(①, ②, ③, ④, ⑤);
戻り値は、イベントを受信するチャートのイベントキューにカスタムイベントが正常に配置された場合は true、失敗した場合は falseを返します。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [5]
EventChartCustom関数は 5個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | chart_id | long | - | - | チャートID。0は現在のチャートを意味します。 |
② | custom_event_id | ushort | - | - | ユーザーイベントID。 この引数②は整数に変換され、自動的にCHARTEVENT_CUSTOMへ追加されます。 |
③ | lparam | long | - | - | OnChartEvent関数から渡される lparam (long型の) パラメータ値。 |
④ | dparam | double | - | - | OnChartEvent関数から渡される dparam (double型の) パラメータ値。 |
⑤ | sparam | string | - | - | OnChartEvent関数から渡される sparam (string型の) パラメータ値。文字列が 63文字を超える場合は切り捨てられます。 |
イベントの種類ごとに、OnChartEvent関数の入力パラメータには、このイベントの処理に必要な値が明示されます。このパラメータを介して渡されるイベントと値はこちらになります。
使用例
EventChartCustom関数によるOnChartEvent関数実行成否の確認
EventChartCustom関数を使って OnChartEvent関数から正常に値を取得できたかを確認します。
このコードは、キーボードを押した時に OnChartEvent関数が正常に値を取得できているかのを見ています。
コード
// EventChartCustom関数によるOnChartEvent関数実行成否の確認
#property strict
void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam)
{
if(id == CHARTEVENT_KEYDOWN) {
short sym = TranslateKey((int)lparam);
if(sym > 0) {
Print("キーコード:", StringFormat("%.X", lparam), "(", lparam,") 押したキーのUnicode:", StringFormat("%.X", sym), "(", sym, ") 押したキー:", ShortToString(sym));
} else {
Print("キーコード:", StringFormat("%.X", lparam), "(", lparam,") Unicodeに変換できないキーコードです");
}
bool tf = EventChartCustom(0, (ushort)id, lparam, dparam, sparam);
Print("処理の成否:", tf, " id=", id, " lparam:", lparam, " dparam:", dparam, " sparam:", sparam);
}
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
結果は、キーボード「a」「1」の順番で押した時の結果になります。問題なく処理は成功しています。