问题描述
如何在回测中设置万分之三的佣金和千分之一的印花税?
解决方案
在聚宽(JoinQuant)回测中,您需要在 initialize 函数中使用 set_order_cost API 来设置交易费率。
根据A股市场的规则,印花税通常只在卖出时收取,而佣金在买入和卖出时都会收取。此外,券商通常设有最低佣金(一般为5元)。
以下是具体的代码实现:
# -*- coding: utf-8 -*-
def initialize(context):
# 设置股票类交易费率
set_order_cost(OrderCost(
open_tax=0, # 买入印花税:0 (A股买入不收印花税)
close_tax=0.001, # 卖出印花税:千分之一 (0.001)
open_commission=0.0003, # 买入佣金:万分之三 (0.0003)
close_commission=0.0003, # 卖出佣金:万分之三 (0.0003)
close_today_commission=0,# 平今仓佣金:0 (股票不适用,期货才用)
min_commission=5 # 最低佣金:5元 (根据实际情况调整,通常为5)
), type='stock')
参数说明:
OrderCost: 用于创建费用对象的类。open_tax/close_tax: 买入/卖出的印花税率。open_commission/close_commission: 买入/卖出的佣金费率。min_commission: 每笔交易的最低佣金(不足该金额按该金额收取)。type='stock': 指定该费率应用于股票交易。