建议把只刷最后一根K线模式改进一下,新来一根K线时也不要从头刷一遍,也是只刷最后一根K线。程序实现很简单,记住第 N-1 根K线时的状态,平时只刷第 N 根K线,第 N+1根K线来的时候,把第N 根K线最后刷一下,记住第N根K线时的状态,然后只刷第N+1根K线。
测试发现,你们的只刷最后一根K线,在出现新的一根K线时,会从头到尾刷一遍,然后改为只刷最后1根K线,所以每根K线的头5秒会CPU利用率彪升80%以上,当然了都用的只刷最后1根K线。
您好, 新的K线生成时本身就不会去刷历史的K线
您是从CPU变化来判断的? 新的K线生成,公式会在新的K线上从头到尾刷新一次导致您CPU过高,没有依据性!
仅刷最后根K线: 只在第一次加载公式时在每根历史K线上完整的计算一遍公式,其后就只在最后一根K线上做完整计算,历史K产生的信号不会随行情变化而变化
最好的检测方法就是楼主在图上叠加信号闪烁的策略,看下K线走完后对应的信号会不会有变化即可,cpu反应不了问题
具体方法已在3楼列出,楼主可以试试!
调用您又间接的加大了CPU的使用
从日志中,真看不出来您反馈的问题
请您指明
2013-11-26 15:14:48.663 ------------------------------
DATE是20131126;
TIME是151500;
CURRENTDATE是20131126;
CURRENTTIME是151448;
2013-11-26 15:14:49.538 ------------------------------
DATE是20131126;
TIME是151500;
CURRENTDATE是20131126;
CURRENTTIME是151449;
2013-11-26 15:14:49.756 ------------------------------
DATE是20131126;
TIME是151500;
CURRENTDATE是20131126;
CURRENTTIME是151449;
2013-11-26 15:14:50.522 ------------------------------
DATE是20131126;
TIME是151500;
CURRENTDATE是20131126;
CURRENTTIME是151450;
2013-11-26 15:14:51.069 ------------------------------
DATE是20131126;
TIME是151500;
CURRENTDATE是20131126;
CURRENTTIME是151451;
2013-11-26 15:14:51.397 ------------------------------
DATE是20131126;
TIME是151500;
CURRENTDATE是20131126;
CURRENTTIME是151451;
楼主看的真仔细
我们再分析一下,明天给您回复,非常感谢~~~
目前的运行机制确实是这样的,金字塔这么做的主要目的是让信号的刷新前后保持一致,如果仅仅从头导致不对前面的信号进行修正,那么最后计算出来的策略结果将是紊乱的。
举例:策略中使用了跨周期指标引用,公式中使用了ZIG函数,盘中的信号闪烁等等情况。