📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    一个指标报警的问题,请高手给予指教!

    2011-11-11 · 10016 阅读
    想给这个指标增加报警功能,但是在两线粘连的情况下无法正常报警,出现多空同时报警且不能发出声音的情况,请高手给予修改并指教。
      要求在两线交叉后的第二根K线时发出报警声音,如果可能的话控制报警次数为5次并发送1次邮件报警。
      #property copyright \"Copyright ?2006, Hu.\"
      #property link      \"\"
      #property indicator_separate_window
      #property indicator_buffers 6
      #property indicator_color1 Red
      #property indicator_color2 Green
      #property indicator_color3 Blue
      #property indicator_color4 Salmon
      #property indicator_color5 Yellow
      #property indicator_color6 White
      #property indicator_level1 0
      #property indicator_level2 10000
      extern bool bTrend = FALSE;
      double g_ibuf_80[];
      double g_ibuf_84[];
      double g_ibuf_88[];
      double g_ibuf_92[];
      double g_ibuf_96[];
      double g_ibuf_10000[];
      extern int EMA_Period1 = 9;
      extern int EMA_Period2 = 3;
      extern int EMA_Period3 = 30;
      extern int EMA_Period4 = 5;
      extern int SMA_Period1 = 34;
      extern int SMA_Period2 = 89;
      extern int LH_Period1 = 34;
      extern int LH_Period2 = 89;
      extern int LH_Period3 = 250;
      extern bool alert_folkupb = FALSE;
      extern bool alert_folkdwb = FALSE;
      int gi_114 = 0;
      int gi_118 = 0;
      int init() {
         SetIndexStyle(0, DRAW_LINE);
         SetIndexBuffer(0, g_ibuf_80);
         SetIndexLabel(0, \"BDC\");
         SetIndexStyle(1, DRAW_LINE);
         SetIndexBuffer(1, g_ibuf_84);
         SetIndexLabel(1, \"BDD\");
         SetIndexStyle(2, DRAW_LINE);
         SetIndexBuffer(2, g_ibuf_88);
         SetIndexLabel(2, \"BDE\");
         SetIndexStyle(3, DRAW_LINE);
         SetIndexBuffer(3, g_ibuf_92);
         SetIndexLabel(3, \"BDF\");
         SetIndexStyle(4, DRAW_LINE);
         SetIndexBuffer(4, g_ibuf_96);
         SetIndexLabel(4, \"中期趋势\");
         SetIndexStyle(5, DRAW_LINE);
         SetIndexBuffer(5, g_ibuf_10000);
         SetIndexLabel(5, \"长期趋势\");
         IndicatorShortName(\"BDQS BDC: BDD: BDE: BDF:\" + \"中期趋势:kw\" + \"长期趋势:km\" + \"风险区:80,\" + \"安全区:20\");
         return (0);
      }
      int deinit() {
         return (0);
      }
      int start() {
         int l_count_12;
         double ld_20;
         double l_low_28;
         double l_high_36;
         double ld_92;
         double ld_10000;
         double ld_unused_108;
         int li_0 = IndicatorCounted();
         if (li_0 < 0) return (-1);
         if (li_0 > 0) li_0--;
         int li_4 = Bars - li_0;
         double ld_116 = 2.0 / (EMA_Period1 + 1);
         double ld_124 = 2.0 / (EMA_Period2 + 1);
         double ld_132 = 2.0 / (EMA_Period3 + 1);
         double ld_140 = 2.0 / (EMA_Period4 + 1);
         for (int li_8 = li_4; li_8 >= 0; li_8--) {
            ld_10000 = 0;
            ld_unused_108 = 0;
            ld_20 = (2.0 * Close[li_8] + High[li_8] + Low[li_8]) / 4.0;
            l_low_28 = Low[iLowest(NULL, 0, MODE_LOW, LH_Period1, li_8)];
            l_high_36 = High[iHighest(NULL, 0, MODE_HIGH, LH_Period1, li_8)];
            if (l_high_36 - l_low_28 == 0.0) ld_92 = 0;
            else ld_92 = 10000.0 * ((ld_20 - l_low_28) / (l_high_36 - l_low_28));
            if (li_8 == Bars - 2) {
               ld_20 = (2.0 * (Close[li_8 + 1]) + (High[li_8 + 1]) + (Low[li_8 + 1])) / 4.0;
               l_low_28 = Low[li_8 + 1];
               l_high_36 = High[li_8 + 1];
               if (l_high_36 - l_low_28 == 0.0) ld_92 = 0;
               else ld_92 = 10000.0 * ((ld_20 - l_low_28) / (l_high_36 - l_low_28));
               g_ibuf_80[li_8] = ld_92;
               g_ibuf_88[li_8] = ld_92;
               g_ibuf_84[li_8] = g_ibuf_80[li_8];
               g_ibuf_92[li_8] = ld_92;
            } else {
               g_ibuf_80[li_8] = ld_92 * ld_116 + (g_ibuf_80[li_8 + 1]) * (1 - ld_116);
               g_ibuf_88[li_8] = ld_92 * ld_132 + (g_ibuf_88[li_8 + 1]) * (1 - ld_132);
               ld_92 = 0.667 * (g_ibuf_80[li_8 + 1]) + 0.333 * g_ibuf_80[li_8];
               g_ibuf_84[li_8] = ld_92 * ld_124 + (g_ibuf_84[li_8 + 1]) * (1 - ld_124);
               g_ibuf_92[li_8] = g_ibuf_88[li_8] * ld_140 + (g_ibuf_92[li_8 + 1]) * (1 - ld_140);
            }
            if (bTrend == TRUE) {
               ld_20 = Close[li_8];
               l_low_28 = Low[iLowest(NULL, 0, MODE_LOW, LH_Period2, li_8)];
               l_high_36 = High[iHighest(NULL, 0, MODE_HIGH, LH_Period2, li_8)];
               if (l_high_36 - l_low_28 == 0.0) ld_92 = 0;
               else ld_92 = 10000.0 * ((ld_20 - l_low_28) / (l_high_36 - l_low_28));
               if (li_8 >= Bars - SMA_Period1) {
                  l_count_12 = 0;
                  for (int li_16 = li_8; l_count_12 < SMA_Period1; li_16++) {
                     ld_20 = Close[li_16];
                     l_low_28 = Low[iLowest(NULL, 0, MODE_LOW, LH_Period2, li_16)];
                     l_high_36 = High[iHighest(NULL, 0, MODE_HIGH, LH_Period2, li_16)];
                     if (l_high_36 - l_low_28 == 0.0) ld_92 = 0;
                     else ld_92 = 10000.0 * ((ld_20 - l_low_28) / (l_high_36 - l_low_28));
                     ld_10000 += ld_92;
                     g_ibuf_96[li_16] = 0;
                     l_count_12++;
                  }
               } else ld_10000 = (g_ibuf_96[li_8 + 1]) * (SMA_Period1 - 1) + ld_92;
               g_ibuf_96[li_8] = ld_10000 / SMA_Period1;
               ld_20 = Close[li_8];
               l_low_28 = Low[iLowest(NULL, 0, MODE_LOW, LH_Period3, li_8)];
               l_high_36 = High[iHighest(NULL, 0, MODE_HIGH, LH_Period3, li_8)];
               if (l_high_36 - l_low_28 == 0.0) ld_92 = 0;
               else ld_92 = 10000.0 * ((ld_20 - l_low_28) / (l_high_36 - l_low_28));
               if (li_8 >= Bars - SMA_Period2) {
                  l_count_12 = 0;
                  for (li_16 = li_8; l_count_12 < SMA_Period2; li_16++) {
                     ld_20 = Close[li_16];
                     l_low_28 = Low[iLowest(NULL, 0, MODE_LOW, LH_Period3, li_16)];
                     l_high_36 = High[iHighest(NULL, 0, MODE_HIGH, LH_Period3, li_16)];
                     if (l_high_36 - l_low_28 == 0.0) ld_92 = 0;
                     else ld_92 = 10000.0 * ((ld_20 - l_low_28) / (l_high_36 - l_low_28));
                     ld_10000 += ld_92;
                     g_ibuf_10000[li_16] = 0;
                     l_count_12++;
                  }
               } else ld_10000 = (g_ibuf_10000[li_8 + 1]) * (SMA_Period2 - 1) + ld_92;
               g_ibuf_10000[li_8] = ld_10000 / SMA_Period2; }
       
            if (g_ibuf_80[li_8+3] < g_ibuf_84[li_8+3] && g_ibuf_80[li_8+2] > g_ibuf_84[li_8+2] && g_ibuf_80[li_8+1] > g_ibuf_84[li_8+1] &&  gi_114 != 1 && alert_folkdwb == TRUE) {
          
               Alert(\"[\" + Symbol() + \"][\" + Period() + \"分钟]zt:BDQ发生金叉!\");
               gi_114 = 1;
             
            
         }
         if (g_ibuf_80[li_8+3] > g_ibuf_84[li_8+3] && g_ibuf_80[li_8+2] < g_ibuf_84[li_8+2] && g_ibuf_80[li_8+1] < g_ibuf_84[li_8+1] && gi_114 != 2 && alert_folkupb == TRUE )  {
          
               Alert(\"[\" + Symbol() + \"][\" + Period() + \"分钟]zt:BDQ发生死叉!\");
             
               gi_114 = 2;
               
              }
           }
         return (0);
      }
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 29 个

    nihaoya78 LV5

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    太棒了!  

    纸老虎 LV6

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    我来看看!谢谢  

    外汇配资 LV5

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    帮顶  

    知足常乐 LV6

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    厉害!强~~~~没的说了!  

    叫花子 LV5

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    找个老师学习EA  

    后山俗人 LV5

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    呵呵 那就好好玩吧~~~~  

    qinkui007 LV5

    发表于 2012-11-22 01:36:01 | 显示全部楼层

    哎 怎么说那~~  

    记忆开始 LV3

    发表于 2015-1-25 15:42:42 | 显示全部楼层

    我靠

    街边捡幸福 LV3

    发表于 2015-1-31 03:47:36 | 显示全部楼层

    支持楼主
    123下一页
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服