#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 bool 是否报警=true;
//extern int 是否报警=1;
extern bool 是否发邮件=true;
//extern int 是否发邮件=1;
extern int 邮件间隔=12;
//---- buffers
double Ma10;
double Ma130;
double Up;
double Down;
int TimeInMinute;
int FlagAlert=0;
datetime prvEmailTime=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_bars<0) return(-1);
//---- the last counted bar will be recounted
if(counted_bars>0) 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 (是否报警)
{Alert(Signal);}
if (是否发邮件)
{
if(prvEmailTime+邮件间隔*60 <= TimeCurrent())
{
SendMail(Signal,Signal);
prvEmailTime=TimeCurrent();
}
}
FlagAlert=1;
}
}
}
if ((Ma10[i+1]>Ma130[i+1])&&(Ma10