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

是不是内置的序列值系统会保证每个Bar初始化,而序列函数则不一定? [开拓者 TB]

  • 咨询内容: 大家好!最近尝试的写策略被序列值(**Series)和序列函数(在代码中使用了**Series的函数,如:HighD(n)等)折磨,总是弄不太清楚什么时候要对其赋值才能保证程序按照预想的方式运行。

    我想问的是:
    1、如同Close, High这样的内置的序列值是否系统会保证初始化,从而在使用时不会出现因赋值而导致的错误结果;但是序列函数则需要对if语句的使用格外小心?
    2、请版主详细的讲解一下Series的形成机理,如:空间的分配,何时初始化,if语句在什么情况下会导致序列值的错误。(我想的有些头大)

    谢谢啦。

     

  • TB技术人员: 本帖最后由 vividboy 于 2013-7-13 20:22 编辑

    测试了一下好像前面的说法也不正确。我想问一下如同Close, High这样的序列变量是在什么时候初始化,什么时候赋值的?是在调用它的时候吗?

    比如有这样一个例子:
    Params

    Vars
            Numeric myValue;
    Begin
            If(Date == 20130712 && Time == 0.093500)
            {
                    myValue = CoefficientR(Close, OpenInt, 10);
                    Commentary("Rho = " + Text(myValue));
            }
    End

    如果去掉外面的If,则代码是正常运行的。但是增加了If后,代码在对应时间的输出就是错误值。

     

  • TB客服: 这个Series的使用和处置问题我看论坛帖子很多,希望管理员和斑竹能详细的介绍一下Series的初始化和使用的相关过程。为什么会出现可能的警告。以及上面的例子为什么会执行不正确。
    历史回溯是程序化交易的核心要素(统计需要),这个有差池很多策略的有效性就无从谈起,所以希望能弄清楚。谢谢。

     

  • 网友回复:
    vividboy 发表于 2013-7-15 10:54
    这个Series的使用和处置问题我看论坛帖子很多,希望管理员和斑竹能详细的介绍一下Series的初始化和使用的相 ...

    建议你先看看公式指南,里面有详细的介绍

     

  • 网友回复:
    ample 发表于 2013-7-15 10:57
    建议你先看看公式指南,里面有详细的介绍

    《指南》我全部都看了一遍,我看到比较相关的部分就是讲“序列变量”的,就是aaa, bbb赋值的问题。
    首先,我不太明白一些内置的序列变量是如何/在什么时候初始化的,比如:Close。
    其次,我也想不太明白,为什么使用条件(if-else)和不使用结果不一样,我不太明白这个机理是如何的?
    因为Close我们是不能赋值的,但是我取它的值和我在不在if-else中间为什么有关系呢?

    所以我希望能有个官方对序列变量初始化和使用机理(如:为什么if-else下会有问题)进行一个详细清晰的解释。

    如果还有其他的资料我没涉及也请告知。谢谢。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容