お世話になります。
MT4用の言語、MQL4の質問となります。
どうにも対応方法が分からずお教えください。
インディケーターのプログラムにより、
OnChartEventでイベントCHARTEVENT_KEYDOWNからキー入力を捕捉したいと考えてます。
最低限のプログラムとして下記。
MQL4
1#property strict 2 3int OnCalculate(const int rates_total, 4 const int prev_calculated, 5 const datetime &time[], 6 const double &open[], 7 const double &high[], 8 const double &low[], 9 const double &close[], 10 const long &tick_volume[], 11 const long &volume[], 12 const int &spread[]) 13 { 14 return(rates_total); 15 } 16void OnChartEvent(const int id, 17 const long &lparam, 18 const double &dparam, 19 const string &sparam) 20 { 21 printf("%d %d %f %s", id, lparam, dparam, sparam); 22 }
例えば"x"のキーを押せば下記の通り
CADJPY-cd,M15: 0 88 1.000000 45
"z"のキーを押せば下記の通り出力されます。
CADJPY-cd,M15: 0 90 1.000000 44
ですが、ファンクションキーを捕捉することが出来ません
具体的には「F12」を捉えたいのですが、「CHARTEVENT_KEYDOWN」のイベントが発生しません。
元々「F12」はMT4のステップ・バイ・ステップと呼ばれるローソク足を一本分進めるショートカットキーになってまして、
「F12」でチャートが描き変わる度に「CHARTEVENT_CHART_CHANGE」のイベントが発動します。
このイベントを代替手段にする訳にも行かない状況で、肝心の「CHARTEVENT_KEYDOWN」がウンともスンとも言いません。
目的としては「F12」のキーボード押下が取得できれば良いので代替手段でも良いのですが、
良い方法がありましたらお知恵を頂きたくよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/18 13:17