量化ptrade策略编辑流程步骤详细解答!
发布时间:1小时前阅读:47
PTrade(恒生 PTrade 量化)从登录→建策略→写代码→调试→回测→仿真→实盘 的超详细、一步到位流程,和 QMT 对比会更清楚差异(PTrade 更像聚宽 / 米筐,API 更标准)。
一、PTrade 整体流程总览(先记大框架)
登录 → 准备数据 → 新建策略 → 写代码(initialize + handle_data)→ 编译调试 → 回测 → 仿真(模拟)→ 实盘上线 → 监控日志
二、第一步:登录与环境准备(必须先做)
1. 登录 PTrade 客户端
- 打开券商版 PTrade(中信、华泰、国泰君安、国金等都有)
- 用资金账号 + 密码登录
- 必须开通量化交易权限(联系券商)
2. 确认 Python 环境(PTrade 自带,不用额外装)
- PTrade 内置 Python3,无需手动安装
- 编辑器直接写 Python3 代码,默认 UTF-8(中文不乱码)
3. 下载历史数据(回测 / 运行必备)
- 顶部菜单:数据 → 数据下载
- 选择:
- 点击 开始下载,等待完成
三、第二步:新建策略(进入编辑器)
方式 1:代码模式(主流、灵活)
- 左侧栏:策略交易 → 我的策略
- 右键 → 新建策略
- 填写:
- 确定 → 自动生成标准模板代码(含 initialize、handle_data)
方式 2:向导式(零代码,新手)
- 左侧:向导式策略 → 新建
- 五步:选股 → 买卖条件 → 风控 → 回测 → 导出源码
- 不用写代码,适合快速验证想法
- 下面重点讲代码模式(必学)。
四、第三步:PTrade 策略代码核心结构(必须背下来)
PTrade 策略只有两个强制函数,和 QMT 很像但名字不同:
1. initialize(context) —— 初始化(只跑 1 次)
- 策略启动时执行一次
- 用途:设置股票池、全局参数、手续费、初始资金
- python
- 运行
def initialize(context):
# 设置股票池(单只/多只)
set_universe(['000001.SZ']) # 平安银行
# 全局参数
g.short = 5
g.long = 20
# 手续费(和实盘一致)
set_commission(Commission(open=0.0003, close=0.001))
2. handle_data(context, data) —— 主逻辑(每根 K 线跑 1 次)
- 按日线 / 分钟线触发
- 用途:取数据、算指标、判断信号、下单
- python
- 运行
def handle_data(context, data):
# 1. 获取历史数据(最近20根收盘价)
hist = context.get_history(
symbol='000001.SZ',
bar_count=20,
frequency='1d',
fields=['close']
)
close = hist['close'].values
# 2. 计算均线
ma5 = close[-5:].mean()
ma20 = close.mean()
# 3. 交易逻辑:金叉买入、死叉卖出
if ma5 > ma20 and not context.portfolio.positions['000001.SZ'].total_amount:
order_value('000001.SZ', context.portfolio.available_cash * 0.8)
log.info("买入信号触发")
elif ma5 < ma20 and context.portfolio.positions['000001.SZ'].total_amount:
order_target('000001.SZ', 0)
log.info("卖出信号触发")
关键对象说明
context:全局上下文(账户、持仓、资金、时间)data:当前 K 线数据(open/high/low/close/volume)g:全局变量(跨周期保存参数)log.info():打印日志(调试必备)
五、第四步:策略编写详细步骤(双均线为例)
Step1:新建策略,生成模板
- 自动有
initialize和handle_data,不要删
Step2:写 initialize(初始化)
- 设置股票池、参数、手续费
Step3:写 handle_data(核心逻辑)
- 获取历史数据:
context.get_history() - 计算指标:均线、MACD、RSI 等
- 判断买卖条件:金叉 / 死叉、突破、背离
- 执行下单:
Step4:添加风控(强烈建议)
- 仓位控制:单票≤80%,总仓位≤90%
- 止损:个股亏损≥5% 强制平仓
- 单日最大回撤:≤2%
- python
- 运行
# 止损示例
pos = context.portfolio.positions['000001.SZ']
if pos.total_amount > 0 and pos.market_value > 0:
pnl_ratio = pos.pnl / pos.market_value
if pnl_ratio < -0.05:
order_target('000001.SZ', 0)
log.info("触发止损,全部卖出")
六、第五步:编译与调试(排错关键)
1. 保存 / 编译
- 编辑器按 Ctrl+S 保存
- PTrade 自动语法检查:
2. 运行调试(看日志)
- 点击编辑器上方 运行 → 选择日线 / 分钟线
- 底部 日志面板 输出:
3. 常见错误
- 缩进错误:Python 必须 4 空格,不要用 Tab
- 数据未下载:提示 “历史数据不足” → 去数据下载
- 股票代码错误:必须带后缀
.SZ/.SS - 变量名写错:如
context.portfolio写成context.port
七、第六步:策略回测(验证历史效果)
1. 进入回测界面
- 编辑器点击 回测(或左侧策略右键→回测)
2. 设置回测参数(关键!)
- 时间范围:至少3 年(如 2023-2026)
- 初始资金:如 100000
- 频率:日线 / 1 分钟
- 基准:沪深 300(对比用)
- 滑点:建议 0.1%(模拟实盘冲击成本)
- 手续费:和实盘一致
3. 开始回测
- 点击 开始回测
- 生成回测报告:
4. 回测优化
- 调整参数(如均线周期 5/20 → 10/30)
- 优化逻辑(加入过滤条件,如成交量放大)
- 强化风控(降低回撤)
八、第七步:仿真交易(实盘前必测)
1. 进入仿真
- 左侧:策略交易 → 我的策略 → 右键 → 仿真运行
- 或编辑器点击 仿真
2. 运行 1–2 周
- 观察:
九、第八步:实盘运行(谨慎!)
1. 实盘前检查
- 仿真运行至少 1 周稳定
- 确认手续费、滑点、风控和实盘一致
- 核对股票池、下单数量
2. 启动实盘
- 策略右键 → 实盘运行
- 确认资金账号 → 点击 启动
3. 实盘监控
- 实时看:总资产、可用资金、持仓、交易日志
- 异常立即停止策略
十、PTrade vs QMT 核心区别(避坑)
- 函数名:PTrade 是
initialize/handle_data;QMT 是init/handlebar - 数据获取:PTrade 用
context.get_history;QMT 用ContextInfo.get_bar_data - 下单函数:PTrade 更丰富(
order_value/order_target);QMT 是order_buy/order_sell - 语法:PTrade 默认 UTF-8;QMT 必须
#coding:gbk
十一、完整流程一句话总结
准备数据 → 新建策略 → 写 initialize 初始化 → 写 handle_data 交易逻辑 → 调试 → 回测 → 仿真 → 实盘
股票开户找我!无门槛国债逆回购一折 (百万分之一)!ETF佣金万0.5!融资利率5%以下!优惠多多!免费量化!ptrade&QMT!
温馨提示:投资有风险,选择需谨慎。
其他人追问
期货量化投资策略是自己编辑吗?
-
养虾理财用的金融Skill是什么?国泰海通灵犀Skills实测,新手也能装
2026-05-09 13:41
-
豆包开启付费!AI行业迎来拐点,普通投资者该怎么布局?
2026-05-09 13:41
-
2026国金证券新人开户能够享受哪些福利?(含6888元品质礼包)
2026-05-09 13:41



问一问

+微信
分享该文章
