🚀 AI 一键生成 ptrade 策略代码
立即体验
👉 AI 生成代码 👈

PTrade量化平台设置佣金费率与模拟真实交易成本详解

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

问题描述

PTrade中如何根据实际交易成本设置佣金费率?

想模拟实际交易中的手续费

解决方案

在PTrade量化平台中,为了在回测阶段尽可能逼近真实的交易环境,准确评估策略的净收益,我们需要设置合理的交易成本。PTrade 提供了 set_commission 函数,专门用于在回测模块中设置佣金费率。

1. set_commission 函数简介

set_commission 函数用于设置回测时的佣金费率和最低手续费。请注意,该函数仅在回测模块可用,实盘交易中的手续费由券商柜台实际收取,策略代码无法更改。

函数原型:

set_commission(commission_ratio=0.0003, min_commission=5.0, type="STOCK")

2. 参数详解

  • commission_ratio (float):佣金费率。默认情况下,股票每笔交易的佣金费率是万分之三(0.0003),ETF基金、LOF基金每笔交易的佣金费率是万分之八(0.0008)。
  • min_commission (float):最低交易佣金。默认每笔交易最低扣除5元佣金。
  • type (string):交易类型。不传参默认为 "STOCK"。目前支持 "STOCK"(股票)、"ETF""LOF"

3. PTrade 回测手续费计算规则

在PTrade的回测引擎中,单笔交易的总手续费计算公式如下:

总手续费 = 佣金费 + 经手费

  • 佣金费 = commission_ratio * 交易总金额。如果计算出的佣金费小于 min_commission(最低佣金),则按 min_commission 收取。
  • 经手费 = 经手费率(固定为万分之0.487,即 0.0000487) * 交易总金额。

4. 代码示例

通常,我们需要在策略的初始化函数 initialize 中调用 set_commission 来完成设置。

def initialize(context):
    # 设置我们要操作的股票
    g.security = '600570.SS'
    set_universe(g.security)
    
    # 假设你的实际券商佣金费率是万分之二点五,最低收费5元
    # 将佣金费率设置为 0.00025,最低手续费设置为 5.0 元
    set_commission(commission_ratio=0.00025, min_commission=5.0, type="STOCK")
    
    # 如果你还交易ETF,可以单独为ETF设置费率(例如免五,费率万一)
    # set_commission(commission_ratio=0.0001, min_commission=0.0, type="ETF")

def handle_data(context, data):
    # 策略逻辑...
    pass

5. 注意事项

  • 仅限回测:再次强调,此函数只影响回测结果,不影响实盘/模拟盘的实际扣费。
  • 印花税:PTrade的回测引擎会自动处理印花税(通常是卖出时单边收取),开发者无需通过 set_commission 额外设置印花税。
  • 期货手续费:如果你在做期货策略回测,请使用专门的 set_future_commission 函数来设置期货手续费。