🚀 AI 一键生成 ptrade 策略代码

ptrade 平台 get_history 获取 5 分钟线时 include=True 和 False 有什么区别?

ptrade | 发布时间: 2026/5/28
以下内容由 EasyQuant 生成。

问题描述

get_history函数取五分钟线,include使用true和false有什么区别?

/

解决方案

在 ptrade 量化交易平台中,使用 get_history 函数获取 K 线数据时,include 参数用于控制是否包含当前尚未结束的 K 线周期。当获取 5 分钟线(frequency='5m')时,include=Trueinclude=False 的具体区别如下:

1. include=False(默认值)

含义:不包含当前正在进行的周期,只返回已经完全走完的 K 线数据

举例说明
假设当前时间是 10:03,你请求获取 5 分钟线数据。

  • 5 分钟线的周期划分通常是 09:30-09:35, 09:35-09:40 ... 09:55-10:00, 10:00-10:05。
  • 此时 10:00-10:05 这个周期的 K 线还没有走完。
  • 如果设置 include=False,函数返回的最新一根 K 线将是 09:55-10:00 这一根已经确定的完整 K 线。

2. include=True

含义:包含当前正在进行的周期,返回的最新一根 K 线是当前未走完的 K 线的实时快照

举例说明
同样假设当前时间是 10:03,请求获取 5 分钟线数据。

  • 如果设置 include=True,函数返回的最新一根 K 线将是 10:00-10:05 这一根 K 线。
  • 注意:这根 K 线的数据(如收盘价、最高价、最低价、成交量)是截至 10:03 的实时数据,随着时间推移到 10:05,这根 K 线的数据还会不断变化。

💡 实际应用建议与注意事项

  1. 避免未来函数(回测场景)
    在回测中,通常建议使用默认的 include=False。因为如果你在 10:00 触发了 handle_data,此时如果用 include=True 获取 10:00-10:05 的数据,实际上你提前获取了未来 5 分钟的信息,这会导致严重的回测失真(未来函数)。

  2. 实时信号计算(实盘/模拟盘场景)
    如果你在实盘交易中,策略逻辑需要基于当前正在形成的 K 线的最新价格来计算某些动态指标(例如盘中突破),你可以使用 include=True。但必须清楚,此时最新一根 K 线的 close 实际上是当前的最新价(price),而不是最终的收盘价。

代码示例

# 获取过去5根已经走完的5分钟K线(推荐,安全)
history_closed = get_history(5, frequency='5m', field='close', security_list='600570.SS', include=False)

# 获取包含当前未走完的共5根5分钟K线(最新一根为动态数据)
history_current = get_history(5, frequency='5m', field='close', security_list='600570.SS', include=True)