28评论

0收藏

请看看这段双均线穿越的源码为什么老是报警呢

avatar lip160 | 7419 人阅读 | 28 人评论 | 2011-12-22

这是在论坛中的一个双均线穿越的指标,可以自定义均线周期和类型。但是警报触发的时候会一直不停地更随价格变动而发出报警,也会一直不停地发邮件,我看程序内部的全局变量“flagalert”应该已经是做了控制的,不知道为什么还会出现这样的情况。请高手完善一下源代码或者指点一下思路。
  原帖地址:http://www.520fx.com/thread-6798-1-1.html
  源代码如下:<div class=\"blockcode\"><div id=\"code_Lo2\"><ol>
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 Yellow
#property indicator_color2 White
#property indicator_color3 Yellow
#property indicator_color4 White

//---- input parameters
extern int 均线周期1=10;
extern int 均线周期2=130;
extern int 类型1=1; //类型: 0-SMA; 1-EMA; 2-SMMA; 3-LWMA
extern int 类型2=1; //类型: 0-SMA; 1-EMA; 2-SMMA; 3-LWMA
extern string 类型说明=\"0-SMA; 1-EMA; 2-SMMA; 3-LWMA\";
extern int 文字水平=0;
extern int 文字垂直=0;
extern int 文字大小=14;
extern string 文字标识=\"1\";
extern color 文字颜色=Yellow;
extern int 是否报警=1;
extern int 是否发邮件=1;
//---- buffers
double Ma10[];
double Ma130[];
double Up[];
double Down[];
int TimeInMinute;
int FlagAlert=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(4);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(3,DRAW_ARROW);
SetIndexBuffer(0,Ma10);
SetIndexBuffer(1,Ma130);
SetIndexBuffer(2,Up);
SetIndexBuffer(3,Down);
SetIndexArrow(2,233);
SetIndexArrow(3,234);
TimeInMinute=0;
//----
return(0);
}

int start()
{
int i;
int limit;
string Signal;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars0) counted_bars--;
limit=Bars-counted_bars;
for (i=limit-1;i>=0;i--)
{
Ma10=iMA(NULL,0,均线周期1,0,类型1,PRICE_CLOSE,i);
Ma130=iMA(NULL,0,均线周期2,0,类型2,PRICE_CLOSE,i);
if ((Ma10[i+1]Ma130)&&(Close>Ma10)&&(Close>Ma130))
{
Signal=\"[\"+Period()+\"分钟]\"+TimeMonth(Time+TimeInMinute)+\"月\"+TimeDay(Time+TimeInMinute)+\"日\"+TimeHour(Time+TimeInMinute)+\"点\"+TimeMinute(Time+TimeInMinute)+\"分 \"+Symbol()+\"在价格\"+DoubleToStr(Close,4)+\"发生\"+均线周期1+\"均线上穿\"+均线周期2+\"均线\";
writetext(文字标识,Signal,20+文字水平,40+文字垂直,文字颜色,文字大小);
Up=Low-3*Point;
if (i==0)
{
if (FlagAlert==0)
{
if (是否报警==1)
Alert(Signal);
if (是否发邮件==1)
SendMail(Signal,Signal);
FlagAlert=1;
}
}
}
if ((Ma10[i+1]>Ma130[i+1])&&(Ma10
""
还没有人打赏,支持一下

评论|共 28 个

苍井空

发表于 2012-11-21 23:00:23 | 显示全部楼层

唉,悲催的外汇。。  

阳光小虾

发表于 2012-11-21 23:00:23 | 显示全部楼层

我有个群,大家一起来讨论EA.  

mxtgarfield

发表于 2012-11-22 00:02:14 | 显示全部楼层

顶的就是你  

lzjiang

发表于 2012-11-22 00:28:10 | 显示全部楼层

不错,支持下  

qinkui007

发表于 2012-11-22 00:28:10 | 显示全部楼层

我的啦嘿嘿  

印度阿三

发表于 2012-11-22 00:28:10 | 显示全部楼层

唉,悲催的外汇。。  

一壶乡愁

发表于 2012-11-22 00:28:10 | 显示全部楼层

真的有么  

珊瑚

发表于 2012-11-22 00:28:10 | 显示全部楼层

好人一个  

2364383259

发表于 2012-11-22 00:28:10 | 显示全部楼层

#无语  

123下一页
您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则