MA Touch Alert - インジゲーター

sitemap
世界最強のFXキャッシュバックサイト
TOP > インジゲータ > MA Touch Alert
MA Touch Alert
MA Touch Alertの説明
現在の足から移動平均線(MA)に現在価格がタッチしたらアラートを鳴らして、プッシュ通知するインジゲーター。

MA Touch Alert
ソースコード説明
ソースコード完成例

テキスト版(ソースコード)はこちら
各処理の説明
■プロパティの設定
①#property indicator_chart_window

①#property indicator_chart_window
インジゲータをチャートウインドウに表示する。

■変数の設定
①double MA00 = 0;
②double MA01 = 0;
③int up_flag = 0;
④int down_flag = 0;

①double MA00;
double型の変数を指定。ここでは、MA00を指定。 現在の移動平均線の値用。

②double MA01;
double型の変数を指定。ここでは、MA01を指定。 1本前の移動平均線の値用。

③int up_flag;
int型の変数を指定。ここでは、up_flagを指定。 下から上にタッチしたかどうかのチェック用。

④int down_flag;
int型の変数を指定。ここでは、down_flagを指定。 上から下にタッチしたかどうかのチェック用。

■グローバル変数の設定
①extern int ma_period = 20;
②extern bool alert_push = true;

①extern int ma_period = 20;
int型の変数を指定。ここでは、ma_periodを指定。 移動平均線の期間用。初期値は20を設定。

②extern bool alert_push = true;
bool型の変数を指定。ここでは、alert_pushを指定。 アラートを鳴らすか、プッシュ通知するかどうかの判定用。初期値はtrueを設定。

■指標計算関数の設定
int start()
{
   ①MA00 = iMA(NULL, 0, ma_period, 0, MODE_EMA, PRICE_CLOSE, 0);
   ②MA01 = iMA(NULL, 0, ma_period, 0, MODE_EMA, PRICE_CLOSE, 1);
   
 ③if(MA01 > Close[1] && MA00 <= Close[0]){
	④if(alert_push == true && up_flag == 0){
		⑤Alert("MAタッチ(下から上):アラート通知");
		⑥SendNotification("MAタッチ(下から上):プッシュ通知");
		⑦up_flag = 1;
		⑧down_flag = 0;
	}
   }
   
 ⑨if(MA01 < Close[1] && MA00 >= Close[0]){
	⑩if(alert_push == true && down_flag == 0){
		⑪Alert("MAタッチ(上から下):アラート通知");
		⑫SendNotification("MAタッチ(上から下):プッシュ通知");
		⑬down_flag = 1;
		⑭up_flag = 0;
	}
   }
      return(0);
}

①MA00 = iMA(NULL, 0, ma_period, 0, MODE_EMA, PRICE_CLOSE, 0);
変数MA00に現在のiMAの値を代入。
ここでは、現在のチャートの通貨ペア、時間足、期間20、指数移動平均線、終値、現在の足を指定。

②MA01 = iMA(NULL, 0, ma_period, 0, MODE_EMA, PRICE_CLOSE, 1);
変数MA01に1本前のiMAの値を代入。
ここでは、現在のチャートの通貨ペア、時間足、期間20、指数移動平均線、終値、1本前の足を指定。

③if(MA01 > Close[1] && MA00 <= Close[0]){
if文。ここでは、1本前の足が移動平均線より下で、現在価格が現在の移動平均線以上になったか(タッチしたか)という条件。

④if(alert_push == true && up_flag == 0){
if文。ここでは、アラートを鳴らすかどうかと、上から下にタッチしてるかどうかという条件。

⑤Alert("MAタッチ(下から上):アラート通知");
アラートを鳴らす。

⑥SendNotification("MAタッチ(下から上):プッシュ通知");
プッシュ通知する。

⑦up_flag = 1;
up_flagに1を代入する。 連続でアラートさせないため。

⑧down_flag = 0;
down_flagに0を代入する。

⑨if(MA01 < Close[1] && MA00 >= Close[0]){
if文。ここでは、1本前の足が移動平均線より上で、現在価格が現在の移動平均線以下になったか(タッチしたか)という条件。

⑩if(alert_push == true && down_flag == 0){
if文。ここでは、アラートを鳴らすかどうかと、下から上にタッチしてるかどうかという条件。

⑪Alert("MAタッチ(上から下):アラート通知");
アラートを鳴らす。

⑫SendNotification("MAタッチ(上から下):プッシュ通知");
プッシュ通知する。

⑬down_flag = 1;
down_flagに1を代入する。 連続でアラートさせないため。

⑭up_flag = 0;
up_flagに0を代入する。
パラメータの説明
MA Touch Alertパラメーター
ma_period : 移動平均線の期間
alert_push : アラートとプッシュ通知の選択
注意事項
簡易版のため、移動平均線の下から上、上から下にタッチしたときのみアラートを鳴らします。
以下のような場合は、アラートは鳴りません。
アラートが鳴らない場合
この場合、移動平均線の下から上にタッチした場合、1回目は鳴りますが、2回目は上から下に抜けてないのでアラートは鳴りません。
このインジゲータに使用しているMQLの一覧
関連ページ
スポンサードリンク
Twitter