GetPosFromDate 得到指定日期时间的数据的基于0索引的序号
请问:1分钟K线,如何设置当日(交易日)的第一根K线为0索引?
设置不了,这个函数是告诉你指定日期的数据在数据集中是第几位
你要指定日期开始读取数据用这个marketdata对象下的
GetHistoryDataByDate
请问为什么我用下列语句取到的是1000条数据,目的是想取到当天的所有数据即可。
Set HistoryData = marketdata.GetHistoryDataByDate(Stock,Market,0,date,date)
使用:HistoryData.date(0) = "2017/8/11" 进行限制后也是一样的效果 HistoryData.count=1000
你用的什么版本,建议升级到4.3新版
V4.22升级4.30后运行结果相同。HistoryData.count=1000. 目前暂时通过读取HistoryData.Date()之后用split()函数拆分,找出最近一次19:00:00的K线,从这根K线之后起算。希望能有高效直接的方法。
另外请问,最后两个参数用date date ,并不能将GetHistoryDataByDate限定在“当日”吗?如果不直接输入日期格式(比如"2017/8/11"),又想限定在当天(交易日),最后两个参数应该如何设定?
Set HistoryData = marketdata.GetHistoryDataByDate(Stock,Market,0, date, date)
继续在4.22下运行,未改代码,22:06分开始所取K线数量符合“当日”内的K线。
之后又不对了,运行结果:
C09 HistoryData.count=1000
AY01 HistoryData.count=109
CF01 HistoryData.count=1000
FG01 HistoryData.count=1000
I01 HistoryData.count=1000
JD01 HistoryData.count=1000
L01 HistoryData.count=1000
M01 HistoryData.count=1000
MA01 HistoryData.count=1000
OI01 HistoryData.count=1000
RU01 HistoryData.count=0
TA01 HistoryData.count=1000
Y01 HistoryData.count=1000
ZC01 HistoryData.count=1000
BUY01 HistoryData.count=343
P01 HistoryData.count=1000
重新启动电脑、重启金字塔都是这个结果。补数据也重复进行过。换周期为5分钟,也不正确:
C09 HistoryData.count=405
AY01 HistoryData.count=49
CF01 HistoryData.count=700
FG01 HistoryData.count=687
I01 HistoryData.count=687
JD01 HistoryData.count=405
L01 HistoryData.count=405
M01 HistoryData.count=687
MA01 HistoryData.count=1000
OI01 HistoryData.count=687
RU01 HistoryData.count=1000
TA01 HistoryData.count=687
Y01 HistoryData.count=687
ZC01 HistoryData.count=687
BUY01 HistoryData.count=0
P01 HistoryData.count=1000
关键代码如下,其中Stock Market预先存储在("Stock.ArrayString")中:
Set HistoryData = marketdata.GetHistoryDataByDate(Stock,Market,0,date,date)
Application.MsgOut Stock &" HistoryData.count="&HistoryData.count
marketdata.DestroyHistoryData
Set HistoryData = marketdata.GetHistoryDataByDate("if00","zj",0, date&" 09:00:00", date&" 15:00:00")
application.MsgOut HistoryData.Count
指定具体时间,对于1分钟而言
多谢老师。确实解决了(在K线齐全的情况下)。
现在碰到的新问题是:
读1分钟K线历史数据发现数据不足,通过菜单工具---数据补充(1分钟K线),完成之后重启金字塔,运行结果数据还是不全。(比如现在夜盘合约应该有86根K线,多数只显示7根。)
将这合约手动打开技术分析页面后,打开过的合约K线数量正确。请问,如果不打开technic框架,通过marketdata或者别的相关调用,能不能完成补充K线的功能?
不行,你必须事先把对应数据都补充齐全