PTrade回测中佣金费率是如何计算的?
想了解set_commission函数的费率计算方式
问题描述
解决方案
在PTrade量化交易平台的回测环境中,合理设置佣金费率对于评估策略的真实收益至关重要。PTrade提供了set_commission函数来专门处理这一设置。以下是关于佣金费率计算方式及该函数的详细解析:
一、 回测手续费计算公式
在PTrade回测中,单笔交易的总手续费由两部分组成:
总手续费 = 佣金费 + 经手费
-
佣金费计算:
- 公式:
佣金费 = 佣金费率 * 交易总金额 - 最低佣金限制:如果按上述公式计算出的佣金费小于您设置的最低佣金(如5元),则该笔交易的佣金费将直接按最低佣金收取。
- 公式:
-
经手费计算:
- 公式:
经手费 = 经手费率 * 交易总金额 - 固定费率:在PTrade中,经手费率固定为万分之0.487(0.0000487)。
- 公式:
二、 set_commission 函数详解
set_commission 函数仅在回测模块可用,且必须在 initialize (初始化) 函数中调用。
函数语法
set_commission(commission_ratio=0.0003, min_commission=5.0, type="STOCK")
参数说明
- commission_ratio (float):佣金费率。
- 默认值:股票每笔交易默认万分之三(0.0003),ETF基金、LOF基金默认万分之八(0.0008)。
- min_commission (float):最低交易佣金。
- 默认值:每笔交易最低扣5元(5.0)。
- type (string):交易类型。
- 默认值:
"STOCK"。目前支持"STOCK"(股票),"ETF","LOF"。
- 默认值:
三、 策略代码示例
以下是一个在策略初始化时自定义佣金费率的完整示例:
def initialize(context):
# 设置操作的股票池
g.security = '600570.SS'
set_universe(g.security)
# 自定义佣金设置:
# 将股票交易的佣金费率设置为万分之二点五 (0.00025)
# 将单笔最低手续费设置为 3.0 元
set_commission(commission_ratio=0.00025, min_commission=3.0, type="STOCK")
def handle_data(context, data):
# 策略交易逻辑
pass
四、 注意事项
- 真实性模拟:建议根据您实际开户券商的费率标准来设置
commission_ratio和min_commission,这样回测得出的资金曲线和收益率才更具实盘参考价值。 - 印花税:上述计算仅包含佣金和经手费,实际A股交易中卖出时还会产生印花税(目前为单边收取),PTrade回测引擎会自动处理印花税的扣除,无需在
set_commission中额外设置。