请教一下:TB在每个TICK到来时到底如何调用公式应用? [开拓者 TB]
- 咨询内容:
我最近在实盘中遇到多次类似“公式应用[****]在主商品[IF1411]上出现交易讯号消失,可能导致您的持仓不匹配,请检查公式算法!”的提示。
多次检查自己的公式应用,尚未发现明显错误。
记得某个文档里说过,在盘中交易过程中,每来一个新的TICK(一条新行情数据),TB都会用此数据在最后一个BAR上调用一次公式应用,但是之前的“旧BAR”,就不会再调用了(历史已成历史,不需要再去重算,可以理解)。
因为行情数据可能会来得很快,来不及处理。或者因为网络拥塞,使多个TICK“堆积”而突然同时到达,所以TB不能保证针对每个TICK都调用一次公式应用,只会用一批TICK当中最后一个调用一次公式应用。但是可以保证每次执行公式应用都会完整地执行,也就是说不会在执行过程中突然“KILL”我。
我的问题是:
1.漏掉的TICK会不会事后“补执行”?如果会,就可能导致它之后的TICK对应的指标值发生改变(大多数指标都依赖历史数据)。从而使我收到“信号消失”的提示。
2.针对同一个TICK,系统会不会执行公式应用两次或者两次以上(比如用户缩放、平移窗口,导致整个图像重绘)?这也可能导致前述现象。
3.具体到TICK图中(BarType == 2 && BarInterval == 0),每来一个TICK都会创建一个BAR。如果漏处理一个TICK,图上是否还出现这个BAR?如果出现,我的指标值怎么办?因为你根本没来得及调用我,它的指标值无从谈起?当然就更影响后续BAR的指标值的确定性了!
如果不执行,为什么我用FileAppend写出的盘中数据,和盘后清除掉再重新上线获取的数据,是一致的?只是TIME字段有别(详解我的另一个帖子:http://bbs.tb18.net/thread-50902-1-1.html)。
也就是盘中的Tick数和盘后重新回测的Tick数一致。按说如果有丢包、抛弃,我自己记录的Tick应该少一些,而且此时我一直不断被提示“交易信号消失”。
按照我的粗浅理解:历史已成历史,不论算几遍,应该都是确定的。
如果我的交易信号是在CurrentBar == 123这个Tick计算出的,之后你也不会用它再来执行公式应用,在此Bar及其以前的指标值都已是“既成事实”,怎么可能“消失”。
到了CurrentBar == 124及其以后,就算得出不同的信号,那也是我自己应该考虑和处理的问题。比如“快均线”在“慢均线”附近不停来回摆动,这是每一个交易系统都必须面对的问题。
难道系统只是“善意”地提醒?认为CurrentBar == 200或更远之后的交易信号改变是合理的?而CurrentBar == 124就突然出现信号改变就不合理?
粗浅认识,如有冒犯,还望海涵!如蒙赐教,不胜感激!!
希望TB越做越好! - TB技术人员:
我觉得把,每个tick上是应该带有某种时间戳的,这样的话,TB根据现在的时间,自然不会去处理“漏掉”的tick。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 1145508240 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容