以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  [求助]GetHistoryData不能获取足够的数据  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=97504)

--  作者:du_zb
--  发布时间:2016/5/17 10:00:56
--  [求助]GetHistoryData不能获取足够的数据
写了这样一个简单程序,想要获取最近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编辑过]

--  作者:du_zb
--  发布时间:2016/5/17 10:03:49
--  
代码的第三行没显示出来,应该是
sConCode="AG06"
[此贴子已经被作者于2016-5-17 10:04:30编辑过]

--  作者:yukizzc
--  发布时间:2016/5/17 10:12:29
--  

说明你本地缺少数据,工具-数据补充,这边进行下数据补充。

 


--  作者:du_zb
--  发布时间:2016/5/17 10:14:33
--  
那请问vba里有补充数据的函数吗?
而且我每天都做收盘作业,做了半个多月了,怎么只有5天的数据呢?

--  作者:du_zb
--  发布时间:2016/5/17 10:21:09
--  
另外,我怎么才能保证每次取历史数据都一定能获得想要的数据,而不是输出一堆0呢?
--  作者:yukizzc
--  发布时间:2016/5/17 10:25:16
--  

没有自动补数据的,不要打开图表,在动态显示盘右键-数据

这边查看下自己本地到底有多少数据。

你这边现在要确定的是本地数据的保存是否正确,先不要去理会vba输出这一遭。你可以在后台输出下historydata的count总数据量,

先把数据的问题解决了,再看后续问题


--  作者:王锋
--  发布时间:2016/5/17 10:25:24
--  
补充好历史数据,然后设定每天收盘作业,这样才能保证数据都能落地
--  作者:du_zb
--  发布时间:2016/5/17 10:31:39
--  
好的我试一下,谢谢。