这个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){ PlaySound(看多报警声音); Print(Symbol()+"看多报警成功!!"); sj=Time;
}if(看空报警()&&sj!=Time){ PlaySound(看空报警声音); Print(Symbol()+"看空报警成功!!"); sj=Time;}
//---- 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*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<c1&&z1<c1&&d1<z1&&Close*Point)return(true);else return(false);}
000000000000000000 前排支持下分享 有竞争才有进步嘛 帮你顶下哈!! 帮你顶下哈!! 学习了,不错 {:1_181:} {:1_189:}
页:
[1]