Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]HistoryData设置第一根K线

1楼
D1in 发表于:2017/8/9 23:50:38

GetPosFromDate   得到指定日期时间的数据的基于0索引的序号
请问:1分钟K线,如何设置当日(交易日)的第一根K线为0索引?

2楼
yukizzc 发表于:2017/8/10 8:47:01

设置不了,这个函数是告诉你指定日期的数据在数据集中是第几位

你要指定日期开始读取数据用这个marketdata对象下的

GetHistoryDataByDate

[此贴子已经被作者于2017/8/10 8:47:41编辑过]
3楼
D1in 发表于:2017/8/10 22:48:28

请问为什么我用下列语句取到的是1000条数据,目的是想取到当天的所有数据即可。
Set HistoryData = marketdata.GetHistoryDataByDate(Stock,Market,0,date,date)

使用:HistoryData.date(0) = "2017/8/11" 进行限制后也是一样的效果 HistoryData.count=1000

4楼
王锋 发表于:2017/8/10 23:33:21

你用的什么版本,建议升级到4.3新版

5楼
D1in 发表于:2017/8/11 21:26:13

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)

6楼
D1in 发表于:2017/8/11 22:15:37

继续在4.22下运行,未改代码,22:06分开始所取K线数量符合“当日”内的K线。

7楼
D1in 发表于:2017/8/11 23:06:50

之后又不对了,运行结果:
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

 

 

8楼
yukizzc 发表于:2017/8/14 16:36:14

Set HistoryData = marketdata.GetHistoryDataByDate("if00","zj",0, date&" 09:00:00", date&" 15:00:00")
application.MsgOut HistoryData.Count

指定具体时间,对于1分钟而言

9楼
D1in 发表于:2017/8/15 22:30:22

多谢老师。确实解决了(在K线齐全的情况下)。

现在碰到的新问题是:

读1分钟K线历史数据发现数据不足,通过菜单工具---数据补充(1分钟K线),完成之后重启金字塔,运行结果数据还是不全。(比如现在夜盘合约应该有86根K线,多数只显示7根。)
将这合约手动打开技术分析页面后,打开过的合约K线数量正确。请问,如果不打开technic框架,通过marketdata或者别的相关调用,能不能完成补充K线的功能?

10楼
yukizzc 发表于:2017/8/16 8:39:46

不行,你必须事先把对应数据都补充齐全

共10 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.04297 s, 2 queries.