EA の OnChartEvent()
関数でチャートイベントをハンドルすると、チャート上でのキーボード入力を取得することができます。
これを利用すると、自作の EA にキーボードショートカット(ホットキー)機能を付けることができます。
例えば、数字の 1
キーを押したときに、0.1 ロットの買い成行注文を出す、といったことができます。
キー入力時は、OnChartEvent
関数の id
パラメータの値は CHARTEVENT_KEYDOWN
になり、lparam
パラメータにキーコードが格納されます。
下記のサンプル EA をチャートにアタッチすると、入力したキー情報がチャート上に表示されるようになります。
int OnInit() {
return INIT_SUCCEEDED;
}
void OnChartEvent(
const int id,
const long &lparam,
const double &dparam,
const string &sparam
) {
if (id == CHARTEVENT_KEYDOWN) {
string key;
if ('0' <= lparam && lparam <= 'z') {
key = StringFormat("key=%c(%d)", lparam, lparam);
} else {
key = StringFormat("key=%d", lparam);
}
Comment("CHARTEVENT_KEYDOWN: ", key);
}
}
特定のキー(例えば数字の 1
キー)が押されたときに、ユーザーに確認を求めてから処理を行いたい場合は次のようにします。
void OnChartEvent(
const int id,
const long &lparam,
const double &dparam,
const string &sparam
) {
if (id == CHARTEVENT_KEYDOWN && lparam == '1') {
if (MessageBox("Are you sure to buy?", NULL, MB_YESNO) == IDYES) {
// ここで買う!
// buyMarketOrder();
}
}
}
関連記事
- MetaTrader/MQL: プログラムがデモ口座で実行されている調べる (ACCOUNT_TRADE_MODE)
- MetaTrader/MQL: 注文時のフィル・ポリシー(充填ポリシー)を理解する
- MetaTrader/MQL: ポジション情報を取得する (PositionXxx) (MT5)
- MetaTrader/MQL: 注文情報を取得する (OrderXxx) (MT5)
- MetaTrader/MQL: 成行注文の 4 つの注文執行方式 (Request Execution Type) を理解する
- MetaTrader/MQL: OrderSend で注文を出す (MT4)
- MetaTrader/MQL: アカウント情報(口座情報)を取得する (AccountInfo*) (MT5)