3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在PTrade量化平台中,为了在回测阶段尽可能逼近真实的交易环境,准确评估策略的净收益,我们需要设置合理的交易成本。PTrade 提供了 set_commission 函数,专门用于在回测模块中设置佣金费率。
set_commission 函数简介set_commission 函数用于设置回测时的佣金费率和最低手续费。请注意,该函数仅在回测模块可用,实盘交易中的手续费由券商柜台实际收取,策略代码无法更改。
函数原型:
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元佣金。type (string):交易类型。不传参默认为 "STOCK"。目前支持 "STOCK"(股票)、"ETF"、"LOF"。在PTrade的回测引擎中,单笔交易的总手续费计算公式如下:
总手续费 = 佣金费 + 经手费
commission_ratio * 交易总金额。如果计算出的佣金费小于 min_commission(最低佣金),则按 min_commission 收取。通常,我们需要在策略的初始化函数 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
set_commission 额外设置印花税。set_future_commission 函数来设置期货手续费。