有您的持续关注
我们会做得更好

指标QQE_chart将QQE指标改为在主图显示



QQE_chart指标图表效果如下:QQE指标

QQE_chart指标源码:

//+------------------------------------------------------------------+
//|                                                    QQE_chart.mq4 |
//|                                     Copyright 2014, QQ:125808047 |
//+------------------------------------------------------------------+
#property copyright "www.125808047.com"
#property link      "http://www.125808047.com/"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_width1 3
#property indicator_width2 3

extern int 滑周期 = 5;

int    RSI周期 = 140;
int    两倍周期;
int    始绘处;
double 黄线组[];
double 变动量幅[];
double 再滑量幅[];
double RSI[];
double 红线组[];
double 红跌箭[];
double 蓝涨箭[];

//------------初始化------------+

int init()
  {
   两倍周期= 2*RSI周期-1;
   
   if(两倍周期<滑周期)
      始绘处= 滑周期;
   else
      始绘处= 两倍周期;
      
   IndicatorBuffers(7);
   SetIndexBuffer(0, 红跌箭);
   SetIndexStyle(0, DRAW_ARROW);
   SetIndexArrow(0, 159);
   SetIndexLabel(0, "Value 1");
   SetIndexDrawBegin(0, 始绘处);
   
   SetIndexStyle(1, DRAW_ARROW);
   SetIndexBuffer(1, 蓝涨箭);
   SetIndexArrow(1, 159);
   SetIndexLabel(1, "Value 2");
   SetIndexDrawBegin(1, 始绘处);
   
   SetIndexBuffer(2, 变动量幅);
   SetIndexBuffer(3, 再滑量幅);
   SetIndexBuffer(4, RSI);
   
   SetIndexBuffer(5, 红线组);
   SetIndexBuffer(6, 黄线组);
   IndicatorShortName(StringConcatenate("QQE(", 滑周期, ")"));
   
   return(0);
  }
  
void deinit() {
   Comment("www.125808047.com");
}

//-----------主函数-------------+

int start()
  {
   double 前RSI滑;
   double 幅度;
   double 现值;
   
   if(Bars<=始绘处)
      return(0);
      
   int 已计= IndicatorCounted();
   
   //--归0
   if(已计<1){
      for(int i=Bars-始绘处; i<Bars; i++){
         黄线组[i]= 0;
         变动量幅[i]= 0;
         再滑量幅[i]= 0;
         RSI[i]= 0;
         红线组[i]= 0;
        }
     }
   
   
   已计= Bars-已计-1;
   
   //--RSI
   for(i=已计; i>=0; i--)
       RSI[i]= iRSI(NULL, 0, RSI周期, PRICE_CLOSE, i);

   //-RSI平滑
   for(i=已计; i>=0; i--){
      红线组[i]= iMAOnArray(RSI, 0, 滑周期, 0, MODE_EMA, i);
      变动量幅[i]= MathAbs(红线组[i+1]-红线组[i]);
     }

   //--再次平滑
   for(i=已计; i>=0; i--)
      再滑量幅[i]= iMAOnArray(变动量幅, 0, 两倍周期, 0, MODE_EMA, i);

      
   i= 已计+1;
   double 最后值= 黄线组[i];
   for(double RSI滑=iMAOnArray(RSI, 0, 滑周期, 0, MODE_EMA, i); i>0; RSI滑=前RSI滑){
      i--;
      前RSI滑= iMAOnArray(RSI, 0, 滑周期, 0, MODE_EMA, i);
      幅度= 4.236*iMAOnArray(再滑量幅, 0, 两倍周期, 0, MODE_EMA, i);
      现值= 最后值;
      
      if(前RSI滑<最后值){
         最后值= 前RSI滑+幅度;
         if(RSI滑<现值)
            if(最后值>现值)
               最后值= 现值;
        }
      else{
         if(前RSI滑>最后值){
            最后值= 前RSI滑-幅度;
            if(RSI滑>现值)
               if(最后值<现值)
                 最后值= 现值;
           }
        }
      黄线组[i]= 最后值;
     }
          
   for(i=已计; i>=0; i--){
      if(黄线组[i+1]<47 && 红线组[i]>黄线组[i] && 红线组[i+1]<黄线组[i+1])
         蓝涨箭[i]= Close[i];
         
      if(黄线组[i+1]>53 && 红线组[i]<黄线组[i] && 红线组[i+1]>黄线组[i+1])
         红跌箭[i]= Close[i];
     }   return(0);
  }

如您喜欢此文章请点下面分享按钮↴峰汇在线 » 指标QQE_chart将QQE指标改为在主图显示
上一篇:
下一篇:
分享到:更多 ()