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

趋势持续因数指标TrendContinuation



TrendContinuation指标转换作者做了如下说明:趋势是市场中的重要组成部分,您当然应该能够确定它们。但是,确定趋势还不够,很重要的是确定当前趋势的方向。尽管趋势可以帮您在短期内大量赚钱,如果仓 位与市场相反,它们也使您快速输钱。为了避免这样的状况,作者开发了 “趋势持续因数” (TCF). 本指标的创建就是用于确定趋势和它的方向的。

TrendContinuation指标图表效果:TrendContinuation指标TrendContinuation指标源码:

//+------------------------------------------------------------------+
//|                              Trend continuation factor 2 mt4 .mq4|
//|                                  Conversion only Doc Gaines      |
//|                                  dr_richard_gaines@yahoo.com     |
//+------------------------------------------------------------------+
#property copyright " Copyright @2004, MetaQuotes Software Corp."
#property link      "http://www.125808047.com/"
//----
#property indicator_separate_window
#property indicator_color1 Blue
#property indicator_buffers 2
#property indicator_color2 Red
#property indicator_level1 0.000000
#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| External variables                                               |
//+------------------------------------------------------------------+
extern double n=20;
extern double CountBars=5000;
extern double t3_period=5;
extern double b=0.618;
//+------------------------------------------------------------------+
//| Special Convertion Functions                                     |
//+------------------------------------------------------------------+
int LastTradeTime;
//int shift;
double ExtHistoBuffer[];
double ExtHistoBuffer2[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetLoopCount(int loops)
  {
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetIndexValue(int shift, double value)
  {
   ExtHistoBuffer[shift]=value;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void SetIndexValue2(int shift, double value)
  {
   ExtHistoBuffer2[shift]=value;
  }
//+------------------------------------------------------------------+
//| End                                                              |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Initialization                                                   |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID);
   SetIndexBuffer(0, ExtHistoBuffer);
   SetIndexStyle(1, DRAW_LINE, STYLE_SOLID);
   SetIndexBuffer(1, ExtHistoBuffer2);
   return(0);
  }
  
  void deinit() 
  {
      Comment("www.125808047.com");
  }  
  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
//+------------------------------------------------------------------+
//| Local variables                                                  |
//+------------------------------------------------------------------+
   //double shift = 0;
   int cnt=0;
   double k_n=0;
   double k_p=0;
   int shiftt=0;
   double ch_p=0;
   double ch_n=0;
   double cff_p=0;
   double cff_n=0;
   double AccountedBars=0;
   double CF_p[5001];
   double CF_n[5001];
   double Change_p[5001];
   double Change_n[5001];
   double t3=0;
   double t32=0;
   double A1=0;
   double A2=0;
   double b2=0;
   double b3=0;
   double c1=0;
   double c2=0;
   double c3=0;
   double c4=0;
   double e1=0;
   double e2=0;
   double e3=0;
   double e4=0;
   double e5=0;
   double e6=0;
   double n1=0;
   double w1=0;
   double w2=0;
   double e12=0;
   double e22=0;
   double e32=0;
   double e42=0;
   double e52=0;
   double e62=0;
//----
   b2=b*b;
   b3=b2*b;
   c1=-b3;
   c2=(3*(b2+b3));
   c3=-3*(2*b2+b+b3);
   c4=(1+3*b+b3+3*b2);
   n1=t3_period;
   if(n1<1)n1=1;
   n1=1 + 0.5*(n1-1);
   w1=2/(n1 + 1);
   w2=1 - w1;
   SetLoopCount(0);
   // loop from first bar to current bar (with shift=0)
   //if(AccountedBars==0)AccountedBars=Bars-CountBars;
   
   int counted_bars = IndicatorCounted();
   if(counted_bars < 0)  return(-1);
   if(counted_bars > 0)   counted_bars--;
   int limit = Bars - counted_bars;
   if(counted_bars==0) limit-=1+n;
      
     for(cnt =0;cnt <=limit ;cnt ++)
     {
      int shift=limit - cnt;
        {
         if(Close[shift] > Close[shift+1])
           { Change_p[shift]=Close[shift]- Close[shift+1];
            CF_p[shift]= Change_p[shift] + CF_p[shift+1];
            Change_n[shift]=0;
            CF_n[shift]= 0;
           }
         else
           { Change_p[shift]=0;
            CF_p[shift]=0;
            Change_n[shift] =Close[shift+1]- Close[shift];
            CF_n[shift]=Change_n[shift]+ CF_n[shift+1];
           }
        }
        for(shiftt=shift+n;shiftt>=shift ;shiftt--)
        {
         ch_p=Change_p[shiftt] +ch_p;
         ch_n=Change_n[shiftt]+ch_n ;
         cff_p= CF_p[shiftt]+cff_p;
         cff_n= CF_n[shiftt]+cff_n;
        }
      k_p=ch_p-cff_n;
      k_n=ch_n-cff_p;
      A1=k_p;
      e1=w1*A1 + w2*e1;
      e2=w1*e1 + w2*e2;
      e3=w1*e2 + w2*e3;
      e4=w1*e3 + w2*e4;
      e5=w1*e4 + w2*e5;
      e6=w1*e5 + w2*e6;
      t3=c1*e6 + c2*e5 + c3*e4 + c4*e3;
      SetIndexValue(shift,t3);
      A2=k_n;
      e12=w1*A2 + w2*e12;
      e22=w1*e12 + w2*e22;
      e32=w1*e22 + w2*e32;
      e42=w1*e32 + w2*e42;
      e52=w1*e42 + w2*e52;
      e62=w1*e52 + w2*e62;
      t32=c1*e62 + c2*e52 + c3*e42 + c4*e32;
      SetIndexValue2(shift,t32);
      AccountedBars=AccountedBars+1;
      ch_p=0;
      ch_n=0;
      cff_p=0;
      cff_n=0;
     }
   return(0);
  }
//+------------------------------------------------------------------+

如您喜欢此文章请点下面分享按钮↴峰汇在线 » 趋势持续因数指标TrendContinuation
上一篇:
下一篇:
分享到:更多 ()