查看:2096回复:1
[MT4指标]mt4里的kdj指标为啥不更新
mt4里的kdj指标为啥不更新
小时图,大跌之后反弹,kdj指标还是指向下,其他的行情软件已经转向了,咋办?
//+------------------------------------------------------------------+
//|                                                          KDJ.mq4 |
//|                      Copyright ?2005, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright ?2005, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Red
#property  indicator_color2  Yellow
#property  indicator_color3  Magenta
//Aqua
//---- input parameters
extern int       KPeriod=9;
extern int       DPeriod=3;
extern int       JPeriod=3;
double     ind_buffer1;
double     ind_buffer2;
double     ind_buffer3;
double     ind_buffer4;
double HighesBuffer;
double LowesBuffer;
int draw_begin1=0;
int draw_begin2=0;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(6);
   SetIndexBuffer(4, HighesBuffer);
   SetIndexBuffer(5, LowesBuffer);
   SetIndexBuffer(3, ind_buffer1);
//---- indicator lines
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, ind_buffer2);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1, ind_buffer3);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2, ind_buffer4);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("KDJ("+KPeriod+","+DPeriod+","+JPeriod+")");
   SetIndexLabel(1,"K");
   SetIndexLabel(2,"D");
   SetIndexLabel(3,"J");
//----
   draw_begin1=KPeriod+JPeriod;
   draw_begin2=draw_begin1+DPeriod;
   SetIndexDrawBegin(0,draw_begin1);
   SetIndexDrawBegin(1,draw_begin2);
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int start()
  {
   int    i,k;
   int    counted_bars=IndicatorCounted();
   double price;
//----
   if(Bars<=draw_begin2) return(0);
//---- initial zero
   if(counted_bars<1)
     {
      for(i=1;i<=draw_begin1;i++) ind_buffer1[Bars-i]=0;
      for(i=1;i<=draw_begin2;i++) ind_buffer2[Bars-i]=0;
     }
//---- minimums counting
   i=Bars-KPeriod;
   if(counted_bars>KPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      double min=1000000;
      k=i+KPeriod-1;
      while(k>=i)
        {
         price=Low[k];
         if(min>price) min=price;
         k--;
        }
      LowesBuffer=min;
      i--;
     }
//---- maximums counting
   i=Bars-KPeriod;
   if(counted_bars>KPeriod) i=Bars-counted_bars-1;
   while(i>=0)
     {
      double max=-1000000;
      k=i+KPeriod-1;
      while(k>=i)
        {
         price=High[k];
         if(maxdraw_begin1) i=Bars-counted_bars-1;
   while(i>=0)
     {
      double sumlow=0.0;
      double sumhigh=0.0;
      for(k=(i+JPeriod-1);k>=i;k--)
        {
         sumlow+=Close[k]-LowesBuffer[k];
         sumhigh+=HighesBuffer[k]-LowesBuffer[k];
        }
      if(sumhigh==0.0) ind_buffer1=100.0;
      else ind_buffer1=sumlow/sumhigh*100;
      i--;
     }
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
//---- signal line is simple movimg average
   for(i=0; i 
发表于:2008-04-01 08:20只看该作者
2楼 
;P ;P ;P kdj:lol :lol :lol
我希望能在这个市场学到价值一亿美金的经验











