问题描述
想设置不同品种的佣金费率
解决方案
在 PTrade 量化交易平台中,set_commission 函数用于在回测模块中设置佣金费率,以便更真实地模拟交易成本。
set_commission 支持的交易类型
根据 PTrade API 文档,set_commission 函数的 type 参数目前支持以下三种交易类型:
- STOCK:普通股票买卖(默认值)。
- ETF:ETF 基金买卖。
- LOF:LOF 基金买卖。
默认佣金费率
如果不显式调用 set_commission 进行设置,PTrade 会采用以下默认费率:
- 股票 (STOCK):每笔交易的佣金费率为万分之三(0.0003),最低扣 5 元。
- ETF 基金:每笔交易的佣金费率为万分之八(0.0008)。
- LOF 基金:每笔交易的佣金费率为万分之八(0.0008)。
注意:回测手续费计算公式为:手续费 = 佣金费 + 经手费。其中,经手费率为万分之 0.487。
如何设置不同品种的佣金费率
您可以在策略的 initialize 函数中多次调用 set_commission,通过指定不同的 type 参数来为不同品种设置特定的佣金费率。
接口说明
set_commission(commission_ratio=0.0003, min_commission=5.0, type="STOCK")
commission_ratio:佣金费率 (float)。min_commission:最低交易佣金 (float)。type:交易类型 (string),可选值为"STOCK","ETF","LOF"。
代码示例
以下示例展示了如何同时设置股票和 ETF 的佣金费率:
def initialize(context):
# 设置股票池
g.security = '600570.SS'
set_universe(g.security)
# 1. 设置股票的佣金费率为万分之二,最低手续费为 5 元
set_commission(commission_ratio=0.0002, min_commission=5.0, type="STOCK")
# 2. 设置 ETF 的佣金费率为万分之一,最低手续费为 1 元
set_commission(commission_ratio=0.0001, min_commission=1.0, type="ETF")
# 3. 设置 LOF 的佣金费率为万分之1.5,最低手续费为 2 元
set_commission(commission_ratio=0.00015, min_commission=2.0, type="LOF")
def handle_data(context, data):
pass
通过这种方式,您可以根据实际券商的费率标准,精确配置回测环境中的交易成本,从而提高回测结果的可靠性。