チャートイベントを実行 OnChartEvent 関数

MQL4基礎

イベント処理関数

OnChartEvent 関数

この関数は、ChartEventイベントグループのハンドラーで、チャートイベントを実行します。

OnChartEvent関数を使用して処理できるイベントはこちらになります。

データ型と構成・戻り値

void OnChartEvent(①, ②, ③, ④);

戻り値は無し。

引数 [4]

OnChartEvent関数は 4個の引数で構成されます。イベント内容によって引数に設定される値が違ってきます。


引数名データ型単位初期値説明
idconst intイベントID
チャートイベントで処理する内容です。
lparamconst long&lparam(long型の)パラメータ値。
引数①によって取得される値です。
dparamconst double&dparam(double型の)パラメータ値。
引数①によって取得される値です。
sparamconst string&sparam(string型の)パラメータ値。
引数①によって取得される文字列です。

使用例

OnChartEvent関数によるキーボードキーの取得

OnChartEvent関数と TranslateKey関数を使用して、押したキーボードの文字を取得します。合わせて、その時のキーコードと Unicodeを 16進数で取得します。カッコ内の値は 10進数です。

キーボードは「a」「b」「1」「2」「Shift」の順番で押します。

コード

// 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に変換できないキーコードです");
   }
}
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

「Shift」キーは、Unicodeに変換できないキーコードになります。その他の結果についてはこちらの表と比較してください。

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