ここから本文です

MT4のインジケーターのアラームについて、 下記のものを使ってます。

ser********さん

2016/9/1909:45:23

MT4のインジケーターのアラームについて、

下記のものを使ってます。

ストキャスティクスで指定ラインに到達するとアラームが鳴るようにしてますが、
1本の足で連続して何度も鳴ってしまいますので一度だけ鳴るようにするには
どうすればよいでしょうか?

変更箇所教えてもらえると助かります。

//+------------------------------------------------------------------+
//| Stochastic Alert.mq4 |
//| Copyright ゥ 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright ゥ 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"

#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_buffers 3
#property indicator_color1 DodgerBlue
#property indicator_color2 LightGray
#property indicator_color3 LightGray
#property indicator_width1 1
#property indicator_width2 1
#property indicator_width3 1
#property indicator_style1 STYLE_SOLID
#property indicator_style2 STYLE_DOT
#property indicator_style3 STYLE_DOT
//---- input parameters
extern int STOKPeriod=3;
extern int STODPeriod=2;
extern int STOSlowing=2;
extern int STOMethod=0;
extern int STOMode=0;
extern int ApplyTo=0;
extern bool AlertMode=true;
extern int OverBought=70;
extern int OverSold=30;
//---- buffers
double STOBuffer[];
double STOOBBuffer[];
double STOOSBuffer[];

int TimeFrame;
string TF;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
string short_name;
//---- indicator lines
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,STOBuffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,STOOBBuffer);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,STOOSBuffer);
//---- name for DataWindow and indicator subwindow label
short_name="STO-Alert("+STOKPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);
SetIndexLabel(1,"OverBought");
SetIndexLabel(2,"OverSold");
//----
SetIndexDrawBegin(0,STOKPeriod);


switch(TimeFrame)
{
case 1: TF="M1"; break;
case 5: TF="M5"; break;
case 15: TF="M15"; break;
case 30: TF="M30"; break;
case 60: TF="H1"; break;
case 240: TF="H4"; break;
case 1440: TF="D1"; break;
case 10080: TF="W1"; break;
case 43200: TF="MN1"; break;
default: {TimeFrame = Period(); init(); return(0);}
}
//----
return(0);
}
//+------------------------------------------------------------------+
//| Relative Strength Index |
//+------------------------------------------------------------------+
int start()
{
int i,counted_bars=IndicatorCounted();
//----
if(Bars<=STOKPeriod) return(0);
//----
i=Bars-STOKPeriod-1;


if(counted_bars>=STOKPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
STOBuffer[i]=iStochastic(NULL,0,STOKPeriod,STODPeriod,STOSlowing,STOMethod,STOMode,ApplyTo,i);
STOOBBuffer[i]=OverBought;
STOOSBuffer[i]=OverSold;
i--;
}

if(AlertMode)
{
if(STOBuffer[1]<OverBought && STOBuffer[0]>=OverBought)
Alert(Symbol()+" [ "+TF+" ] STO Overbought @ level "+OverBought);
else if(STOBuffer[1]>OverSold && STOBuffer[0]<=OverSold)
Alert(Symbol()+" [ "+TF+" ] STO Oversold @ level "+OverSold);
}
//----
return(0);
}
//+------------------------------------------------------------------+

閲覧数:
169
回答数:
1

違反報告

ベストアンサーに選ばれた回答

nie********さん

2016/9/1911:24:34

その問題を対策済の Stochastic Alert v1.1.mq4 をDLするように回答したのに、何で古いバージョンをDLするんだ?
同じページのもう少し下の方にあるのに見えない?

質問した人からのコメント

2016/9/19 19:31:28

できました!!
ありがとうございます!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる