[MT4指标]这个3均线交叉报警有问题,请指点。
这个指标是3均线交叉报警,可更换报警声音。问题是3均线交叉后,每一根K都报警,只需要交叉后报警一次就好。哪位大侠帮我修改一下,感谢。
extern int 短均线周期=10;extern int 短平移=0;extern int 短移动平均=1;extern int 短应用于=0;extern int 中均线周期=20;extern int 中平移=0;extern int 中移动平均=1;extern int 中应用于=0;extern int 长均线周期=30;extern int 长平移=0;extern int 长移动平均=1;extern int 长应用于=0;extern string 看多报警声音="ok.wav";extern string 看空报警声音="ok.wav";
int sj;string 注释="0";//+------------------------------------------------------------------+//| expert initialization function |//+------------------------------------------------------------------+int init() {//----//---- return(0); }//+------------------------------------------------------------------+//| expert deinitialization function |//+------------------------------------------------------------------+int deinit() {//----
//---- return(0); }//+------------------------------------------------------------------+//| expert start function |//+------------------------------------------------------------------+int start() {//----int Ticket;if(看多报警()&&sj!=Time[0]) { PlaySound(看多报警声音); Print(Symbol()+"看多报警成功!!"); sj=Time[0];
} if(看空报警()&&sj!=Time[0]) { PlaySound(看空报警声音); Print(Symbol()+"看空报警成功!!"); sj=Time[0]; }
//---- return(0); }//+------------------------------------------------------------------+bool 看多报警(){double d1=iMA(NULL,0,短均线周期,短平移,短移动平均,短应用于,1);double z1=iMA(NULL,0,中均线周期,中平移,中移动平均,中应用于,1);double c1=iMA(NULL,0,长均线周期,长平移,长移动平均,长应用于,1);if(d1>c1&&z1>c1&&d1>z1&&Close[1]*Point)return(true);else return(false);}bool 看空报警(){double d1=iMA(NULL,0,短均线周期,短平移,短移动平均,短应用于,1);double z1=iMA(NULL,0,中均线周期,中平移,中移动平均,中应用于,1);double c1=iMA(NULL,0,长均线周期,长平移,长移动平均,长应用于,1);if(d1