您现在的位置:程序化交易>> 期货公式>> 交易开拓者(TB)>> 开拓者知识>>正文内容

openD(1)在条件语句中的用法? - TradeBlazer公式 [开拓者 TB]

  • 咨询内容: 请问为什么openD不能用在IF语句中?如果先把openD赋值给一个变量,在用在IF语句中,就能获得正确的之。为什么?

     

  • TB技术人员: 举个例子。
    现在有一本历史书,每一页都记录相应年代发生的事件。
    比如此书第100页记录的是秦朝的历史。那么,如果你想要知道秦朝的事,找到第一百页,就能看到内容了。
    那如果此时给一个要求,只能翻阅第130页之后的内容,然后再问你,秦朝是哪年建朝的?这样,能查得到吗?

    同理,序列函数是通过一些序列值才能计算得到当前的值的。如果不能给足此完整的序列值,如何能计算出来正常的结果?
    而你用了在条件语句里,就是对其计算所需的序列值做了一定的条件限定呀。

    举的例子不一定好。试着大概理解一下吧,以后想到更好的例子再换。

     

  • TB客服: 非常感谢您的详细回答!

    这里是openD的源代码,请教哪里有您说的这个限制?

    Params
            Numeric daysAgo(2);
    Vars
            NumericSeries barCnt;
            NumericSeries dayOpen;
            Numeric i;
            Numeric j;
            Numeric nIndex(0);
            Numeric CBIndex;
    Begin
            CBIndex = CurrentBar;
            If(CBIndex == 0 || Date != Date[1])
            {
                    barCnt = 1;
                    dayOpen = Open;
            }Else
            {
                    barCnt = barCnt + 1;
            }
                   
            If(daysAgo == 0)
            {
                    return dayOpen;
            }Else
            {
                    For i = 1 To daysAgo
                    {
                            If( i == 1)
                            {       
                                    j = 0;
                            }Else
                            {
                                    j = j + BarCnt[j];                               
                            }
                            If (j > CBIndex )
                                    Return InvalidNumeric;
                            nIndex = nIndex + BarCnt[j];
                    }
                    Return dayOpen[nIndex];
            }
    End

 

如果以上指标公式不适用于您常用的行情软件

或者您想改编成选股公式,以便快速选出某种形态个股的话,

可以联系我们相关技术人员 QQ: 262069696  点击在线交流进行 有偿 改编!

 


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容