金字塔现在的图表程序化交易时每次刷新,图表上有多少根K线,就会执行多少遍公式,如100根K线就会运行100遍公式,这种方式在历史回测时是没有问题的,但是在实盘时会大幅度降低交易效率,如果能够把前面的K线运算信息记录下来,那么每次刷新就仅仅需要在最后一根K线上运行,大大提高金字塔图表程序化交易的效率。目前交易开拓者已经实现此功能,希望金字塔也早日实现。
对比如下:
金字塔和交易开拓者图表交易时,都包含6个图表,每个图表包含100根K线,那么每次刷新时,金字塔需要运行600遍公式,而交易开拓者只需要运行6遍公式。
建议是个好建议,但是不知道目前设计的软件架构能够改变成这样
你怎么知道他是只刷6次?
他的CPU占用量只有金字塔的1/6嘛?
开拓者的这种方式,在最后一根K线图(比如最后一个数据),可能会漏算数据,特别是在网络不好时。
比如:网络中断时,有3根1分钟K线卡住了。第4根的时候才重新连接上
那么,中间漏掉的3根K线就没有计算到了
所以,在产生新的K线图的时候,都要从头到尾重新计算一遍,才能保证信号的正确性,否则会有问题
不是新K线产生的话,可以只重新计算最后一根的K线。因为前面的K线计算都是重复的
也许技术上有难度,或者稳定性不够
但从目前金字塔运行速度上来看,不要加载太多K线数量,计算速度还是非常快的。后台,10个逐K策略(960根)没啥延迟。
啊火的就是道理,如果TB真是这么做的,那么我们将怀疑这种做法的稳定性.
此外,做为用户来讲,应该是考虑软件的执行效率,而不是考虑软件的执行过程,即便金字塔是刷那么多,但是我们的效率也仍然高于他只刷最后一个的
你怎么知道他是只刷6次?
他的CPU占用量只有金字塔的1/6嘛?
交易开拓者刷新时只在最后一根K线运算
……
所以,在产生新的K线图的时候,都要从头到尾重新计算一遍,才能保证信号的正确性,否则会有问题
不是新K线产生的话,可以只重新计算最后一根的K线。因为前面的K线计算都是重复的
……
很有道理。如果只计算最后一根,会有问题。
但如阿火所言,在新K线产生一瞬间、和加载公式的一瞬间,从头到尾重新计算。其他情况只算最后一次就好了
能做到的话,效率应该是有一定提升。不过可能也不见得,具体的C++高手才懂了
开拓者的这种方式,在最后一根K线图(比如最后一个数据),可能会漏算数据,特别是在网络不好时。
比如:网络中断时,有3根1分钟K线卡住了。第4根的时候才重新连接上
那么,中间漏掉的3根K线就没有计算到了
所以,在产生新的K线图的时候,都要从头到尾重新计算一遍,才能保证信号的正确性,否则会有问题
不是新K线产生的话,可以只重新计算最后一根的K线。因为前面的K线计算都是重复的
也许技术上有难度,或者稳定性不够
但从目前金字塔运行速度上来看,不要加载太多K线数量,计算速度还是非常快的。后台,10个逐K策略(960根)没啥延迟。
金字塔应该记住最近一根K线时的各种状态,如果补全K线时,当然同时计算补全的数据了。
金字塔如果一个框架开6个窗口,每个窗口100跟左右,就很卡,交易开拓者就不会,原因应该就是这个。