量化PTrade 日内交易策略详解(上):单标的 T+0 逻辑与代码模块拆解

📅 2026/7/10 17:23:39
量化PTrade 日内交易策略详解(上):单标的 T+0 逻辑与代码模块拆解
本文基于 PTrade 平台官方日内交易策略 Demo从零拆解单标的日内做 T 的核心逻辑与代码实现适合量化入门学习者参考。一、日内 T0 策略的核心运行逻辑本策略聚焦单标的日内做 T场景以固定底仓为基础通过短周期技术指标捕捉盘中波动机会执行「正 T先买后卖」或「反 T先卖后买」操作收盘前强制恢复初始底仓仓位全程不留隔夜仓赚取当日股价波动的差价收益。整体运行可概括为三步盘前打底仓、盘中找机会、收盘归仓位。1. 盘前复位 开盘建立底仓每个交易日开盘前策略先执行状态复位将当日正 T、反 T 的执行开关全部重置为关闭状态避免上一交易日状态残留导致当日误操作同时校验交易时间范围2013 年 4 月 1 日起标的数据完整此前不运行策略。开盘后第一时间买入固定数量底仓Demo 中为 100 股底仓是日内做 T 的基础做反 T 时可先卖出底仓再低位买回做正 T 时可先加仓再高位卖出全程底仓数量保持不变。2. 盘中双周期 RSI 共振择时交易日 10 点之后对应分钟 K 线数量≥30 根策略每隔 5 分钟执行一次交易判断核心依据是5 分钟短周期 15 分钟长周期的 RSI 双周期共振以此降低单一指标的误判概率。RSI相对强弱指数用于衡量标的短期超买超卖状态。数值越高代表短期上涨动能越强、存在回调可能数值越低代表短期下跌动能越强、存在反弹可能。1正 T 信号先买后卖当 15 分钟 RSI 与 5 分钟 RSI 同时满足偏高阈值判断短期上涨概率较高时先加仓买入 100 股当标的相对买入价上涨 1% 时卖出对应加仓的 100 股锁定差价收益。2反 T 信号先卖后买当 15 分钟 RSI 与 5 分钟 RSI 同时满足偏低阈值判断短期下跌概率较高时先卖出 100 股底仓当标的相对卖出价下跌 1% 时买回对应数量股票补回底仓并锁定差价收益。3. 收盘前强制恢复底仓无论当日是否完成做 T 操作、是否实现盈利策略都会在收盘前对应分钟 K 线数量≥238 根A 股全日 240 分钟交易时间多次执行仓位复位操作确保收盘后仓位与初始底仓一致完全规避隔夜消息、政策等不确定性风险。二、策略核心代码模块拆解策略代码按时序分为初始化、盘前处理、盘中交易等核心函数下面逐一拆解。1. 初始化函数initialize全局参数配置initialize是策略入口函数负责定义全局交易参数、标的、阈值等基础规则相当于策略的「默认配置项」。def initialize(context): g.ini_buy_flag False # 买底仓的开关初始关闭 g.amount 100 # 每次交易股数1份头寸 g.rate 1 # 做T目标涨跌幅1% g.L 50 # 长周期15分钟RSI判断阈值 g.S 80 # 短周期5分钟RSI判断阈值 g.security 510500.SS # 操作标的中证500ETF # 回测环境开启无限制模式保障回测流畅运行 if not is_trade(): set_limit_mode(UNLIMITED)参数说明标的锁定g.security固定为中证 500ETF510500.SS单标的运行避免策略分散。交易单位g.amount100符合 A 股最低交易单位规则每次做 T 操作 1 手仓位可控。止盈阈值g.rate1设定做 T 止盈幅度为 1%达到目标即平仓避免过度持有。RSI 阈值g.L与g.S分别为长、短周期 RSI 的判断阈值是触发做 T 信号的核心标准。回测适配通过is_trade()判断运行环境回测时开启无限制模式无需等待实盘柜台数据。2. 盘前处理函数before_trading_start每日状态复位before_trading_start在每个交易日开盘前执行核心作用是「重置状态 数据校验」保证每日策略运行的独立性。def before_trading_start(context, data): g.B_T_flag False # 正T开关初始关闭 g.S_T_flag False # 反T开关初始关闭 g.first_buy_flag False g.second_buy_flag False g.handle_data_flag True # 盘中交易总开关初始开启 # 获取当前日期2013年4月1日前标的数据不足不交易 current_date context.blotter.current_dt.strftime(%Y-%m-%d) if current_date 2013-04-01: g.trade_flag False else: g.trade_flag True逻辑说明开关全复位将正 T、反 T、底仓买入等所有状态开关重置为初始值杜绝上一交易日状态残留导致的逻辑错误。总开关开启g.handle_data_flag置为 True允许盘中函数执行交易判断。时间范围校验因中证 500ETF 在 2013 年 4 月前历史数据不完整通过日期判断过滤无效时间段避免回测结果失真。下篇预告本篇拆解了日内 T0 策略的核心业务逻辑以及初始化、盘前处理两个基础模块。下篇将继续拆解盘中交易判断、收盘仓位复位的核心代码以及策略的回测注意事项与优化方向。风险提示本文仅为策略逻辑与代码学习分享不构成任何投资建议。量化交易存在风险实盘操作请充分评估自身风险承受能力。