- //+------------------------------------------------------------------+
- //| ATRTest.mq4 |
- //| Copyright ?2009, MetaQuotes Software Corp. |
- //+------------------------------------------------------------------+
- #property copyright "Copyright ?2009, MetaQuotes Software Corp."
- extern double Lots = 0.2;
- extern int CurPeriod = 60;
- extern int Magic = 102;
- extern int SlowPeriod = 10;
- extern int QuickPeriod = 5;
- //+------------------------------------------------------------------+
- //| expert initialization function |
- //+------------------------------------------------------------------+
- int init()
- {
- //----
- double a = iCustom(NULL,0,"ATR",14,0,0);
- //----
- return(0);
- }
- //+------------------------------------------------------------------+
- //| expert deinitialization function |
- //+------------------------------------------------------------------+
- int deinit()
- {
- //----
-
- //----
- return(0);
- }
- //+------------------------------------------------------------------+
- //| expert start function |
- //+------------------------------------------------------------------+
- int start()
- {
- //----
- int Holding=0,i;
- int total = OrdersTotal();
- string Subject, Content;
- if(total != 0)
- {
- for(i=total-1; i >=0; i--)
- {
- OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
- if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && Period() == CurPeriod)
- {
- Holding ++;
- }
- }
- }
- if(MaCrossUp(SlowPeriod, QuickPeriod))
- {
- Subject = "Ma均线出现金叉"+"时间是:"+TimeToStr(TimeCurrent());
- Content = "该做点什么?";
- SendMail(Subject,Content);
- }
- if(MaCrossDown(SlowPeriod, QuickPeriod))
- {
- Subject = "Ma均线出现死叉"+"时间是:"+TimeToStr(TimeCurrent());
- Content = "该做点什么?";
- SendMail(Subject,Content);
- }
-
- //----
- return(0);
- }
- bool MaCrossUp (int SlowP, int QuickP )
- {
- double MaSlow1=iMA(NULL,0,SlowP,0,MODE_EMA,PRICE_CLOSE,1);
- double MaQuick1=iMA(NULL,0,QuickP,0,MODE_EMA,PRICE_CLOSE,1);
- double MaSlow2=iMA(NULL,0,SlowP,0,MODE_EMA,PRICE_CLOSE,2);
- double MaQuick2=iMA(NULL,0,QuickP,0,MODE_EMA,PRICE_CLOSE,2);
- datetime a;
- if((MaQuick2 < MaSlow2)&&(MaQuick1 >= MaSlow1))
- {
- if(a!=Time[0])
- {
- a=Time[0];
- return(true);
- }
- }
- else
- {
- return(false);
- }
- }
- bool MaCrossDown (int SlowP, int QuickP )
- {
- double MaSlow1=iMA(NULL,0,SlowP,0,MODE_EMA,PRICE_CLOSE,1);
- double MaQuick1=iMA(NULL,0,QuickP,0,MODE_EMA,PRICE_CLOSE,1);
- double MaSlow2=iMA(NULL,0,SlowP,0,MODE_EMA,PRICE_CLOSE,2);
- double MaQuick2=iMA(NULL,0,QuickP,0,MODE_EMA,PRICE_CLOSE,2);
- datetime a;
- if((MaQuick2 > MaSlow2)&&(MaQuick1 <= MaSlow1))
- {
- if(a!=Time[0])
- {
- a=Time[0];
- return(true);
- }
- }
- else
- {
- return(false);
- }
- }
复制代码
|