以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  报告一个数据bug,请尽快修复。2019-04-01  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=169119)

--  作者:bingying
--  发布时间:2019/4/1 14:37:05
--  报告一个数据bug,请尽快修复。2019-04-01

环境:阿里云服务器,金字塔python。

 

发现问题:上午python程序提示,本机j00、p00、m00等大连品种,15分钟k线数据量少于1601根。

 

调试过程:

1.通过数据管理器——整理数据——执行清理,清楚所有本地数据。

2.通过数据补充——自定义数据补充,补充所有品种连续合约近365日的5分钟数据。

3.设定基准合约为DQJ00,通过如下代码调试:

#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量
    context.s1 = context.run_info.base_book_id
    close_15m = history_bars(order_book_id=context.s1,  bar_count=(1600+1),frequency=\'15m\',fields=\'close\')
    date_close_15m = history_bars(order_book_id=context.s1,  bar_count=(1600+1),frequency=\'15m\',fields=\'datetime\')
   
    print(len(close_15m))
    print(close_15m[-1])
   
    print(date_close_15m[-1])
    print(date_close_15m[-1500])

 

4.消息窗口结果:

14:26:18 > 1500
14:26:18 > 2013.5
14:26:18 > 20190401181500.0
14:26:18 > 20181219190000.0

 

只有1500根k线数据。换句话说,2018年12月19日以前的焦炭连续5分钟k线数据没有。

 

5.用同样方式测试其它大连交易所品种,棕榈连续,豆粕连续,也出现同样的问题。

用同样的方法测试螺纹连续,铜连续,白糖连续,TA连续,都没有问题

 

6.结论:可能金字塔历史数据服务器,关于大连交易所的数据出现问题。请尽快修复。


--  作者:bingying
--  发布时间:2019/4/1 14:47:51
--  
另外,通过打开k线图补充焦炭连续5分钟k线数据,可以补充到早于2018年12月19日的数据,但通过刚才的方式print,也只有1500根k线数据。
--  作者:无为剑
--  发布时间:2019/4/1 17:11:38
--  
由于交易所更改了交易时间,所以影响到软件自动生成的非1分和5分周期,这个没法解决的
--  作者:bingying
--  发布时间:2019/4/1 18:13:36
--  

请仔细阅读我上面的叙述,并不是“由于交易所更改了交易时间”的问题。而是,金字塔的历史数据,出了问题。

 

我描述的问题本质是:只能取到截至2018年12月19日的15分钟数据,更久的数据缺失。

 

而非因近期交易所更改交易造成的。

 

请重视并尽快修复。


--  作者:bingying
--  发布时间:2019/4/1 22:10:08
--  

晚上又测试了一下。

 

close_15m = history_bars(order_book_id=context.s1,  bar_count=(1000),frequency=\'15m\',fields=\'close\'),实际上可以取到932根k线。

 

close_15m = history_bars(order_book_id=context.s1,  bar_count=(2000),frequency=\'15m\',fields=\'close\'),实际上可以取到1853根k线。

 

close_15m = history_bars(order_book_id=context.s1,  bar_count=(3000),frequency=\'15m\',fields=\'close\'),实际上可以取到2775根k线。

 

所以问题可能是这样的:python里面的history_bars语句,当期货品种的交易时间更改后,也必须更改history_bars的底层代码,使bar_count=(1000)与实际15分钟k线的数量一致。