上一篇我们讲了多头保证金 margin_long
,今天我们来聊聊它的孪生兄弟margin_short
。它们就像一把双刃剑的两面,作用机制完全相同,只不过 margin_short
专门用于定义空头订单的保证金要求。
它同样决定了你的策略是在现货模式(margin_short = 100
,无杠杆做空)下运行,还是在“杠杆模式”(margin_short < 100
)下运行。
和margin_long
一样,margin_short
的默认值也是0
,这同样代表禁用保证金检查,这意味着在默认情况下,你的策略可以无视权益、无限做空,这会让你的回测结果变得毫无意义。
请记住TradingView新建策略模板中默认的margin_short=100
,是一个安全且专业的起点。
当你设置了一个大于0的margin_short
值后,TradingView同样会为空头订单启动两道风控:
- 开仓前检查,权益不足,则无法开立新的空头仓位。
- 持仓中检查,空头仓位亏损(即价格上涨),导致权益低于维持保证金时,触发强制平仓。
我们来看一个例子,这个策略在一个高波动、低流动性的货币对上,当价格向上突破ATR通道上轨时逆势做空。
策略代码:
//@version=6
strategy(title="空头保证金示例", overlay=true,initial_capital=20000, default_qty_value=10000)
smaValue = ta.sma(ta.sma(close, 20), 5)
upperBand = smaValue + 2 * ta.atr(14)
lowerBand = smaValue - 2 * ta.atr(14)
plot(smaValue, color=color.teal, title="平滑的 SMA")
plot(upperBand, color=color.orange, title="上轨")
plot(lowerBand, color=color.orange, title="下轨")
if ta.crossover(close, upperBand)
strategy.entry("Enter Short", strategy.short)
if close < smaValue and close[1] < smaValue[1]
strategy.close("Enter Short", comment="Exit Short")
在不设置margin_short
的情况下,策略在价格突破上轨后开了一个空头仓位,然而市场并没有如期回调,而是一路上涨,策略只能被动地持有这个亏损的仓位:
若我们设定一个相对保守的8%的保证金,即margin_short=8
,随着价格的持续上涨,亏损不断扩大,资金一次又一次地跌破维持保证金水平,导致连续强制平仓。这个例子告诉我们,在趋势性极强的行情中,逆势+杠杆是非常危险的组合。你同样可以在策略设置窗口的属性标签页中,手动修改空头仓位的保证金,这个参数设置比较简单,就不多附图演示,大家可以自行复制粘贴到TV策略编辑框,观察这两个参数设置和未设置的区别。
总结
margin_long
和margin_short
是同一把双刃剑的两个面,它们共同构成了Pine策略的杠杆控制系统,一个不使用杠杆都无法盈利的策略,加上杠杆只会死得更快。一定要在你的代码中建立明确、主动的止损机制 (strategy.exit
),把风险控制在自己手里,不要等到被系统强制平仓。