ozyamhct 发表于 2011-10-3 20:56:14

MT4编程报警问题

我想实现在下列代码中,当价格到r1 r2 r3 P S1 S2 S3的时候发出报警,我加上代码
if(Bid==s2)
Alert(Symbol(),\"现在价格\"+DoubleToStr(s2,4));
程序测试没错,但不报警,请斑主帮忙看下!

#property copyright \"Copyright ?2004, MetaQuotes Software Corp.\"
#property link      \"http://www.metaquotes.net\"
#property indicator_buffers 5
#property indicator_chart_window
//----
extern int TimeZone=0;
extern bool pivots=true;
extern bool camarilla=false;
extern bool midpivots=false;
//----
double day_high=0;
double day_low=0;
double yesterday_high=0;
double yesterday_open=0;
double yesterday_low=0;
double yesterday_close=0;
double today_open=0;
double today_high=0;
double today_low=0;
double P=0;
double Q=0;
double R1,R2,R3;
double M0,M1,M2,M3,M4,M5;
double S1,S2,S3;
double H4,H3,L4,L3;
double nQ=0;
double nD=0;
double D=0;
double rates_h1;
double rates_d1;
double pivotbuffer[];
double s1buffer[];
double r1buffer[];
double s2buffer[];
double r2buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
    {
//---- indicators
   R1=0; R2=0; R3=0;
   M0=0; M1=0; M2=0; M3=0; M4=0; M5=0;
   S1=0; S2=0; S3=0;
   H4=0; H3=0; L4=0; L3=0;
//----
   SetIndexStyle(0,DRAW_LINE,EMPTY);
   SetIndexBuffer(0, pivotbuffer);
   SetIndexStyle(1,DRAW_LINE,EMPTY);
   SetIndexBuffer(1, s1buffer);
   SetIndexStyle(2,DRAW_LINE,EMPTY);
   SetIndexBuffer(2, r1buffer);
   SetIndexStyle(3,DRAW_LINE,EMPTY);
   SetIndexBuffer(4, s2buffer);
   SetIndexStyle(5,DRAW_LINE,EMPTY);
   SetIndexBuffer(5, r2buffer);
//----
   return(0);
    }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                     |
//+------------------------------------------------------------------+
int deinit()
    {
//---- TODO: add your code here
   ObjectDelete(\"R1 Label\");
   ObjectDelete(\"R1 Line\");
   ObjectDelete(\"R2 Label\");
   ObjectDelete(\"R2 Line\");
   ObjectDelete(\"R3 Label\");
   ObjectDelete(\"R3 Line\");
   ObjectDelete(\"S1 Label\");
   ObjectDelete(\"S1 Line\");
   ObjectDelete(\"S2 Label\");
   ObjectDelete(\"S2 Line\");
   ObjectDelete(\"S3 Label\");
   ObjectDelete(\"S3 Line\");
   ObjectDelete(\"P Label\");
   ObjectDelete(\"P Line\");
   ObjectDelete(\"H4 Label\");
   ObjectDelete(\"H4 Line\");
   ObjectDelete(\"H3 Label\");
   ObjectDelete(\"H3 Line\");
   ObjectDelete(\"L3 Label\");
   ObjectDelete(\"L3 Line\");
   ObjectDelete(\"L4 Label\");
   ObjectDelete(\"L4 Line\");
   ObjectDelete(\"M5 Label\");
   ObjectDelete(\"M5 Line\");
   ObjectDelete(\"M4 Label\");
   ObjectDelete(\"M4 Line\");
   ObjectDelete(\"M3 Label\");
   ObjectDelete(\"M3 Line\");
   ObjectDelete(\"M2 Label\");
   ObjectDelete(\"M2 Line\");
   ObjectDelete(\"M1 Label\");
   ObjectDelete(\"M1 Line\");
   ObjectDelete(\"M0 Label\");
   ObjectDelete(\"M0 Line\");
//----
   return(0);
    }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
    {
   int i=0, j=0;
//---- TODO: add your code here
//---- exit if period is greater than daily charts
   if(Period() > 1440)
       {
      Print(\"Error - Chart period is greater than 1 day.\");
      return(-1); // then exit
       }
//---- Get new daily prices
   ArrayCopyRates(rates_d1, Symbol(), PERIOD_D1);
   yesterday_high=rates_d1;
   yesterday_low=rates_d1;
   day_high=rates_d1;
   day_low=rates_d1;
//----
   ArrayCopyRates(rates_h1, Symbol(), PERIOD_H1);
   for(i=0;i 5)
       {
      nQ=Q;
       }
   else
       {
      nQ=Q*10000;
       }
   if (D > 5)
       {
      nD=D;
       }
   else
       {
      nD=D*10000;
       }
   Comment(\"High= \",yesterday_high,\"    Previous Days Range= \",nQ,\"nLow= \",yesterday_low,\"    Current Days Range= \",nD,\"nClose= \",yesterday_close,\"nOpen= \",yesterday_open);
//---- Set line labels on chart window
//---- Pivot Lines
   if (pivots==true)
       {
      if(ObjectFind(\"R1 label\")!=0)
          {
         ObjectCreate(\"R1 label\", OBJ_TEXT, 0, Time, R1);
         ObjectSetText(\"R1 label\", \" R1\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"R1 label\", 0, Time, R1);
          }
      r1buffer=R1;
//----
      if(ObjectFind(\"R2 label\")!=0)
          {
         ObjectCreate(\"R2 label\", OBJ_TEXT, 0, Time, R2);
         ObjectSetText(\"R2 label\", \" R2\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"R2 label\", 0, Time, R2);
          }
      r2buffer=R2;
//----
      if(ObjectFind(\"R3 label\")!=0)
          {
         ObjectCreate(\"R3 label\", OBJ_TEXT, 0, Time, R3);
         ObjectSetText(\"R3 label\", \" R3\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"R3 label\", 0, Time, R3);
          }
      if(ObjectFind(\"P label\")!=0)
          {
         ObjectCreate(\"P label\", OBJ_TEXT, 0, Time, P);
         ObjectSetText(\"P label\", \"Pivot\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"P label\", 0, Time, P);
          }
      pivotbuffer=P;
//----
      if(ObjectFind(\"S1 label\")!=0)
          {
         ObjectCreate(\"S1 label\", OBJ_TEXT, 0, Time, S1);
         ObjectSetText(\"S1 label\", \"S1\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"S1 label\", 0, Time, S1);
          }
      s1buffer=S1;
//----
      if(ObjectFind(\"S2 label\")!=0)
          {
         ObjectCreate(\"S2 label\", OBJ_TEXT, 0, Time, S2);
         ObjectSetText(\"S2 label\", \"S2\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"S2 label\", 0, Time, S2);
          }
      s2buffer=S2;
//----
      if(ObjectFind(\"S3 label\")!=0)
          {
         ObjectCreate(\"S3 label\", OBJ_TEXT, 0, Time, S3);
         ObjectSetText(\"S3 label\", \"S3\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"S3 label\", 0, Time, S3);
          }
      //---DrawPivot lines on chart
      if(ObjectFind(\"S1 line\")!=0)
          {
         ObjectCreate(\"S1 line\", OBJ_HLINE, 0, Time, S1);
         ObjectSet(\"S1 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"S1 line\", OBJPROP_COLOR, Red);
          }
      else
          {
         ObjectMove(\"S1 line\", 0, Time, S1);
          }
      if(ObjectFind(\"S2 line\")!=0)
          {
         ObjectCreate(\"S2 line\", OBJ_HLINE, 0, Time, S2);
         ObjectSet(\"S2 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"S2 line\", OBJPROP_COLOR, Red);
          }
      else
          {
         ObjectMove(\"S2 line\", 0, Time, S2);
          }
      if(ObjectFind(\"S3 line\")!=0)
          {
         ObjectCreate(\"S3 line\", OBJ_HLINE, 0, Time, S3);
         ObjectSet(\"S3 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"S3 line\", OBJPROP_COLOR, Red);
          }
      else
          {
         ObjectMove(\"S3 line\", 0, Time, S3);
          }
      if(ObjectFind(\"P line\")!=0)
          {
         ObjectCreate(\"P line\", OBJ_HLINE, 0, Time, P);
         ObjectSet(\"P line\", OBJPROP_STYLE, STYLE_DOT);
         ObjectSet(\"P line\", OBJPROP_COLOR, Magenta);
          }
      else
          {
         ObjectMove(\"P line\", 0, Time, P);
          }
      if(ObjectFind(\"R1 line\")!=0)
          {
         ObjectCreate(\"R1 line\", OBJ_HLINE, 0, Time, R1);
         ObjectSet(\"R1 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"R1 line\", OBJPROP_COLOR, LimeGreen);
          }
      else
          {
         ObjectMove(\"R1 line\", 0, Time, R1);
          }
      if(ObjectFind(\"R2 line\")!=0)
          {
         ObjectCreate(\"R2 line\", OBJ_HLINE, 0, Time, R2);
         ObjectSet(\"R2 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"R2 line\", OBJPROP_COLOR, LimeGreen);
          }
      else
          {
         ObjectMove(\"R2 line\", 0, Time, R2);
          }
      if(ObjectFind(\"R3 line\")!=0)
          {
         ObjectCreate(\"R3 line\", OBJ_HLINE, 0, Time, R3);
         ObjectSet(\"R3 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"R3 line\", OBJPROP_COLOR, LimeGreen);
          }
      else
          {
         ObjectMove(\"R3 line\", 0, Time, R3);
          }
       }
//---- End of Pivot Line Draw
//----- Camarilla Lines
   if (camarilla==true)
       {
      if(ObjectFind(\"H4 label\")!=0)
          {
         ObjectCreate(\"H4 label\", OBJ_TEXT, 0, Time, H4);
         ObjectSetText(\"H4 label\", \" H4\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"H4 label\", 0, Time, H4);
          }
      if(ObjectFind(\"H3 label\")!=0)
          {
         ObjectCreate(\"H3 label\", OBJ_TEXT, 0, Time, H3);
         ObjectSetText(\"H3 label\", \" H3\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"H3 label\", 0, Time, H3);
          }
      if(ObjectFind(\"L3 label\")!=0)
          {
         ObjectCreate(\"L3 label\", OBJ_TEXT, 0, Time, L3);
         ObjectSetText(\"L3 label\", \" L3\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"L3 label\", 0, Time, L3);
          }
      if(ObjectFind(\"L4 label\")!=0)
          {
         ObjectCreate(\"L4 label\", OBJ_TEXT, 0, Time, L4);
         ObjectSetText(\"L4 label\", \" L4\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"L4 label\", 0, Time, L4);
          }
      //---- Draw Camarilla lines on Chart
      if(ObjectFind(\"H4 line\")!=0)
          {
         ObjectCreate(\"H4 line\", OBJ_HLINE, 0, Time, H4);
         ObjectSet(\"H4 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"H4 line\", OBJPROP_COLOR, Yellow);
          }
      else
          {
         ObjectMove(\"H4 line\", 0, Time, H4);
          }
      if(ObjectFind(\"H3 line\")!=0)
          {
         ObjectCreate(\"H3 line\", OBJ_HLINE, 0, Time, H3);
         ObjectSet(\"H3 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"H3 line\", OBJPROP_COLOR, Yellow);
          }
      else
          {
         ObjectMove(\"H3 line\", 0, Time, H3);
          }
      if(ObjectFind(\"L3 line\")!=0)
          {
         ObjectCreate(\"L3 line\", OBJ_HLINE, 0, Time, L3);
         ObjectSet(\"L3 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"L3 line\", OBJPROP_COLOR, Yellow);
          }
      else
          {
         ObjectMove(\"L3 line\", 0, Time, L3);
          }
      if(ObjectFind(\"L4 line\")!=0)
          {
         ObjectCreate(\"L4 line\", OBJ_HLINE, 0, Time, L4);
         ObjectSet(\"L4 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"L4 line\", OBJPROP_COLOR, Yellow);
          }
      else
          {
         ObjectMove(\"L4 line\", 0, Time, L4);
          }
       }
//-------End of Draw Camarilla Lines
//------ Midpoints Pivots
   if (midpivots==true)
       {
      if(ObjectFind(\"M5 label\")!=0)
          {
         ObjectCreate(\"M5 label\", OBJ_TEXT, 0, Time, M5);
         ObjectSetText(\"M5 label\", \" M5\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"M5 label\", 0, Time, M5);
          }
      if(ObjectFind(\"M4 label\")!=0)
          {
         ObjectCreate(\"M4 label\", OBJ_TEXT, 0, Time, M4);
         ObjectSetText(\"M4 label\", \" M4\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"M4 label\", 0, Time, M4);
          }
      if(ObjectFind(\"M3 label\")!=0)
          {
         ObjectCreate(\"M3 label\", OBJ_TEXT, 0, Time, M3);
         ObjectSetText(\"M3 label\", \" M3\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"M3 label\", 0, Time, M3);
          }
      if(ObjectFind(\"M2 label\")!=0)
          {
         ObjectCreate(\"M2 label\", OBJ_TEXT, 0, Time, M2);
         ObjectSetText(\"M2 label\", \" M2\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"M2 label\", 0, Time, M2);
          }
      if(ObjectFind(\"M1 label\")!=0)
          {
         ObjectCreate(\"M1 label\", OBJ_TEXT, 0, Time, M1);
         ObjectSetText(\"M1 label\", \" M1\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"M1 label\", 0, Time, M1);
          }
      if(ObjectFind(\"M0 label\")!=0)
          {
         ObjectCreate(\"M0 label\", OBJ_TEXT, 0, Time, M0);
         ObjectSetText(\"M0 label\", \" M0\", 8, \"Arial\", White);
          }
      else
          {
         ObjectMove(\"M0 label\", 0, Time, M0);
          }
      //---- Draw Midpoint Pivots on Chart
      if(ObjectFind(\"M5 line\")!=0)
          {
         ObjectCreate(\"M5 line\", OBJ_HLINE, 0, Time, M5);
         ObjectSet(\"M5 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"M5 line\", OBJPROP_COLOR, Blue);
          }
      else
          {
         ObjectMove(\"M5 line\", 0, Time, M5);
          }
      if(ObjectFind(\"M4 line\")!=0)
          {
         ObjectCreate(\"M4 line\", OBJ_HLINE, 0, Time, M4);
         ObjectSet(\"M4 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"M4 line\", OBJPROP_COLOR, Blue);
          }
      else
          {
         ObjectMove(\"M4 line\", 0, Time, M4);
          }
      if(ObjectFind(\"M3 line\")!=0)
          {
         ObjectCreate(\"M3 line\", OBJ_HLINE, 0, Time, M3);
         ObjectSet(\"M3 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"M3 line\", OBJPROP_COLOR, Blue);
          }
      else
          {
         ObjectMove(\"M3 line\", 0, Time, M3);
          }
      if(ObjectFind(\"M2 line\")!=0)
          {
         ObjectCreate(\"M2 line\", OBJ_HLINE, 0, Time, M2);
         ObjectSet(\"M2 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"M2 line\", OBJPROP_COLOR, Blue);
          }
      else
          {
         ObjectMove(\"M2 line\", 0, Time, M2);
          }
      if(ObjectFind(\"M1 line\")!=0)
          {
         ObjectCreate(\"M1 line\", OBJ_HLINE, 0, Time, M1);
         ObjectSet(\"M1 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"M1 line\", OBJPROP_COLOR, Blue);
          }
      else
          {
         ObjectMove(\"M1 line\", 0, Time, M1);
          }
      if(ObjectFind(\"M0 line\")!=0)
          {
         ObjectCreate(\"M0 line\", OBJ_HLINE, 0, Time, M0);
         ObjectSet(\"M0 line\", OBJPROP_STYLE, STYLE_DASHDOTDOT);
         ObjectSet(\"M0 line\", OBJPROP_COLOR, Blue);
          }
      else
          {
         ObjectMove(\"M0 line\", 0, Time, M0);
          }
       }
//----End of Midpoint Pivots Draw
//---- End Of Program
   return(0);
    }
//+------------------------------------------------------------------+

龙行天下 发表于 2012-11-22 02:15:12

支持~~

myecr 发表于 2012-11-22 02:15:12

ea编程高手有偿开发MT4指标和ea系统,并有稳定盈利ea出售,非大资金勿扰

醉卧花丛 发表于 2012-11-22 02:15:12

今天无聊来逛逛

nihaoya78 发表于 2012-11-22 02:15:12

抢座位来了

whyhui 发表于 2012-11-22 02:15:12

楼主good

印度阿三 发表于 2012-11-22 02:15:12

来几句吧

与你同行 发表于 2012-11-22 02:15:12

EA水很深 并不是一般人就能玩的了的 打消这个念头吧~~

幸福的旋律 发表于 2014-11-9 10:04:40

nice!!!!!!!!!!!!

今天肚子痛 发表于 2014-11-9 10:16:17

看看什么EA,,,
页: [1] 2 3
查看完整版本: MT4编程报警问题