客服热线:18391752892

这段RSI的代码怎么读呀?

   日期:2019-01-12     浏览:213    
马上注册,结交更多好友,下载更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 int start()
    {
  int    i,counted_bars=IndicatorCounted();
   double rel,negative,positive;
   if(Bars=RSIPeriod) i=Bars-counted_bars-1; /strong
   //--这句意思:如果已加载的K线为大于等于RSIPeriod时(已加载的K线已经超过RSIPeriod数时),i的值等于Bars-counted_bars-1.    请教:这句是否跟前面两句 i+Bars-RSIPeriod-1 重复了?是不是可以不需要这句呀,因为前一句时i已经=Bars-RSIPeriod-1了嘛。另外,这里的counted_bars它是会自动往后计算的么,它的值是会自动变化的么?
   while(i =0)
      {
     double sumn=0.0,sump=0.0;
     if(i==Bars-RSIPeriod-1)
        {
       int k=Bars-2;
         while(k =i)
          {
         rel=Close[k]-Close[k+1];
         if(rel 0) sump+=rel;
         else     sumn-=rel;
         k--;
          }
       positive=sump/RSIPeriod;
       negative=sumn/RSIPeriod;
        }
         //这一段,到这里我都还能理解。意思为计算当i==Bars-RSIPeriod-1的情况下,第i这条K线的positive和negative的值的情况。当执行完K=i之后,累计所有以计算额度值,并跳出循环。
         ?疑问:这里的i并没有出现i++或者i--的情况,那也就是说这个循环就只是计算从k=bars-2一直到k=i时,第 i根k线的positive和negative数据(此时i==Bars-RSIPeriod-1)。也就是说,这个循环只能得到当i RSIPeriod时的第一根K线(i==Bars-RSIPeriod-1)的数据了?
     else     //接下来这段我就完全不明白了,这里esle对应上面的if语句应为if(i==Bars-RSIPeriod-1),我这里不明白在什么情况下 会出现 i 不等于 !==Bars-RSIPeriod-1 的情况?(因为这里并没有出现i++或者i--之类的情况,i的值怎么会变呢?)
       {
       rel=Close-Close[i+1];
       if(rel 0) sump=rel;
       else     sumn=-rel;
       positive=(PosBuffer[i+1]*(RSIPeriod-1)+sump)/RSIPeriod;
       negative=(NegBuffer[i+1]*(RSIPeriod-1)+sumn)/RSIPeriod;
        }
     PosBuffer=positive;
     NegBuffer=negative;
     if(negative==0.0) RSIBuffer=0.0;
     else RSIBuffer=100.0-100.0/(1+positive/negative);
     i--;
      }
 //----
   return(0);
    }
 
 
      我是个新手,还在学习当中,这礼拜下班后连续的看了bull老大的教学视频,今天正好看到第12课,刚好讲到如何解读RSI指标这一课,课后复习我发现对这些代码解读不到位,几经考虑还是决定发上来,请教各前辈。希望最好能把 counted_bars和 if else循环这两个部分能彻底弄清楚是怎么运作的。
 谢谢了。
   
 
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!


特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情
推荐行情
点击排行