打印本文打印本文 关闭窗口关闭窗口

求教一个问题关于CLOSE D

作者:开拓者 TB 来源:cxh99.com 发布时间:2013年07月17日
  • 咨询内容: Params
            Numeric daysAgo(2);
    Vars
            NumericSeries barCnt;
            NumericSeries dayClose;
            Numeric i;
            Numeric j;
            Numeric nIndex(0);
            Numeric CBIndex;
    Begin
            CBIndex = CurrentBar;
            If(CBIndex == 0 || Date != Date[1])
            {
                    barCnt = 1;
            }Else
            {
                    barCnt = barCnt + 1;
            }
            dayClose = Close;
                   
            If(daysAgo == 0)
            {
                    return dayClose;
            }Else//从这里这个ELSE就不理解了,求解释关于下面这一部分的意义所在。
            {
                    For i = 1 To daysAgo
                    {
                            If( i == 1)
                            {       
                                    j = 0; //还有这个J的存在意义。
                            }Else
                            {
                                    j = j + BarCnt[j];                               
                            }
                            If (j > CBIndex )
                                    Return InvalidNumeric;
                            nIndex = nIndex + BarCnt[j];
                    }
                    Return dayClose[nIndex];
            }
    End
    如果 DAYSAGEO=2,在ELSE里,是怎么个情况,可能在这个地方背住了,过不来,求大神解释一下,

     

  • TB技术人员: 又来了,基本上每个初学的都在这里卡住了

    i=1,j=0,nIndex=BarCnt[0]即从当天开盘到当前的K线数

    i=2,j=BarCnt[0]
    nIndex = BarCnt[0]+BarCnt[BarCnt[0]](往前回溯BarCnt[0]即前一天最后一根K线,那么这个就是从前一天第一根K线到前一天最后一K的总K线数。。。)
    那么这个nIndex就是从前一天第一根K线到今天最新一根K线的K线数了
    dayClose[nIndex]就是两天前的收盘价了

     

  • TB客服: 里面的几个嵌套给我闹得有点迷糊,BarCnt[BarCnt[0],是最后一根K线,也就是储存着全天K线数量,然后又几天就向前累加几个BarCnt[BarCnt[0],是这个意思吧,最后累加起来,返回当日的DAYCLOSE,完事,顺便在求教一下,TB有调试模式吗?怎么能够逐行调试,然后看到变量值?有办法做到吗?
打印本文打印本文 关闭窗口关闭窗口