MT4编程报警问题

楼主  收藏   举报   帖子创建时间:  2019-05-05 10:28 回复:0 关注量:416
我想实现在下列代码中,当价格到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[2][6];
  double rates_d1[2][6];
  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[1][3];
     yesterday_low=rates_d1[1][2];
     day_high=rates_d1[0][3];
     day_low=rates_d1[0][2];
  //----
     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[20], R1);
           ObjectSetText("R1 label", " R1", 8, "Arial", White);
          }
        else
          {
           ObjectMove("R1 label", 0, Time[20], R1);
          }
        r1buffer[0]=R1;
  //----
        if(ObjectFind("R2 label")!=0)
          {
           ObjectCreate("R2 label", OBJ_TEXT, 0, Time[20], R2);
           ObjectSetText("R2 label", " R2", 8, "Arial", White);
          }
        else
          {
           ObjectMove("R2 label", 0, Time[20], R2);
          }
        r2buffer[0]=R2;
  //----
        if(ObjectFind("R3 label")!=0)
          {
           ObjectCreate("R3 label", OBJ_TEXT, 0, Time[20], R3);
           ObjectSetText("R3 label", " R3", 8, "Arial", White);
          }
        else
          {
           ObjectMove("R3 label", 0, Time[20], R3);
          }
        if(ObjectFind("P label")!=0)
          {
           ObjectCreate("P label", OBJ_TEXT, 0, Time[20], P);
           ObjectSetText("P label", "Pivot", 8, "Arial", White);
          }
        else
          {
           ObjectMove("P label", 0, Time[20], P);
          }
        pivotbuffer[0]=P;
  //----
        if(ObjectFind("S1 label")!=0)
          {
           ObjectCreate("S1 label", OBJ_TEXT, 0, Time[20], S1);
           ObjectSetText("S1 label", "S1", 8, "Arial", White);
          }
        else
          {
           ObjectMove("S1 label", 0, Time[20], S1);
          }
        s1buffer[0]=S1;
  //----
        if(ObjectFind("S2 label")!=0)
          {
           ObjectCreate("S2 label", OBJ_TEXT, 0, Time[20], S2);
           ObjectSetText("S2 label", "S2", 8, "Arial", White);
          }
        else
          {
           ObjectMove("S2 label", 0, Time[20], S2);
          }
        s2buffer[0]=S2;
  //----
        if(ObjectFind("S3 label")!=0)
          {
           ObjectCreate("S3 label", OBJ_TEXT, 0, Time[20], S3);
           ObjectSetText("S3 label", "S3", 8, "Arial", White);
          }
        else
          {
           ObjectMove("S3 label", 0, Time[20], S3);
          }
        //---  Draw  Pivot lines on chart
        if(ObjectFind("S1 line")!=0)
          {
           ObjectCreate("S1 line", OBJ_HLINE, 0, Time[40], S1);
           ObjectSet("S1 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("S1 line", OBJPROP_COLOR, Red);
          }
        else
          {
           ObjectMove("S1 line", 0, Time[40], S1);
          }
        if(ObjectFind("S2 line")!=0)
          {
           ObjectCreate("S2 line", OBJ_HLINE, 0, Time[40], S2);
           ObjectSet("S2 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("S2 line", OBJPROP_COLOR, Red);
          }
        else
          {
           ObjectMove("S2 line", 0, Time[40], S2);
          }
        if(ObjectFind("S3 line")!=0)
          {
           ObjectCreate("S3 line", OBJ_HLINE, 0, Time[40], S3);
           ObjectSet("S3 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("S3 line", OBJPROP_COLOR, Red);
          }
        else
          {
           ObjectMove("S3 line", 0, Time[40], S3);
          }
        if(ObjectFind("P line")!=0)
          {
           ObjectCreate("P line", OBJ_HLINE, 0, Time[40], P);
           ObjectSet("P line", OBJPROP_STYLE, STYLE_DOT);
           ObjectSet("P line", OBJPROP_COLOR, Magenta);
          }
        else
          {
           ObjectMove("P line", 0, Time[40], P);
          }
        if(ObjectFind("R1 line")!=0)
          {
           ObjectCreate("R1 line", OBJ_HLINE, 0, Time[40], R1);
           ObjectSet("R1 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("R1 line", OBJPROP_COLOR, LimeGreen);
          }
        else
          {
           ObjectMove("R1 line", 0, Time[40], R1);
          }
        if(ObjectFind("R2 line")!=0)
          {
           ObjectCreate("R2 line", OBJ_HLINE, 0, Time[40], R2);
           ObjectSet("R2 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("R2 line", OBJPROP_COLOR, LimeGreen);
          }
        else
          {
           ObjectMove("R2 line", 0, Time[40], R2);
          }
        if(ObjectFind("R3 line")!=0)
          {
           ObjectCreate("R3 line", OBJ_HLINE, 0, Time[40], R3);
           ObjectSet("R3 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("R3 line", OBJPROP_COLOR, LimeGreen);
          }
        else
          {
           ObjectMove("R3 line", 0, Time[40], R3);
          }
       }
  //---- End of Pivot Line Draw
  //----- Camarilla Lines
     if (camarilla==true)
       {
        if(ObjectFind("H4 label")!=0)
          {
           ObjectCreate("H4 label", OBJ_TEXT, 0, Time[20], H4);
           ObjectSetText("H4 label", " H4", 8, "Arial", White);
          }
        else
          {
           ObjectMove("H4 label", 0, Time[20], H4);
          }
        if(ObjectFind("H3 label")!=0)
          {
           ObjectCreate("H3 label", OBJ_TEXT, 0, Time[20], H3);
           ObjectSetText("H3 label", " H3", 8, "Arial", White);
          }
        else
          {
           ObjectMove("H3 label", 0, Time[20], H3);
          }
        if(ObjectFind("L3 label")!=0)
          {
           ObjectCreate("L3 label", OBJ_TEXT, 0, Time[20], L3);
           ObjectSetText("L3 label", " L3", 8, "Arial", White);
          }
        else
          {
           ObjectMove("L3 label", 0, Time[20], L3);
          }
        if(ObjectFind("L4 label")!=0)
          {
           ObjectCreate("L4 label", OBJ_TEXT, 0, Time[20], L4);
           ObjectSetText("L4 label", " L4", 8, "Arial", White);
          }
        else
          {
           ObjectMove("L4 label", 0, Time[20], L4);
          }
        //---- Draw Camarilla lines on Chart
        if(ObjectFind("H4 line")!=0)
          {
           ObjectCreate("H4 line", OBJ_HLINE, 0, Time[40], H4);
           ObjectSet("H4 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("H4 line", OBJPROP_COLOR, Yellow);
          }
        else
          {
           ObjectMove("H4 line", 0, Time[40], H4);
          }
        if(ObjectFind("H3 line")!=0)
          {
           ObjectCreate("H3 line", OBJ_HLINE, 0, Time[40], H3);
           ObjectSet("H3 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("H3 line", OBJPROP_COLOR, Yellow);
          }
        else
          {
           ObjectMove("H3 line", 0, Time[40], H3);
          }
        if(ObjectFind("L3 line")!=0)
          {
           ObjectCreate("L3 line", OBJ_HLINE, 0, Time[40], L3);
           ObjectSet("L3 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("L3 line", OBJPROP_COLOR, Yellow);
          }
        else
          {
           ObjectMove("L3 line", 0, Time[40], L3);
          }
        if(ObjectFind("L4 line")!=0)
          {
           ObjectCreate("L4 line", OBJ_HLINE, 0, Time[40], L4);
           ObjectSet("L4 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("L4 line", OBJPROP_COLOR, Yellow);
          }
        else
          {
           ObjectMove("L4 line", 0, Time[40], L4);
          }
       }
  //-------End of Draw Camarilla Lines
  //------ Midpoints Pivots
     if (midpivots==true)
       {
        if(ObjectFind("M5 label")!=0)
          {
           ObjectCreate("M5 label", OBJ_TEXT, 0, Time[20], M5);
           ObjectSetText("M5 label", " M5", 8, "Arial", White);
          }
        else
          {
           ObjectMove("M5 label", 0, Time[20], M5);
          }
        if(ObjectFind("M4 label")!=0)
          {
           ObjectCreate("M4 label", OBJ_TEXT, 0, Time[20], M4);
           ObjectSetText("M4 label", " M4", 8, "Arial", White);
          }
        else
          {
           ObjectMove("M4 label", 0, Time[20], M4);
          }
        if(ObjectFind("M3 label")!=0)
          {
           ObjectCreate("M3 label", OBJ_TEXT, 0, Time[20], M3);
           ObjectSetText("M3 label", " M3", 8, "Arial", White);
          }
        else
          {
           ObjectMove("M3 label", 0, Time[20], M3);
          }
        if(ObjectFind("M2 label")!=0)
          {
           ObjectCreate("M2 label", OBJ_TEXT, 0, Time[20], M2);
           ObjectSetText("M2 label", " M2", 8, "Arial", White);
          }
        else
          {
           ObjectMove("M2 label", 0, Time[20], M2);
          }
        if(ObjectFind("M1 label")!=0)
          {
           ObjectCreate("M1 label", OBJ_TEXT, 0, Time[20], M1);
           ObjectSetText("M1 label", " M1", 8, "Arial", White);
          }
        else
          {
           ObjectMove("M1 label", 0, Time[20], M1);
          }
        if(ObjectFind("M0 label")!=0)
          {
           ObjectCreate("M0 label", OBJ_TEXT, 0, Time[20], M0);
           ObjectSetText("M0 label", " M0", 8, "Arial", White);
          }
        else
          {
           ObjectMove("M0 label", 0, Time[20], M0);
          }
        //---- Draw Midpoint Pivots on Chart
        if(ObjectFind("M5 line")!=0)
          {
           ObjectCreate("M5 line", OBJ_HLINE, 0, Time[40], M5);
           ObjectSet("M5 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("M5 line", OBJPROP_COLOR, Blue);
          }
        else
          {
           ObjectMove("M5 line", 0, Time[40], M5);
          }
        if(ObjectFind("M4 line")!=0)
          {
           ObjectCreate("M4 line", OBJ_HLINE, 0, Time[40], M4);
           ObjectSet("M4 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("M4 line", OBJPROP_COLOR, Blue);
          }
        else
          {
           ObjectMove("M4 line", 0, Time[40], M4);
          }
        if(ObjectFind("M3 line")!=0)
          {
           ObjectCreate("M3 line", OBJ_HLINE, 0, Time[40], M3);
           ObjectSet("M3 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("M3 line", OBJPROP_COLOR, Blue);
          }
        else
          {
           ObjectMove("M3 line", 0, Time[40], M3);
          }
        if(ObjectFind("M2 line")!=0)
          {
           ObjectCreate("M2 line", OBJ_HLINE, 0, Time[40], M2);
           ObjectSet("M2 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("M2 line", OBJPROP_COLOR, Blue);
          }
        else
          {
           ObjectMove("M2 line", 0, Time[40], M2);
          }
        if(ObjectFind("M1 line")!=0)
          {
           ObjectCreate("M1 line", OBJ_HLINE, 0, Time[40], M1);
           ObjectSet("M1 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("M1 line", OBJPROP_COLOR, Blue);
          }
        else
          {
           ObjectMove("M1 line", 0, Time[40], M1);
          }
        if(ObjectFind("M0 line")!=0)
          {
           ObjectCreate("M0 line", OBJ_HLINE, 0, Time[40], M0);
           ObjectSet("M0 line", OBJPROP_STYLE, STYLE_DASHDOTDOT);
           ObjectSet("M0 line", OBJPROP_COLOR, Blue);
          }
        else
          {
           ObjectMove("M0 line", 0, Time[40], M0);
          }
       }
  //----End of Midpoint Pivots Draw
  //---- End Of Program
     return(0);
    }
  //+------------------------------------------------------------------+
打赏