![見出し画像](https://assets.st-note.com/production/uploads/images/35047635/rectangle_large_type_2_c53933d2240e617d7974950c4ae4581f.jpg?width=1200)
【MT4】急騰急落アラートを出すインジケーターの作り方
相場が大きく動いた後にチャンスはやってきますよね!
指標発表などで荒れてる時にエントリーするとギャンブルになってしまいますが、急騰急落した後の押目はおいしい場面が多いかと思います
その為には急騰急落する場面まで待たないといけません。
ずっとチャートをみて待ってもいいのですが、
他の事をしたい事もありすよね?
そんなあなたの為に、急騰急落時にアラートを出すインジケーターの作り方を教えます
一定時間毎に価格をチェックして、指定のPips以上価格が動いていたら
アラートを出すようにします
この時間とアラートを出すPipsをパラメーターで設定可能な物を作っていきます。
また、アラートはチャートのアラート、メール、スマホPush通知の3パターンで作っていきたいと思います。
〇秒おきに処理する方法
まずは、一定時間をおきに処理を行う方法を考えていきましょう!
MQLではタイマーイベントという便利な仕組みがあります。
EventSetTimer(秒数)
を行う事、OnTimer()関数が指定した秒数毎に呼び出されます。
OnInit関数内でEventSetTimerをセットすると良いですね!
int OnInit()
{
//--- indicator buffers mapping
//タイマーセット
EventSetTimer(10);
//---
return(INIT_SUCCEEDED);
}
//OnInitで10としてるので、10秒ごとにこの関数が呼ばれる
void OnTimer()
{
//行いたい処理を書く
}
動いた価格差を判断する方法
動いた価格差を判断する為に、グローバル関数に価格を記録してきましょう!
double gPrice = 0;
void OnTimer()
{
gPrice = Ask;
}
これで、前回記録した値と今の価格とで何Pips動いたかを計算すればよいですね!
価格差からPipsを計算する
私はよく使用するので、関数にしてしまってます。
//二つの価格差Pips
double getPips(double d1,double d2){
double ans = 0.0;
ans = MathAbs(d1 - d2);
if(Digits==2 || Digits==3){
ans *= 100;
}else if(Digits==4 || Digits==5){
ans *= 10000;
}
return(ans);
}
これ、他の場面でかなり重宝するかと思います(^^)
あとは指定のPips以上価格が動いたかをチェックするだけですね!
「10Pips以上動いた時」って判定する場合は↓
if (getPips(Ask,gPrice) >= 10) {
//Pips判定
}
通知方法もパラーメータにしましょう!
何秒ごとにチェックするか、何Pips動いたらアラートを出すかのほかに
通知方法もパラメーターにしてOnOff出来るようにすると便利ですね!
extern bool IN_bAlert = true; //アラートOnOFF
extern bool IN_bMail = true; //メールOnOFF
extern bool IN_bMobile = true; //スマホ通知OnOFF
ちなみに各通知方法は用意されてる関数で簡単に実装出来ちゃいます!
if (IN_bAlert == true) {
Alert(Symbol() + ":jump!");
}
if (IN_bMail == true) {
SendMail(Symbol() + ":jump!",Symbol() + ":jump!");
}
if (IN_bMobile == true) {
SendNotification(Symbol() + ":jump!");
}
メールだけ、件名も設定できるので引数の数が違いますが、
後は同じですね。とっても便利!
スマホPush通知の設定方法はコチラを参考にして下さい
画像付きでわかりやすいです
⇒スマホPush通知設定はコチラ
まとめ
急騰急落アラートを作る方法はいかがでしたか?
過去の価格をとってきて、価格差を調べる方法もありますが、
その場合、高値、安値、始値、終値と比較する事になるかと思います
EventSetTimerを使う事で、自分が好きな時間(秒)で何Pips動いたかで
アラートを出す事が出来るようになります。
通貨によってボラティリティも違うので、
パラメーターで設定出来るようする事で
汎用的に使う事が出来るのではないかと思います。
有料の全ソースコードには、
何秒ごとにチェックするか、何Pips動いたらアラートを出すか
などをパラメーターで設定出来るようになってます。
この記事が気に入ったらサポートをしてみませんか?