欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → [求助]HistoryData设置第一根K线

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4162人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
D1in
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:27 积分:0 威望:0 精华:0 注册:2017/7/27 23:24:57
[求助]HistoryData设置第一根K线  发帖心情 Post By:2017/8/9 23:50:38 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/8/10 8:47:01 [只看该作者]

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

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

GetHistoryDataByDate

[此贴子已经被作者于2017/8/10 8:47:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
D1in
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:27 积分:0 威望:0 精华:0 注册:2017/7/27 23:24:57
  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/8/10 23:33:21 [只看该作者]

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



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
D1in
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:27 积分:0 威望:0 精华:0 注册:2017/7/27 23:24:57
  发帖心情 Post By: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)


 回到顶部
帅哥哟,离线,有人找我吗?
D1in
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:27 积分:0 威望:0 精华:0 注册:2017/7/27 23:24:57
  发帖心情 Post By:2017/8/11 22:15:37 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
D1in
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:27 积分:0 威望:0 精华:0 注册:2017/7/27 23:24:57
  发帖心情 Post By: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

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By: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分钟而言


 回到顶部
帅哥哟,离线,有人找我吗?
D1in
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:27 积分:0 威望:0 精华:0 注册:2017/7/27 23:24:57
  发帖心情 Post By:2017/8/15 22:30:22 [只看该作者]

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

现在碰到的新问题是:

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


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/8/16 8:39:46 [只看该作者]

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


 回到顶部