当前位置: 首页 > news >正文

【PTrade】PTrade回测如何设置手续费和滑点?避免策略收益虚高完整教程

本方案由EasyQuant AI量化助手提供。

问题背景

很多策略回测收益很高,实盘却明显缩水,主要原因是回测没有正确设置佣金、最低手续费、滑点和成交量限制。

PTrade 提供set_commission()set_fixed_slippage()set_volume_ratio()等接口,可使回测成交规则更接近真实环境。

实现思路

  • 设置股票池和回测基准。

  • 设置佣金费率及最低佣金。

  • 设置固定滑点。

  • 限制每根 K 线最大可成交比例。

  • 使用简单均线策略,比较加入交易成本前后的回测差异。

完整代码示例

def initialize(context): g.security = "510300.SS" # 均线参数 g.fast_window = 5 g.slow_window = 20 # 设置股票池与基准 set_universe([g.security]) set_benchmark("000300.SS") # 设置佣金: # commission_ratio=0.0003 即万分之三 # min_commission=5.0 即单笔最低佣金5元 set_commission( commission_ratio=0.0003, min_commission=5.0, type="ETF" ) # 设置固定滑点0.02元: # 买入成交价会更高,卖出成交价会更低 set_fixed_slippage(fixedslippage=0.02) # 单笔委托最多成交当前周期可成交量的25% set_volume_ratio(volume_ratio=0.25) # 使用成交量限制模式,避免理想化大额成交 set_limit_mode("LIMIT") log.info("回测成本参数设置完成") def handle_data(context, data): security = g.security # 获取均线所需历史收盘价 history_data = get_history( security, count=g.slow_window + 2, frequency="1d", fields=["close"] ) if history_data is None: return close_list = list(history_data["close"]) if len(close_list) < g.slow_window + 1: return # 当前均线 fast_ma_now = sum(close_list[-g.fast_window:]) / g.fast_window slow_ma_now = sum(close_list[-g.slow_window:]) / g.slow_window # 前一日均线 fast_ma_prev = sum( close_list[-g.fast_window - 1:-1] ) / g.fast_window slow_ma_prev = sum( close_list[-g.slow_window - 1:-1] ) / g.slow_window # 金叉与死叉 buy_signal = ( fast_ma_now > slow_ma_now and fast_ma_prev <= slow_ma_prev ) sell_signal = ( fast_ma_now < slow_ma_now and fast_ma_prev >= slow_ma_prev ) # 获取当前持仓 position = get_position(security) # 金叉开仓 if buy_signal and position.total_amount == 0: order_value(security, context.portfolio.cash * 0.95) log.info("金叉买入:%s" % security) # 死叉清仓 elif sell_signal and position.total_amount > 0: order_target_value(security, 0) log.info("死叉卖出:%s" % security) def after_trading_end(context, data): log.info("当日总资产:%.2f" % context.portfolio.total_value) log.info("当日可用资金:%.2f" % context.portfolio.cash)

注意事项

  1. 手续费和滑点应按实际券商费率、交易品种与交易频率设置。

  2. 固定滑点适合快速模拟;高频或流动性较差的标的需采用更谨慎的假设。

  3. set_volume_ratio()可避免回测中“一次买完市场全部成交量”的不现实情况。

  4. 不要只看总收益,应同时观察最大回撤、交易次数、胜率、盈亏比和换手率。

  5. 回测使用的成本参数与实盘条件差距越小,结果越具有参考意义。

总结

PTrade 回测设置不是可有可无的步骤。手续费、滑点和成交量限制会直接影响策略的可执行性;把它们纳入回测,才能更理性地判断策略质量。


本方案由EasyQuant AI量化助手提供。

http://www.jsqmd.com/news/1240822/

相关文章:

  • 2026年重庆一体化净水设备怎么选?本地用户真实避坑经验+3家靠谱品牌深度对比 - 金澜达水处理
  • 触摸一体机标的IP65防水,到底能防什么
  • Vue3+Vite+Cesium三维地理场景开发实战
  • CentOS 7 搭建 Samba 文件共享并配置用户、部门权限与 SELinux
  • HTTP 404错误解析与优化实践指南
  • SEO+GEO 双渠道全域获客全解:2026 白帽规范、选型评判标准与国内 15 大正规服务商完整测评 - 热点速览
  • AI推理芯片技术解析与Kimi K3算力需求实战指南
  • 2026年扭力计优质厂家不止看参数,广州安妙的服务体系才是隐藏王牌 - 品牌推荐大师1
  • 从多场景实测看代理IP产品:一份可复现的六方横向测评
  • AI写专著必备指南:AI工具加持,20万字专著高效产出,查重不用愁
  • 毕业生必看!档案存放 +管理全指南 - 慧办好
  • TI TM4C1292NCZAD ARM Cortex-M4F MCU:工业网关与实时控制开发实战
  • AI Agent开发指南:从原理到实践应用
  • iPhone查找功能全攻略:从设置到应急响应
  • 2026铜仁万山区防水补漏哪家靠谱?免砸砖精准测漏一站式解决全屋漏水 - 宅安选房屋修缮
  • 程序员必备专业英语词汇指南与学习方法
  • AI专著写作必备:精选工具一键生成20万字专著,查重低至个位数
  • 新手必看!2026深圳黄金回收完整变现流程,零套路落地 - 二奢分享官
  • 绝区零游戏卡顿优化:显存管理与帧生成技术实战
  • 济南伯爵中国大陆**售后服务网点|**网站**公示(2026年7月最新) - 伯爵官方售后服务中心
  • 7月长沙新手黄金回收指南:零基础也能省心变现不踩坑 - 逸程奢侈品回收中心
  • 私有云存储速度到底能跑多快?
  • AI开始“偷懒”,制造业却笑了:真正能省钱的不是聊天机器人
  • 行业观察|深圳 LED 显示屏厂家推荐:小间距 LED 成趋势,采购参数如何选择(附 LED 测评 + LED 行业协会联合发布) - 资讯速览
  • 单体生物科普┃FITC-转铁蛋白(人)是什么?荧光素标记转铁蛋白在细胞研究中如何应用?
  • TI ISS ISP中断与DMA机制解析:嵌入式视觉系统核心驱动开发指南
  • YOLOv5轻量化实践:ShuffleNetV2主干网络替换与优化
  • 英文SEO友好WordPress主题
  • 2026南京黄金市场乱象整治!学会专业避坑方法,禹竞持证经营杜绝回收黑操作 - 资讯洞察员
  • 2026展厅设计公司推荐:别只看效果图,为什么墙裂推荐汉诺会展 - 优质品牌甄选