我想实现在下列代码中,当价格到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);
}
//+------------------------------------------------------------------+ |