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

    求这跟均线指标源码

    yanye LV3
    2023-04-13 · 2592 阅读
    可变色趋势压力线.ex4 售价: 2 枚金币 (一共需要4金币)
    122750y879prffwsfzwjbj.png
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 6 个

    qwe11 LV17

    发表于 2023-4-13 10:37:19 | 显示全部楼层

    论坛里到处都是

    大宽 LV3

    发表于 2023-4-13 11:34:05 | 显示全部楼层

    这类均线变色的指标很多,
    Ma in color (mtf).mq4

    评分

    参与人数 1金币 +5 收起 理由
    yanye + 5

    查看全部评分

    yanye LV3

    发表于 2023-4-14 00:27:17 | 显示全部楼层

    这个指标不是我发的那个

    yanye LV3

    发表于 2023-4-14 00:27:58 | 显示全部楼层

    我要的是指标源码

    qwe11 LV17

    发表于 2023-4-14 10:46:26 | 显示全部楼层

    //
    //
    #property copyright " "
    //----
    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 Red
    #property indicator_color2 LawnGreen
    #property indicator_width1  0
    #property indicator_width2  0
    //----


    extern bool SoundON=false;
    extern bool EmailON=false;
    //---- input parameters
    extern int KPeriod=5;
    extern int DPeriod=3;
    extern int Slowing=3;
    extern int MA_Method=0; // SMA 0, EMA 1, SMMA 2, LWMA 3
    extern int PriceField=0; // Low/High 0, Close/Close 1
    extern int OverBoughtLevel  =80;
    extern int OverSoldLevel    =20;
    extern bool show_KD_cross=false;
    extern bool show_K_OBOScross=true;
    extern bool show_D_OBOScross=false;
    extern string note_Price="PriceField:  Low/High = 0, Close/Close = 1";
    extern string _MA_Method="SMA0 EMA1 SMMA2 LWMA3";
    double CrossUp[];
    double CrossDown[];
    int flagval1=0;
    int flagval2=0;
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function                         |
    //+------------------------------------------------------------------+
    int init()
      {
      
       
      
      
    //---- indicators
       SetIndexStyle(0, DRAW_ARROW, EMPTY);
       SetIndexArrow(0, 2332);
       SetIndexBuffer(0, CrossUp);
       SetIndexStyle(1, DRAW_ARROW, EMPTY);
       SetIndexArrow(1, 234);
       SetIndexBuffer(1, CrossDown);
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator deinitialization function                       |
    //+------------------------------------------------------------------+
    int deinit()
      {
    //----
    //----
       return(0);
      }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function                              |
    //+------------------------------------------------------------------+
      int start()
      {
       int limit, i, counter;
       double tmp=0;
       double fastMAnow, slowMAnow, fastMAprevious, slowMAprevious;
       double Range, AvgRange;
       int counted_bars=IndicatorCounted();
    //---- check for possible errors
       if(counted_bars<0) return(-1);
    //---- last counted bar will be recounted
       if(counted_bars>0) counted_bars--;
       limit=Bars-counted_bars;
         for(i=1; i<=limit; i++)
         {
          counter=i;
          Range=0;
          AvgRange=0;
          for(counter=i ;counter<=i+9;counter++)
            {
             //       AvgRange=AvgRange+MathAbs(iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN, i)-iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN, i+1));
             AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
            }
          Range=AvgRange/10;
          fastMAnow=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN, i);
          fastMAprevious=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_MAIN, i+1);
          slowMAnow=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_SIGNAL, i);
          slowMAprevious=iStochastic(NULL, 0, KPeriod, DPeriod, Slowing,MA_Method, PriceField, MODE_SIGNAL, i+1);
          CrossUp[i]=EMPTY_VALUE;
          CrossDown[i1]=EMPTY_VALUE;
          if
             (((show_KD_cross)&&(fastMAnow > slowMAnow) && (fastMAprevious < slowMAprevious))||
                ((show_K_OBOScross)&&(fastMAnow > OverSoldLevel) && (fastMAprevious < OverSoldLevel))||
                ((show_D_OBOScross)&&(slowMAnow > OverSoldLevel) && (slowMAprevious < OverSoldLevel)) )
            {
             if (i==1 && flagval1==0)
               {
                flagval1=1;
                flagval2=0;
                if (SoundON) Alert("BUY signal at Ask=",Ask,"\n Bid=",Bid,"\n Time=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
                if (EmailON) SendMail("BUY signal alert","BUY signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
               }
             CrossUp[i]=Low[i] - Range*0.5;
             //         CrossUp[i] = AvgRange;
             CrossDown[i]=EMPTY_VALUE;
            }
          else if
                (((show_KD_cross)&&(fastMAnow < slowMAnow) && (fastMAprevious > slowMAprevious))||
                   ((show_K_OBOScross)&&(fastMAnow < OverBoughtLevel) && (fastMAprevious > OverBoughtLevel))||
                   ((show_D_OBOScross)&&(slowMAnow < OverBoughtLevel) && (slowMAprevious > OverBoughtLevel)) )
               {
                if (i==1 && flagval2==0)
                  {
                   flagval2=1;
                   flagval1=0;
                   if (SoundON) Alert("SELL signal at Ask=",Ask,"\n Bid=",Bid,"\n Date=",TimeToStr(CurTime(),TIME_DATE)," ",TimeHour(CurTime()),":",TimeMinute(CurTime()),"\n Symbol=",Symbol()," Period=",Period());
                   if (EmailON) SendMail("SELL signal alert","SELL signal at Ask="+DoubleToStr(Ask,4)+", Bid="+DoubleToStr(Bid,4)+", Date="+TimeToStr(CurTime(),TIME_DATE)+" "+TimeHour(CurTime())+":"+TimeMinute(CurTime())+" Symbol="+Symbol()+" Period="+Period());
                  }
                CrossDown[i]=High[i] + Range*0.5;
                //        CrossDown[i] = AvgRange;
                CrossUp[i]=EMPTY_VALUE;
               }
         }
    //----
       return(0);
      }
    //+------------------------------------------------------------------+

    评分

    参与人数 1金币 +5 收起 理由
    yanye + 5 谢谢

    查看全部评分

    火火 LV2

    发表于 2023-9-13 20:47:20 | 显示全部楼层

    谢谢
    您需要登录后才可以回帖 登录 | 注册

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

    微信二维码

    有问题联系客服