カスタムイベントを生成 EventChartCustom 関数

関数

イベント操作関数

EventChartCustom 関数

 この関数は、指定したチャートのカスタムイベントを生成します。

 指定したチャートに添付された Expert Advisor または インジケータは、OnChartEvent関数を使用してイベントを処理します。

データ型と構成・戻り値

bool EventChartCustom(①, ②, ③, ④, ⑤);

 戻り値は、イベントを受信するチャートのイベントキューにカスタムイベントが正常に配置された場合は true、失敗した場合は falseを返します。

 発生するエラーについては、GetLastError関数で取得することができます。

引数 [5]

 EventChartCustom関数は 5個の引数で構成されます。


引数名データ型単位初期値説明
chart_idlongチャートID。0は現在のチャートを意味します。
custom_event_idushortユーザーイベントID。
この引数②は整数に変換され、自動的にCHARTEVENT_CUSTOMへ追加されます。
lparamlongOnChartEvent関数から渡される lparam(long型の)パラメータ値。
dparamdoubleOnChartEvent関数から渡される dparam(double型の)パラメータ値。
sparamstringOnChartEvent関数から渡される 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」の順番で押した時の結果になります。問題なく処理は成功しています。

タイトルとURLをコピーしました