上一篇文章里,我们详细讨论了 Pine Script 中仓位管理的三种核心模式 (default_qty_type
),但光有模式还不够,我们必须为这个模式注入灵魂,也就是设定一个具体的“数值”。这个关键任务,就由 default_qty_value
参数来完成。
简单来说,default_qty_type
决定了如何算,而 default_qty_value
则决定了算多少,两者结合,才构成了一个完整的仓位管理方案。default_qty_value
的具体含义,完全取决于你为 default_qty_type
选择了哪种模式。
1. 在固定数量模式下 (strategy.fixed)
default_qty_value
代表你希望每笔订单交易的固定合约数或股数。
例如,设置每笔订单交易10手合约:
//@version=6
strategy(title="我的策略", default_qty_value=10,default_qty_type=strategy.fixed)
2. 在固定现金价值模式下 (strategy.cash)
default_qty_value
代表你希望每笔订单投入的固定现金金额,单位是策略的账户货币。
例如,设置每笔订单投入价值5,000美元的仓位:
//@version=6
strategy(title="我的策略", default_qty_value=5000,default_qty_type=strategy.cash)
3. 在百分比模式下 (strategy.percent_of_equity)
default_qty_value
代表你希望每笔订单投入的百分比数值。
例如,设置每笔订单使用当前总权益的15%:
//@version=6
strategy(title="我的策略", default_qty_value=15,default_qty_type=strategy.percent_of_equity)
default_qty_value
的默认值是1
,在固定数量模式下,这代表1手合约,通常没问题 。但在现金价值模式下,它代表1美元;在权益百分比模式下,它代表1%的权益 。这两种情况下的仓位都可能过小,导致无法开仓或回测结果失真,所以一旦使用了非默认的仓位模式,一定不要忘记设置一个合理的default_qty_value
。
和 default_qty_type
一样,default_qty_value
也必须是一个固定的数字,不能是动态变量 ,这意味着策略的默认下单数值在整个回测中是恒定的。这个默认下单量仅对开仓函数 strategy.entry()
和 strategy.order()
生效 ,所有平仓函数(如 strategy.close()
)都是针对已有仓位进行操作,不受此参数影响 。
你也可以在策略设置的“属性”标签页中,手动修改“订单大小”的数值框。这个手动设置会覆盖你在代码中写入的 default_qty_value
。这在你需要快速测试不同风险水平对策略的影响时非常有用,可以省去反复修改和保存代码的麻烦。
总结
default_qty_value
是我们为策略注入具体风险偏好的关键参数。它为 default_qty_type
所选定的仓位管理模式提供了实际的数值依据。
- 它决定了订单的多少,而
default_qty_type
决定了“如何算” 。 - 它的含义会根据仓位模式的不同而改变(是合约数、现金值还是百分比) 。
- 务必警惕其默认值为
1
可能带来的问题,尤其是在使用现金或权益百分比模式时 。
掌握 default_qty_type
和 default_qty_value
这对组合,你就掌握了 Pine Script 策略中进行系统化仓位管理和风险控制的钥匙。