金钱汇集 发表于 2011-10-19 15:42:47

Bull老大求解!!跪谢!!

Bull知道NonlagDOT这个指标是怎样计算出来的吗?小弟初学MQL,它的源代码看不太懂,还请各位高手指点一二。
下面把指标的源代码粘贴上来,让大伙瞅瞅。

//+------------------------------------------------------------------+
//|                                                NonLagDOT.mq4      |
//+------------------------------------------------------------------+
#property copyright
#property link   

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_width1 2
#property indicator_color2 RoyalBlue
#property indicator_width2 2
#property indicator_color3 Red
#property indicator_width3 2


//---- input parameters
extern int   Price          = 0;
extern int   Length         = 10;
extern int   Displace       = 0;
extern int   Filter         = 0;
extern int   Color          = 1;
extern int   ColorBarBack   = 2;
extern doubleDeviation      = 0;         

double Cycle =4;

//---- indicator buffers
double MABuffer[];
double UpBuffer[];
double DnBuffer[];
double price[];
double trend[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
    int init()
    {
   int ft=0;
   string short_name;
//---- indicator line
   IndicatorBuffers(5);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexBuffer(0,MABuffer);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexBuffer(1,UpBuffer);
   SetIndexStyle(2,DRAW_ARROW);
   SetIndexBuffer(2,DnBuffer);
   SetIndexBuffer(3,price);
   SetIndexBuffer(4,trend);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
   SetIndexArrow(0,159);
   SetIndexArrow(1,159);
   SetIndexArrow(2,159);
   SetIndexArrow(3,159);
//---- name for DataWindow and indicator subwindow label
   short_name=\"NonLagDot(\"+Length+\")\";
   IndicatorShortName(short_name);
   SetIndexLabel(0,\"NLD\");
   SetIndexLabel(1,\"Up\");
   SetIndexLabel(2,\"Dn\");
//----
   SetIndexShift(0,Displace);
   SetIndexShift(1,Displace);
   SetIndexShift(2,Displace);
   
   SetIndexDrawBegin(0,Length*Cycle+Length);
   SetIndexDrawBegin(1,Length*Cycle+Length);
   SetIndexDrawBegin(2,Length*Cycle+Length);
//----
   return(0);
    }

//+------------------------------------------------------------------+
//| NonLagMA_v4                                                   |
//+------------------------------------------------------------------+
int start()
{
   int    i,shift, counted_bars=IndicatorCounted(),limit;
   double alfa, beta, t, Sum, Weight, step,g;
   double pi = 3.1415926535;   
   
   double Coeff =3*pi;
   int Phase = Length-1;
   double Len = Length*Cycle + Phase;
   
   if ( counted_bars > 0 )limit=Bars-counted_bars;
   if ( counted_bars < 0 )return(0);
   if ( counted_bars ==0 )limit=Bars-Len-1;
   if ( counted_bars < 1 )
   for(i=1;i=0;shift--)
   {      
   Weight=0; Sum=0; t=0;
         
      for (i=0;i 0) MABuffer = (1.0+Deviation/100)*Sum/Weight;
   
      if (Filter>0)
      {
      if( MathAbs(MABuffer-MABuffer) < Filter*Point ) MABuffer=MABuffer;
      }
      
      if (Color>0)
      {
      trend=trend;
      if (MABuffer-MABuffer > Filter*Point) trend= 1;
      if (MABuffer-MABuffer > Filter*Point) trend=-1;
         if (trend>0)
         {
         UpBuffer = MABuffer;
         if (trend

信和赢汇1 发表于 2012-11-22 01:12:18

#无语

muc.〢、 发表于 2012-11-22 01:12:18

希望可以用些时间了~````

□o□ 发表于 2012-11-22 01:36:01

不错,看看。

pap 发表于 2012-11-22 01:36:01

我好想升级

肆无忌惮 发表于 2012-11-22 01:36:01

原来这样也可以

杨子 发表于 2012-11-22 01:36:01

都是那么过来的

陈陈美妆 发表于 2012-11-22 01:36:01

技术研究、交流QQ:1534564486

vojhi 发表于 2012-11-22 01:36:01

世界上那些最容易的事情中,拖延时间最不费力。

wilf528 发表于 2014-12-22 03:40:59

没有使用说明书
页: [1] 2 3
查看完整版本: Bull老大求解!!跪谢!!