- Published on
How to use Leverage and Margin in PineScript
- Authors

- Name
- CoresightQuant
NOTE
本文为公开交易策略的技战术复盘,聚焦方法逻辑、交易场景与风险边界。
策略解读
杠杆与保证金,是期货、外汇、差价合约等衍生品交易的核心机制。过去很长一段时间里,普通散户在回溯测试自己的交易想法时,往往只能假设“全仓买入”或“固定手数”,很难真实模拟杠杆资金被强平、被追保的过程。这导致许多策略在纸面回测中表现亮眼,一旦投入实盘,却因为一次中等程度的回撤就被踢出场外,后续的“复利奇迹”自然也无从谈起。
该作者提到的“两个缺口”,第一是指策略回测中缺少对杠杆交易的支持。过去你只能按净值全额开仓,或者用简单的“合约乘数”去近似,但无法精细地设定保证金比例、杠杆倍数以及维持保证金水平。第二是回测结果中缺少“追保”事件。真实交易中,当账户净值跌到维持保证金以下,券商会发出追加保证金通知;若未及时补款,持仓就会被强平。旧的回测模型通常只计算最终盈亏和最大回撤,却不模拟“中途被砍仓”的连锁反应,这无疑会让回测结果过度乐观。
该作者试图弥补官方文档的不足,提供一套可供验证与扩展的杠杆回测框架。其核心思路可以概括为:在策略初始化时设定杠杆倍数与保证金模式;在每笔交易入场时计算实际占用的保证金;在持仓过程中实时监控浮动盈亏,动态计算账户净值;一旦净值跌破维持保证金水平,则部分或全部平仓,并将这一事件记录在回测报告里。这样一来,回测结果就更加接近真实经纪商环境下的交易表现。
从交易理念上看,杠杆回测的引入改变了我们对“风险”的度量方式。传统回测里,风险往往表现为“最大回撤百分比”——一个抽象的数字。而在杠杆+追保框架下,风险被具象为“连环爆仓”“减仓后再反弹”等路径依赖事件。这要求策略开发者不仅关注胜率和盈亏比,还要思考仓位在极端行情下的生存能力。换句话说,杠杆不是用来放大收益的,而是用来测试你对“最坏情况”到底有多少承受力的。
实战应用中,这种回测框架能帮助交易者回答几个关键问题:第一,在给定杠杆倍数下,我的策略能扛住历史最大连续亏损吗?第二,如果中途被减仓,后续行情的反弹还能让我回本吗?第三,维持保证金率设置得比经纪商更严格,是否能显著降低爆仓风险?有了这些信息,交易者就能在实盘之前调整仓位大小、止损位置,甚至剔除某些在杠杆环境下完全失效的策略。
需要提醒的是,杠杆是一把双刃剑。它能让小资金参与高价值合约,也能让一次正常的市场波动变成账户的灭顶之灾。回测中模拟的追保事件,本质上是一种极端风险的压力测试。即便你的策略回测通过了,也不代表未来不会出现更极端的行情。因此,杠杆回测应当被视作“风控预演”,而非“盈利加速器”。
名词解释
杠杆(Leverage):指用少量保证金控制较大名义头寸的机制。例如10倍杠杆意味着你只需付出合约价值的10%作为保证金,就能持有全额合约。收益和亏损都会被放大,所以杠杆越高,账户对价格波动的敏感度越高。
保证金(Margin):交易者为了维持未平仓合约而存入的资金。通常分为初始保证金(开仓时要求)和维持保证金(持仓期间要求的最低净值)。保证金不是费用,而是作为履约担保的抵押品。
维持保证金(Maintenance Margin):账户净值必须维持的最低金额。当亏损导致净值低于该水平时,经纪商有权要求追加资金或强制平仓。不同品种和经纪商的维持保证金比例不同,通常在初始保证金的75%到100%之间。
追加保证金通知(Margin Call):当账户净值低于维持保证金时,经纪商发出的补款要求。若交易者未能在规定时间内补足资金到初始保证金水平,经纪商将强制平掉部分或全部仓位。在回测中模拟这一事件,能让交易者直观看到“被打爆仓”时的实际损失。
回撤(Drawdown):账户净值从历史高点回落到低点的幅度,通常用百分比表示。最大回撤衡量了策略在某个周期内可能经历的最糟糕资金曲线下跌。杠杆会放大回撤的绝对值,甚至导致爆仓。
仓位(Position):交易者当前持有的合约数量与方向。做多仓位代表看涨,做空仓位代表看跌。在杠杆交易中,仓位的名义价值可能远大于账户净值,因此仓位管理是杠杆交易的核心环节。
强制平仓(Liquidation):当账户净值不足以满足维持保证金要求时,经纪商为保护自身安全而主动平掉部分或全部持仓的过程。强制平仓价格往往不是预期的止损价,而是市场价格快速滑落时的亏损成交,因此实际损失可能大于理论计算。
策略思路讲解
该作者构建的杠杆回测框架,从策略逻辑上可以分为三层:仓位计算层、风险监控层、事件记录层。
第一层是仓位计算。传统回测中,一次买入信号往往对应“买入1000股”或“投入全部资金”。但在杠杆交易里,你需要先决定保证金比例。假设账户有10万元,使用5倍杠杆,那么最大可开名义仓位为50万元。此时占用初始保证金10万元,剩余资金可能作为变动保证金或备用资金。作者会抽象出一个函数,把“资金规模、杠杆倍数、合约价格”三者映射为实际可开手数。
第二层是风险监控。这是整个框架的亮点。每一根K线(或者说每个时间步)结束后,回测引擎都会根据最新价重新计算浮动盈亏,并更新账户净值。如果净值低于“维持保证金”阈值,引擎就会触发追加保证金事件。此时作者面临一个选择:是全额平仓,还是只平掉部分仓位以恢复净值?多数真实经纪商倾向于“先减仓,再给一次机会”,所以作者在回测中也会模拟部分减仓操作。减仓比例取决于净值缺口有多大,以及经纪商设定的维持保证金率。
第三层是事件记录。每次追保或强平,都需要记录时间、价格、触发原因、平仓数量、实际损失。这些记录最终汇总到回测报告中,作为衡量策略生存能力的指标。例如,你可以统计“追保次数”“爆仓次数”“减仓后最终收益”等,这些比单纯的“总收益率”更有说服力。
作者的策略本身并不是一个具体的“买入持有”或“均线交叉”策略,而是一个“元策略”——它服务于所有需要杠杆回测的策略。你可以在它的框架下运行任何交易信号,然后观察杠杆对结果的影响。这种开放设计很聪明,因为它把“是否使用杠杆”从策略参数中剥离出来,变成一个独立的测试维度。
实战中,这种思路的应用方式可以这样理解:假设你开发了一个基于箱体突破的趋势跟踪策略,在1倍杠杆下回测年化收益20%。如果你把杠杆设到3倍,年化可能变成35%,但最大回撤从15%跳到40%。更关键的是,回测报告会显示在第3年某次突破失败时,账户触发了一次追保,被迫减掉一半仓位,而接下来的反弹行情恰好带走了这部分利润。于是你意识到,3倍杠杆不是“收益放大”而是“路径改变”。最终你可能决定使用2倍杠杆,并额外设置一个比经纪商维持线更保守的内部风控线。
这种思路对任何交易者都有启发:杠杆不应是拍脑袋决定的,而应该通过逆向测试找到“能接受的回撤”与“可承受的追保频率”之间的平衡点。
优点
第一,回测结果更贴近真实交易。模拟了追保和强平,避免了“回测是亿万富翁,实盘是穷光蛋”的失真是尴尬。第二,能提前暴露策略在高杠杆下的脆弱性。有些策略在1倍杠杆时回撤很小,但3倍杠杆就可能爆仓,通过回测可以在实盘前发现。第三,支持“部分减仓”逻辑,更接近真实经纪商的风控行为。不像简单回测那样只有“全平”或“不平”两种极端。第四,将杠杆作为独立参数进行敏感性测试,帮助交易者理解仓位与风险的关系。第五,能够生成追保事件列表,方便定位具体是哪一笔错误的交易导致资金链断裂,从而针对性优化入场或止损逻辑。
缺点
第一,回测中的追保机制简化为固定比例阈值,真实经纪商的保证金要求会随波动率、流动性、监管政策动态变化。第二,没有考虑交易成本中的融资费用或隔夜利息。杠杆持仓通常需要支付利息,这笔费用在长期持仓中会显著侵蚀利润,但该框架可能未纳入。第三,滑点与流动性不足导致的实际强平价与理论价有偏差。极端行情中,跌停或跳空会使挂单无法成交,真实损失更大。第四,过度依赖历史数据回测容易产生“过拟合杠杆倍数”的问题。你可能找到一个历史最优杠杆,但未来波动率结构变化会让它失效。第五,部分减仓模型的触发顺序和减仓比例设置较主观,不同经纪商的实际操作顺序可能不同,导致回测结果仍然存在系统性偏差。
起源年份考证
关于“杠杆与保证金回测”这类方法,其起源可以追溯到现代金融学中“风险价值(VaR)”与“压力测试”的应用。20世纪90年代,JP摩根在1994年发布RiskMetrics系统,首次将当日风险价值作为量化风险的标准工具,这是“保证金监控”理念的雏形。此后,1996年巴塞尔协议修正案允许银行使用内部模型计算市场风险资本要求,其中就包括对极端行情下保证金覆盖率的模拟。
在个人量化交易领域,随着互联网交易平台在2000年前后兴起,交易者开始用Excel或简单程序做回测,但当时几乎没有个人工具能模拟追保事件。2004年,美国商品期货交易委员会(CFTC)加强对零售外汇经纪商的保证金监管,2008年金融危机后,全球监管机构普遍提高了非集中清算衍生品的保证金要求。
至于“带杠杆的策略回测”在通用回测框架内成为标准功能,大约是在2010年以后。开源量化平台Zipline(2012年发布)和商业平台QuantConnect(2011年成立)陆续加入了对保证金和杠杆设置的简单支持。2015年,零售外汇经纪商广泛采用“负余额保护”与“分级保证金”机制,促使回测引擎开发者进一步细化强平模型。
本文作者所描述的“脚本语言新增杠杆与追保回测功能”,根据其原文发布时间推断,比较可能发生在2019年至2023年间,因为这段时间是零售交易平台强化脚本语言回测能力的高峰期。但需要说明的是,这里是基于“该类方法(杠杆回测与追保模拟)”的发展脉络给出的时间线,并非直接考证该脚本具体发布日期的确切年份。由于社区公开信息有限,无法更精确地证明该脚本的首发年份,以上时间线仅作为行业背景参考。
改进建议
第一,将动态保证金率引入回测。可以根据近20日的实际波动率,按年化波动率的某个倍数动态调整维持保证金比例,以模拟真实经纪商在波动加剧时的风控行为。第二,加入隔夜融资成本的计算模块。对持仓天数超过1天的订单,按当时的市场利率(如隔夜拆借利率加点)逐日扣除融资费用,使长线策略的回报率更加真实。第三,模拟极端跳空风险。可以要求回测引擎在每一个时间步检查“如果下一根K线以跌停价或涨跌停价开盘,账户是否会被直接强平”,这比连续使用收盘价更严格。第四,引入“追保宽限期”规则。真实交易中,追保通知后通常留给用户一定时间补保证金,宽限期内行情可能反转,所以回测可以支持“追保后在下一根K线开始前未补款才强平”的延迟机制。第五,允许自定义多级减仓策略。例如,当净值低于维持保证金90%时,先减仓30%;若继续跌到80%,再减仓50%。这种分级逻辑比单次减仓更贴近实战。第六,增加“追保成本”惩罚项。每次触发追保视为一次风险事件,在最终绩效报告中单列统计,同时给策略添加一个“连续追保次数上限”的过滤条件,帮助用户剔除那些依赖极端行情幸存策略。第七,将杠杆回测与蒙特卡洛模拟结合。在历史数据基础上随机重采样或加入噪声,生成多条模拟路径,检验策略在相同杠杆下能否通过足够数量的“平行宇宙”,避免对单一历史曲线的依赖。
总结
该作者提出的杠杆与保证金回测框架,虽然看起来只是补齐了脚本语言的两个功能缺口,但背后反映的是量化交易理念的一个深层转变:从“追求收益率”转向“追求生存概率”。在真实市场中,杠杆不是收益的催化剂,而是风险的放大镜。一个策略如果没有经过追保与强平的考验,其纸面收益率再高,也就像一座没有消防通道的高楼,一旦起火便无路可逃。
通过模拟保证金监控、追加保证金通知、部分平仓等真实事件,交易者能够更清醒地认知自己在极端行情下的行为模式,从而在实盘之前就完成“风险教育”。当然,再精细的模拟也无法覆盖未来所有可能,尤其是在流动性枯竭、监管突变、黑天鹅事件出现时,任何回测模型都会失效。因此,杠杆回测的终极价值,不是让人相信“我能扛得住”,而是让人经常问自己:“如果我真的扛不住,我该提前做哪些准备?”
愿每一位使用杠杆的交易者,都能先在自己的回测报告里经历几次“虚拟爆仓”,再带着敬畏与清醒走进真实的市场。