继续前两天一个探索,我在SY市场建立了一个测试的品种TEST001,我本来打算是将其他品种定时保存到测试品种,然后在测试品种上进行操作。
比如我将CU13数据保存到TEST001,采用的是以下代码
Set History = MarketData.GetHistoryData("SQ","CU13",1)
History.SaveData("TEST001","SY",2)
Set History = MarketData.GetHistoryData("SQ","CU13",0)
History.SaveData("TEST001","SY",1)
Set History = MarketData.GetHistoryData("SQ","CU13",5)
History.SaveData("TEST001","SY",0)
Technic.Refresh()
然后用定时器调用该代码,然后我发现了一个很奇怪的事情。
如果我在CU13时,看日线,那么切换到TEST001,数据会跟随变化。但如果此时切换看1分钟线或者5分钟线,此时数据就不再变化。如果我看1分钟线,切换到TEST001,1分钟数据也会变化,然后在切换看日线或者5分钟线,数据就不便,切换会1分钟线,数据也不变。但是我打印后台数据确实是在变化的。每次都是这样的情况。
我测试了Technic.
ReCalcAllGridFromula(),则发现无论如何切换都不刷新
而ReCalcAllGrid ,InitAllGrid 虽然能保证数据刷新,但是由于每次都会跳回最后的K线,影响使用。
不知道造成这个问题的原因是是什么?麻烦指教,谢谢。
切换到1分钟周期,不变化的主要原因是1分钟周期的当日数据是从分笔生成出来的,不是保存在你本地硬盘的历史数据。
你可以考虑使用3.0最新版的VBA,保存数据后,打开前清空图表上的分笔数据。