函数原型:get_price(security, start_date=None, end_date=None, frequency='daily', fields=None, skip_paused=False, fq='pre', count=None, panel=True)
获取一支或者多只股票的行情数据, 按天或者按分钟,这里在使用时注意 end_date 的设置, 传入的值不要大于等于context.current_dt,否则会引入未来函数。
比如,使用分钟级别的数据进行回测,获取行情时,frequency='daily',end_date='2019-09-03 09:00:00',那么2019-09-03的收盘价(即2019-09-03 15:00:00的价格)就会提前知道。
以下是回测中引入未来函数的错误用法,也可以说是聚宽API的一个bug,回测切记要避免引入未来函数。
函数get_price是用来获取历史数据的,获取实时行情数据应该使用函数get_current_data()。
使用get_current_data()获取实时行情示例
def handle_data(context, data):
current_data = get_current_data()
print(current_data)
print(current_data['000001.XSHE'].last_price)
print(current_data['000001.XSHE'].paused)
print(current_data['000001.XSHE'].day_open)