こんにちは。キリンです。
最近、裁量トレードの実践をしているので、MT4の不便な機能に気づきます。
僕の場合、PCにスピーカーがないので、Alertがなっても気づかないんですよね。
さらに、Alertが表示されたのにウィンドウがアクティブにならなければ
せっかくのエントリータイミングを逃してしまいます。
今日の記事はプログラムできる人向けになってしまいますが、
参考までに・・・。
MT4のAlert機能って使い勝手があまりよろしくない気がします。
どうやら感じることは一緒みたいで、faiさんもこんな記事を書いていました。
確かにMessangerみたいな表示になれば最高ですよね。
でも、それじゃ配布してみんなに使ってもらえない・・・。
というわけで簡易版のウィンドウをアクティブにする方法を書いておきます。
Win32APIのSetForegroundWindow(int hWnd)を使います。
まず、プログラムのヘッダ部(#propertyとか書いてるところ)に
#import “user32.dll”
int GetAncestor(int,int);
bool SetForegroundWindow(int hWnd);
#import
int GetAncestor(int,int);
bool SetForegroundWindow(int hWnd);
#import
と書きます。
次に、アラート部に次の2行を書き加えます。
int hwnd = GetAncestor(WindowHandle(Symbol(),Period()),2);
SetForegroundWindow(hwnd);
SetForegroundWindow(hwnd);
これで、Alertがなったときにウィンドウがアクティブになります。
hwndの変数の割り当ては、ini()に加えてもいいかもしれませんね。
ご参考になれば幸いです。
今日もお読みくださりありがとうございます^^
[追記]
サブルーチン化しちゃえばもっと楽に使えます。
void MyAlert(string alt){
int hwnd = GetAncestor(WindowHandle(Symbol(),Period()),2);
Alert(alt);
SetForegroundWindow(hwnd);
}
int hwnd = GetAncestor(WindowHandle(Symbol(),Period()),2);
Alert(alt);
SetForegroundWindow(hwnd);
}
Alertを使うときにはMyAlertに置き換えればOKです。
ヘッダの#importは必需なので忘れないでくださいね。
コメント
SECRET: 0
PASS:
最近いろいろと有力な情報を発信してますね~
さすがキリンジャーバンド開発者w
Kirin部長!勉強になります!!