写了这样一个简单程序,想要获取最近50根K线的收盘价,
以下内容为程序代码:
1 Sub testHisData()
2
3 sC
4 sMarketCode="SQ"
5 CycType=5
6 t=50
7 Set HisData=MarketData.GetHistoryData(sConCode,sMarketCode,CycType,t)
8 for i=0 to t-1
9 application.MsgOut "Date: " & HisData.Date(i) & " Close: " & HisData.Close(i)
10 next
11
12 End Sub
但运行的时候发现只能获取最近5根K线的收盘价,这个问题在我打开了AG06合约的图表后自动解决了。我的问题是:
1.这个问题出现的原因是什么?
2.因为我是希望用VBA做一个后台交易程序,所以我想问如何在不打开图表(并且不进行任何人工干预)的前提下解决这个问题?
[此贴子已经被作者于2016-5-17 10:01:40编辑过]
代码的第三行没显示出来,应该是
sConCode="AG06"
[此贴子已经被作者于2016-5-17 10:04:30编辑过]
说明你本地缺少数据,工具-数据补充,这边进行下数据补充。
那请问vba里有补充数据的函数吗?
而且我每天都做收盘作业,做了半个多月了,怎么只有5天的数据呢?
另外,我怎么才能保证每次取历史数据都一定能获得想要的数据,而不是输出一堆0呢?
没有自动补数据的,不要打开图表,在动态显示盘右键-数据
这边查看下自己本地到底有多少数据。
你这边现在要确定的是本地数据的保存是否正确,先不要去理会vba输出这一遭。你可以在后台输出下historydata的count总数据量,
先把数据的问题解决了,再看后续问题
补充好历史数据,然后设定每天收盘作业,这样才能保证数据都能落地