程序设计中,希望计算机时间每小时的56分55秒至57分00秒之间,检查信号是否发生我用了以下语句
if mod(CURRENTTIME,10000)>=5655 AND mod(CURRENTTIME,10000)<=5700 then
....
DEBUGFILE(.....)
end
后台运行用1秒“固定时间间隔”
我的理解是每1秒运行一次后台程序,这段时间会有5-7次信号输出,可是检查输出文件发现有26次信号
不知道为什么会这样?或许是我对“固定时间间隔”的触发机制理解有误,请指教,谢谢!
2015-02-26 13:56:55.317 4974 BUY 4804.42
2015-02-26 13:56:55.521 4974 BUY 4804.42
2015-02-26 13:56:55.536 4974 BUY 4804.42
2015-02-26 13:56:56.130 4974 BUY 4804.42
2015-02-26 13:56:56.146 4974 BUY 4804.42
2015-02-26 13:56:56.427 4974 BUY 4804.42
2015-02-26 13:56:56.442 4974 BUY 4804.42
2015-02-26 13:56:56.630 4974 BUY 4804.42
2015-02-26 13:56:56.833 4974 BUY 4804.42
2015-02-26 13:56:57.239 4972 BUY 4804.42
2015-02-26 13:56:57.443 4972 BUY 4804.42
2015-02-26 13:56:57.943 4972 BUY 4804.42
2015-02-26 13:56:58.146 4972 BUY 4804.42
2015-02-26 13:56:58.443 4974 BUY 4804.42
2015-02-26 13:56:58.646 4974 BUY 4804.42
2015-02-26 13:56:58.661 4974 BUY 4804.42
2015-02-26 13:56:58.849 4974 BUY 4804.42
2015-02-26 13:56:59.239 4974 BUY 4804.42
2015-02-26 13:56:59.552 4974 BUY 4804.42
2015-02-26 13:56:59.568 4974 BUY 4804.42
2015-02-26 13:56:59.755 4974 BUY 4804.42
2015-02-26 13:57:00.052 4974 BUY 4804.42
2015-02-26 13:57:00.255 4974 BUY 4804.42
2015-02-26 13:57:00.271 4974 BUY 4804.42
2015-02-26 13:57:00.552 4974 BUY 4804.42
2015-02-26 13:57:00.864 4974 BUY 4804.42
固定时间间隔指的是软件检测信号并下单的这个间隔,你这里的输出是公式刷新的频率,两者不是一个概念。
公式的刷新速度在工具-选项-盘中延迟刷新这边设置
检查了“盘中延迟刷新”,用的是默认1500毫秒。严格的说,我框定的时间段小于6秒,如:9:56:55.001--9:57:00.999如果“盘中延迟刷新”1.5秒一次,输出信号只能有4次,哪来的这26次信号?核对近两天输出,每个框定的时间段都超过20次信号输出
这样的刷新速度大大增加了CPU的占用。
问题已经查明,得出以下结论:1. 固定时间间隔 是后台公式运行的触发条件,当固定时间间隔设置为1秒时,每秒会运行一次后台公式,设置为2秒时每2秒运行一次后台公式
2. 后台公式运行与 盘中延时刷新无关
3. 当勾选“后台程序化交易对话框”左下角“分笔速率扫描”后,触发公式运行的既有固定时间间隔,还有分笔tick信号
以上结论经轮换勾选“分笔速率扫描”和“盘中延时刷新”,通过后台公式输出和VBA信号监控输出对比得出。
为论坛做一点小小的贡献,希望对大家有帮助。