资讯详情

资讯详情

量化求真11|设了回撤线,为什么还能继续亏?

前言一个容易被误读的“停止线”研究者给策略设了10%的回撤停止线以为账户最多亏到这里。某天收盘净值已经跌到线下系统安排次日减仓第二天却遇到跳空。卖出之前账户继续下跌。看着超过10%的实际回撤他的第一反应可能是“风控没有生效。”但这句话可能把三个时刻当成了一个发现风险、决定处置、实际成交。规则正确触发不代表损失停在触发位置订单生成也不代表仓位已经降下来。反过来净值变得平稳也可能只是账户清仓后再也没有重新入场。第十篇讨论后续观察要每天留证。本篇专门审查风险规则本身**它避免了什么又牺牲了什么**仍沿用本系列的动量策略设计不设回撤处置、停止常规调仓、降低仓位、清仓四组比较。文中的金额仅为手工教学数字没有运行新的四组实验也不预设任何一种处置必然更好。目录前言一个容易被误读的“停止线”01回撤线从哪里量损失又到哪里停02三个按钮不是同一种风控03四次回测尽量只改变回撤处置04触发以后追到订单与实际持仓05少亏了多少也要看少赚了多少06清仓之后凭什么重新入场07回撤阈值也会被历史成绩诱惑08怎样写一份不过界的风控结论关于本文的研究口径参考资料01回撤线从哪里量损失又到哪里停回撤不是从最初本金开始算的每一笔亏损而是当前总资产相对此前最高总资产的下降。账户先从100涨到120再跌到108回撤是10%相对最初本金它仍盈利8%。这两个数各有用途不能把“本金没亏”当作“没有回撤”。平台按每日收盘估值更新资产高点再计算当日回撤。设账户资产为E t E_tEt​此前至当日的最高资产为H t H_tHt​H t max ⁡ s ≤ t E s , D t E t H t − 1 H_t\max_{s\leq t}E_s,\qquad D_t\frac{E_t}{H_t}-1Ht​s≤tmax​Es​,Dt​Ht​Et​​−1D t D_tDt​为负数表示处于回撤中。若设置正数d dd为停止线在D t ≤ − d D_t\leq-dDt​≤−d时触发。这里比较的是收盘后的账户资产不是盘中每一笔报价也不是某只股票从买入价下跌多少。图1独立教学算例。资产高点100触发日收盘90假定次日开盘全仓资产再跌10%到81。忽略税费与滑点回撤已为19%这些数字不是平台实测。图1不需要程序出错也会发生。触发日收盘时账面资产90次日开盘才模拟卖出开盘前后价格已经不同。假设账户完全持有股票、没有现金股票整体再下跌10%就剩81。即使此时全部成交触发线10%也没把回撤封顶在10%。如果之后遇到停牌、开盘跌停、可卖数量不足或成交额参与率限制还可能无法一次卖完。**停止线规定的是何时采取行动不规定市场给我们什么成交价。**研究风控的第一张图应先把这个时间差画出来。02三个按钮不是同一种风控平台在回撤触发后提供“停止新开仓”“自动降低仓位”“自动清仓”。名称容易懂实际行为却需要查明。图2按当前实现绘制。“停止新开仓”在本项目中会跳过常规调仓不是仅删掉买单。停止新开仓。当前引擎检测到这一动作后直接跳过当天后续策略调仓流程普通买单与卖单都不会照常生成。已有持仓仍承受市场波动。不能把它理解成“买入暂停策略卖出仍正常继续”。日常风险纠偏也可能受这一分支影响必须查看实际事件和持仓。自动降低仓位。平台主要按现有持仓生成缩减目标使总仓位不高于所设上限并结合其他仓位限制。它不自动寻找更安全的替代股票也不会把仓位本来低于上限的账户抬高到上限。目标仓位与成交后的实际仓位之间仍隔着整手、价格与流动性。自动清仓。目标股票持仓变为空订单生成器据此安排卖出。清仓是目标不是订单发出瞬间已全部卖掉。未成交的剩余持仓仍要每天估值并继续接受风险检查。还有一个会影响实验解释的细节每日风险检查有先后顺序。单日亏损限制、行业资料缺失等条件可能先返回暂停委托使当日没有走到回撤清仓分支。四组输入中的其他风险参数即使一样也可能与不同账户路径发生交互。因此报告应说“在这些共同约束下比较回撤动作”而不声称其他风控绝对没起作用。03四次回测尽量只改变回撤处置沿用同一动量策略固定日期、股票资格、参数、初始资金、调仓周期、组合方式、成本与成交约束。总仓位、单股权重、行业、单日亏损和换手等规则也要保持一致然后安排四组组别回撤设置比较的问题A保留其他风控将回撤线设为100%常规正资产情况下不触发回撤处置的基准B预先登记同一回撤线停止新开仓当前实现的暂停常规调仓有何后果C同一回撤线降低仓位减少风险敞口以后损失与机会怎样变D同一回撤线清仓退出股票以后账户如何演变图3实验方案未运行。A组不关闭全部风控100%也不是专门的“关闭回撤控制”开关。为什么不把A组的“启用风控”直接取消因为那会同时取消仓位与其他限制比较对象就不再只差回撤规则。100%是在保持其他风控时的基准设置若出现资产归零等边界情况应另查不把它当成任何状态都永不触发的专用模式。四组完整回测开始时参数相同触发后持仓路径就会分开。此后各组的资产高点、回撤和触发日期也可能不同。这正是整套规则的后果不应强行令它们在同一天卖出。同一事件窗口的详细比较可以另做但不能代替四组完整路径。最好事先登记一个主要目的。例如希望减少深回撤同时接受一定的收益牺牲就应将回撤、收益损失、空仓时间和未成交放在一起评价。若看完结果才把评价标准换成某组最擅长的指标风控实验也会变成挑历史赢家。04触发以后追到订单与实际持仓完整证据链至少包含触发日的资产高点与回撤、当日风险事件、下一交易日的目标和订单、成交或拒单、成交后的持仓。净值线只能告诉我们结果无法证明风险规则在哪一步起作用。图4日频执行路径。风控订单仍走成交模型没有独立的“强制按止损价卖出”通道。当前日常风险调整优先于普通策略调仓强制纠偏没有先套普通调仓换手约束但仍受实际可卖数量、交易状态、开盘价、费用、滑点和参与率限制。不能把“优先”理解成“必定成交”。若触发发生在回测最后一天也没有后续交易日供它执行。未成交还要继续追。当前引擎没有把每张未完成旧单自动跨日滚动的机制若后续收盘检查仍要求调整会基于新的持仓和价格生成新订单。旧单的剩余数量、新单的数量、最终卖掉多少要分别核对。不能简单统计“系统每天发过清仓事件”就说清仓已完成。触发次数也不是日志的行数。平台每天检查实际持仓调仓时还检查目标组合一天可能有多条风险记录。账户连续在线下十天并不自动代表十次独立风险冲击。若研究要数“回撤事件”可事先定义为从线内进入线下的一段直到回到线内才结束并保留观察结束仍未结束的段。否则日志多的方案可能被误读为风险更多实际只是同一个问题持续没有解决。实际仓位本身也会随着价格和资产总额变化。卖出一些股票后剩余股票再上涨仓位可能回到上限附近若仍跌账户回撤可能继续扩大。有效的风控报告要展示每日实际仓位而不是只在配置图上圈出“降到50%”一行。50%若被使用也应是登记的目标不是保证值更不是本文推荐参数。05少亏了多少也要看少赚了多少如果风控组的最大回撤变小下一句不该直接是“策略升级成功”。先看它付出的代价是否长期空仓是否卖出后错过反弹是否增加了费用是否因为可成交性限制才恰好少持有了后来下跌的股票。图5评价维度示意。少亏与少赚都是需要查证的相对结果不是既定事实。最大回撤是一项重要指标却容易被“提前退出此后全部行情”改善。若D组早早清仓后来净值几乎横着走它的低波动只说明账户不再承担股票风险。读者还需要看到同期基准、股票参与时间、现金比例和收益差才知道这是否符合研究目标。收益不能只看末端风险也不能只看最深一点。报告至少并列累计净收益、最大回撤、回撤持续时间、平均仓位、空仓天数、交易成本和成交缺口。研究目标若关心下跌期保护可进一步列出登记的事件窗口若主要依赖一个窗口结论也应限定在那个窗口。还可以追问改善是否主要来自“少持有股票”而不是特别准确地避开下跌若需要支持后一个主张可另设事先登记的较低固定仓位方案观察同样减少市场敞口时会怎样。不过这属于新增对照不能偷换本篇四组。现金比例不同会自然改变波动低风险并不能单独证明退出时点有预测力也不能把收益除以平均仓位就当成严格公平的比较。Kaminski与Lo研究止损规则如何增加或减少组合的收益与波动提醒我们将退出规则当成一种需要评价的投资决策。[1] 其样本和规则并非本项目的A股动量策略本文不借论文预告清仓优于降仓只借它确认问题应同时包含效果与代价。06清仓之后凭什么重新入场卖出是风控故事的一半另一半是什么时候再买。当前平台并没有独立的“冷静几天后重新入场”或“清仓后重置资产高点”规则。只要回撤仍在线下普通策略目标仍可能被回撤检查拒绝。图6按当前实现分析的条件路径。没有新增现金变化等因素时线下清仓账户可能长期保持空仓。假设清仓后账户只剩现金资产仍低于停止线且没有额外资金变化、待收款入账或现金收益。市场反弹并不会自动增加它的现金原来的回撤也不会自己改善。普通买入继续被拒账户便可能长时间停在那里。这不是“市场没有给出买点”的充分证据而是退出规则缺少能让账户恢复交易的机制。停止常规调仓和降仓组则不同它们通常还持有股票价格回升可能把回撤带回线内之后才可能按正常流程恢复。不过恢复不是发生在任意盘中时点还要考虑收盘检查、调仓日期及其他风险限制不能画成碰到线就立即全仓买回。恢复指标也要讲清含义。“重新产生订单”“恢复股票仓位”“总资产回到历史高点”是三个日期。观察结束仍未发生时应标为“尚未恢复”不能填成0天。若跌去比例L LL单从数学上回到原高点需要在剩余资产基础上增长G L 1 − L G\frac{L}{1-L}G1−LL​下跌20%需要随后上涨25%才能回到原点这不说明清仓账户会得到那25%。若研究者另加再入场规则应登记为新方案并重新验证不能悄悄将它补进本篇现有四组。07回撤阈值也会被历史成绩诱惑10%、15%还是20%并非只差一个数字。阈值会决定触发日期继而改变持仓、现金、后续高点和再入场条件。一条刚好避开某次大跌的回撤线在另一段震荡里也可能频繁退出或在反弹前把账户停在场外。图7研究流程。阈值、降仓目标、再入场规则及选择标准都应记录未开展新的参数实验。第五篇对参数选择的要求在这里原样适用先登记候选范围和主要目标在训练期选择阈值与动作再冻结后检验未见时期。若阈值与降仓目标一起尝试全部组合都应保留不能只展示一个“最佳止损方案”。还要区分初始持仓。从历史开始一路运行到测试期会把此前账户高点和风险状态带过来在测试期第一天另建现金账户则重新开始计算高点。两种设计回答不同问题不能在结果出来后选择更漂亮的一种。本篇的四组全路径比较与后来开展的训练/测试实验也应分别登记。回撤线不是越紧越专业。是否值得接受收益牺牲取决于研究目标、成交条件和稳定的后续证据。本文的10%和20%只是解释数字不构成适合读者账户的参数建议。08怎样写一份不过界的风控结论图8空白对照表。净收益、回撤、空仓、成本与恢复情况均待真实实验填写。一份有用的结论应该让读者看到四件事哪些处置确实触发了实际仓位有没有改变相对基准改善或损失了什么后续是否能恢复正常交易。若缺订单与风险事件记录只能讨论净值差异不足以解释机制。“清仓组最大回撤较小但随后长期空仓、没有重新入场机制”是完整的信息。“降仓组净收益较低但满足事先登记的回撤目标”也可能是符合研究目的的结果。相反若成本增加而风险没有得到预期改善就应保留不利结论不继续调阈值直到它看起来有用。本篇最想澄清的是风控并不站在策略之外施加一个神奇保护罩。它会改变下一步持仓也会改变往后每一天的机会与风险。只有把触发、成交、恢复和代价连起来回撤停止线才从一个令人安心的数字变成一条可以认真评价的规则。关于本文的研究口径本文没有运行四组风控实验或修改项目风险配置。图1的100、90、81为独立手工算例20%下跌需25%恢复为数学示例图8留白。所有示意图不代表本项目策略净收益、风控效果或成交概率。本地实现核对收盘估值更新账户历史资产高点与回撤每日风控先检查部分其他条件再按回撤动作处理。stop_new跳过当日常规策略调仓reduce调整现有持仓目标liquidate目标为空。纠偏优先于普通调仓但仍通过次日开盘成交模型受交易状态、可卖数量、流动性与费用等限制。未完成旧单未自动跨日滚动后续日检可重新生成调整单。目标组合检查仍会拒绝处于回撤线下的普通策略目标未实现独立的冷静期、重新入场或高点重置机制。A组100%回撤线是正资产常规范围下的比较设置不是关闭全部风控也不是专用的无回撤控制开关。其他风控有顺序和交互四组应记录共同约束及优先触发事件。“恢复”需要分别报告交易、仓位和历史高点恢复观察结束尚未恢复时不能视为0天。正文机制结论来自实现核对绩效结论仍待真实运行。文中“回撤更小”指损失幅度更小若页面用负数展示应按幅度解释避免把更负的数字误说成改善。风险日志条数、回撤事件段数和实际减仓次数也不是同一统计量。参考资料Kaminski, K. M., Lo, A. W. (2014).When do stop-loss rules stop losses?Journal of Financial Markets, 18, 234–254. MIT公开稿与发表信息。用于说明应评价退出规则对收益、波动的增减其期货样本与退出政策不等同于本文策略。本系列第五篇《最好的参数为什么未必值得选》。阈值选择、尝试记录与后续检验同样属于参数研究。本系列第十篇《回测通过以后策略就能上场吗》。方案冻结、每日留证与异常记录是验证风险规则的基础。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →