保持敬畏之心
交易是一场持久战

Pine Script(69):commission_type参数,别让手续吞噬利润

#Pine Script入门教学

在交易这场游戏中,每一次出手无论盈亏,你都得向券商/平台交手续费,它是侵蚀你利润、放大你亏损的隐形杀手。一个专业的策略回测,如果连手续费都不算,那无异于掩耳盗铃,Pine策略里的commission_typecommission_value这两个参数,就是帮你把这笔账算清楚的关键工具。

  • commission_type:决定手续费的计算方式(按比例还是按固定金额)。
  • commission_value:决定手续费的具体数值。

两者必须配对使用,缺一不可。

commission_type提供了三种选项,基本涵盖了市面上所有主流券商的收费模式:

  1. 按成交额百分比 (strategy.commission.percent) 这是commission_type的默认模式,在国内股票和部分币圈交易所很常见。
    //@version=6
    // 手续费设为成交额的0.1%
    strategy(title="我的策略", 
        commission_type=strategy.commission.percent, 
        commission_value=0.1)
    
  2. 按每手/每股固定金额 (strategy.commission.cash_per_contract) 这是期货和CFD交易中最主流的收费模式。
    //@version=6
    // 每交易1手合约,收取0.8货币单位的手续费
    strategy(title="我的策略",
        commission_type=strategy.commission.cash_per_contract,
        commission_value=0.80)
    
  3. 按每笔订单固定金额 (strategy.commission.cash_per_order) 一些美股券商或特定账户类型会采用这种模式,无论你买1股还是1000股,手续费都一样。
    //@version=6
    // 每笔订单,固定收取1.25货币单位的手续费
    strategy(title="我的策略",
        commission_type=strategy.commission.cash_per_order,
        commission_value=1.25)
    

下表清晰地展示了不同类型下的手续费是如何计算的:

手续费类型 (commission_type) 手续费金额 (commission_value) 解释
strategy.commission.percent 0.3 按订单成交额的0.3%收取。如果我们以32.43的价格交易100股,手续费为 100 x 32.43 x 0.3% = 9.729。
strategy.commission.cash_per_contract 2 每交易一手/一股/一份,收取2货币单位。如果我们买入5手期货合约,订单手续费为 5 x 2 = 10。
strategy.commission.cash_per_order 7.50 每笔订单固定收取7.50货币单位,无论订单大小。卖出9手期货或买入250股,手续费都是7.50。
  • 必设项,无一例外:对于任何严肃的回测,手续费(commission)和滑点(slippage)都是强制必设项。忽略它们是新手获取虚假回测结果的头号原因。
  • 绝对忠于现实:别猜,别蒙。去翻你的券商官网,或者咨询你的客户经理,搞清楚你的真实交易成本,然后分毫不差地在这里设置好。
  • value不能为0:只设置commission_type,但忘了把commission_value设成一个大于0的数,是新手常犯的错误。记住,commission_value默认是0,你不改,就等于没设手续费。

总结

你也可以在策略设置窗口的属性标签页中手动修改“手续费”,手动设置会覆盖代码里的值。交易成本是真实存在的,手续费是其中最确定无疑的一项。

务必在你的每一个策略回测中,精准地模拟你真实交易的手续费。

一个无法在覆盖所有交易成本后还能稳定盈利的策略,没有任何实盘价值。别再用“无成本回测”来自欺欺人了。

赞(0)
未经允许不得转载:图道交易 » Pine Script(69):commission_type参数,别让手续吞噬利润
分享到

评论 抢沙发

登录

找回密码

注册