3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,get_history 函数是获取历史行情 K 线数据的核心接口。其中,include 参数在决定获取的数据时间范围时起着至关重要的作用。
include 参数详解bool)。True:包含当前周期的数据。False:不包含当前周期的数据。False(如果不显式传入该参数,系统默认不包含当前周期)。“当前周期”取决于你调用 get_history 时传入的 frequency(K线周期)参数以及策略运行的当前时间:
frequency='1d'):
include=True 会将 10月10日 当天的 K 线数据包含在返回结果中(如果是盘中调用,返回的可能是截至调用时刻的未走完的 K 线数据)。include=False 则只会返回到 2023年10月9日(上一交易日)及之前的 K 线数据。frequency='1m'):
include=True 会包含 10:04-10:05 这一分钟的 K 线。include=False 则只会返回到 10:04 结束的 K 线。def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 示例 1:不包含当前周期(默认情况)
# 获取过去 5 天的收盘价,不包括今天
history_exclude = get_history(5, '1d', 'close', security_list=g.security, include=False)
log.info('不包含今天的历史数据:\n%s' % history_exclude)
# 示例 2:包含当前周期
# 获取过去 5 天的收盘价,包括今天(如果是盘中,今天的收盘价即为最新价)
history_include = get_history(5, '1d', 'close', security_list=g.security, include=True)
log.info('包含今天的历史数据:\n%s' % history_include)
handle_data)使用 include=True 获取日线数据,可能会提前获取到当天的收盘价,从而引入“未来函数”,导致回测结果失真。通常建议在日线策略中使用默认的 include=False。include=True,此时当前周期的 close 价格通常代表最新的快照价格。include 是 True 还是 False,get_history 返回的数据条数始终由 count 参数决定。例如 count=5,include=False 返回 T-5 到 T-1 的 5 条数据;include=True 返回 T-4 到 T 的 5 条数据。