一、获取股票合约数据
1.history_bar(某一合约历史数据)
history_bars(order_book_id, bar_count, frequency, fields=None, skip_suspended=True, include_now=False)
获取制定合约的历史行情,同事支持日以及分钟历史数据,不能在init中调用;
参数:
返回:ndarray ,方便直接与talib等计算库对接,效率较history返回的DataFrame更高。
获取的字段内容如下:
2.代码以及注意的问题因为撮合逻辑是当前bar收盘或者下一个bar开盘,所以history_bars()可以获取到包含当前bar及之前所有的bar数据获取当天的数据
获取前十天的数据
获取每天的每分钟分钟的数据?获取每分钟之前的几分钟数据?
# 如果想在今天运行,获取从几天开始前几天一些数据
# 获取前5天的收盘价,开盘价
# 股票代号,间隔,频率,交易指标
data = history_bars(context.s1, 5, '1d', 'close')
# 获取多个指标
data = history_bars(context.s1, 5, '1d', ['close', 'open'])
# 如果回测是每日的,不支持获取分钟数据
data = history_bars(context.s1, 5, '1m', ['close', 'open'])
问题:这里的频率跟回测的频率有区别吗?
3.其他-通过bar_dict获取
获取合约当前价格的bar_dict
Bar对象:
注意,在股票策略中bar对象可以拿到所有股票合约的bar信息
# 只能获取当前的交易信息
logger.info(bar_dict[context.s1].close)