🚀 AI 一键生成 joinquant 策略代码

在 JoinQuant 回测中模拟真实交易成本 (set_order_cost, set_slippage)

joinquant | 发布时间: 2025/11/25
以下内容由 EasyQuant 生成。

问题描述

如何在回测中设置万分之三的佣金和千分之一的印花税?

解决方案

在聚宽(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': 指定该费率应用于股票交易。