chieforex 发表于 2012-11-25 09:51

【求助】在指标上加上警报程序就卡死?

#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 Black
#property indicator_color2 Red
#property indicator_color3 Black
#property indicator_color4 Red


extern bool EmailON=false;
extern int FastEMA = 12;
extern int SlowEMA = 26;
extern int SignalSMA = 9;
double g_ibuf_88[];
double g_ibuf_92[];
double g_ibuf_96[];
double g_ibuf_100[];

int init() {
   SetIndexStyle(0, DRAW_HISTOGRAM);
   SetIndexStyle(1, DRAW_LINE);
   SetIndexDrawBegin(1, SignalSMA);
   IndicatorDigits(Digits + 1);
   SetIndexBuffer(0, g_ibuf_88);
   SetIndexBuffer(1, g_ibuf_92);
   SetIndexBuffer(2, g_ibuf_96);
   SetIndexBuffer(3, g_ibuf_100);
   SetIndexStyle(2, DRAW_ARROW);
   SetIndexStyle(3, DRAW_ARROW);
   SetIndexArrow(2, 233);
   SetIndexArrow(3, 234);
   IndicatorShortName("MACD(" + FastEMA + "," + SlowEMA + "," + SignalSMA + ")");
   SetIndexLabel(0, "MACD");
   SetIndexLabel(1, "Signal");
   return (0);
}

int start() {
   int li_4 = IndicatorCounted();
   if (li_4 > 0) li_4--;
   int li_0 = Bars - li_4;
   for (int li_8 = 0; li_8 < li_0; li_8++) g_ibuf_88 = iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, li_8) - iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, li_8);
   for (li_8 = 0; li_8 < li_0; li_8++) g_ibuf_92 = iMAOnArray(g_ibuf_88, Bars, SignalSMA, 0, MODE_SMA, li_8);
   for (li_8 = 0; li_8 < li_0; li_8++) {
      if (g_ibuf_88 < 0.0 && g_ibuf_88 > 0.0) g_ibuf_96 = g_ibuf_88;
   
      Alert(Symbol()+"MACD 上穿0轴");
      
         if (g_ibuf_88 > 0.0 && g_ibuf_88 < 0.0) g_ibuf_100 = g_ibuf_88;
      
      Alert(Symbol()+"MACD 下穿0轴");
      
   }
   return (0);
}请问,如题,加载上去就不断提示直至卡死,如何改写才让它只提示一次呢?谢谢!!!
页: [1]
查看完整版本: 【求助】在指标上加上警报程序就卡死?