Skip to content

February 18, 2020

86

Adaptive Risk Parity 投资策略:动态调整UPRO和TMF的比例

作者: physixfan

【2020.4 更新】写在前面:你能承受下图这样程度的回撤并且在这种时候不卖出吗?如果不能,请赶紧关掉这个页面不要往下看了,并移步适合新手小白的《美国投资理财小攻略》。


这几天我还在继续研读Bogleheads论坛上HEDGEFUNDIE的著名帖子,我在《一个简单但有效的投资策略:40% UPRO + 60% TMF》中介绍过这个帖子的内容。如果你还没有读过那篇文章,请先读完再看此文。在众多回帖中,几个人提出了对这个策略的改进版本。

在原始的策略中,之所以建议 UPRO 和 TMF 的比例是40%/60%,其理由是 Risk Parity 的概念,即想让这两部分对整个策略的volatility的贡献相等。原始策略的作者计算了过去40年间这两个标的的平均volatility,以此得到了40%/60%的比例。但是用它测之前的数据的时候其实是相当于用了未来信息了,这会产生bias。而改进版策略的思想是,Risk Parity 实际上应该动态的用更短期的volatility来计算,而非使用一个固定的长时间的数字。一个具体的建议是,每个月rebalance一次,rebalance时使用的比例根据过去20天二者的volatility来动态调整。(为什么是20天?因为大家使用的工具 Portfolio Visualizer 好像最短的时间就是20天吧😂。)

之所以这个改进版策略有一定道理,是因为在金融市场上存在的 Volatility Clustering 现象,即 “large changes tend to be followed by large changes, of either sign, and small changes tend to be followed by small changes”。(这个现象意味着金融市场的曲线不是随机游走。)有意思的是,这一现象最初的发现者是 Mandelbrot,没错,就是那个经常伴随着分形图案出现的数学家。

让我们来用过去的数据看看这个改进版策略实际效果到底如何。在 Portfolio Visualizer 中,我对比了一下这两个策略(时间段为2010-2019,没办法,数据没法追溯到更早的时间)。下图中 Timing Portfolio 是改进版策略,40UPRO60TMF是原始策略。

可以看到,改进版策略在这段时间内的确回报率更高,波动更小,Sharpe Ratio 和 Sortino Ratio 也更高。

有一点concern是,改进版策略在这段时间段内 US Market Correlation 更高。而众所周知这段时间美股是表现非常好的一段时间,到底金融危机来了之后会如何。为此我专门看了一下2018年到现在的数据(2018年是美股表现很差的一段时间)。

注意这段时间改进版策略的 US Market Correlation 已经比原始策略更低了。2018年12月是近期美股表现最差的一个月,注意改进版策略的表现在此月是不错的。具体看一下,按照改进版策略,2018年12月时候,UPRO/TMF的比例是26.87%/73.13%。如此低的股票比例正是它在大跌时刻仍然表现不错的原因,而之所以那个月UPRO比例如此之低,就是因为在那前面的一小段时间美股的volatility已经很高了。

个人认为这个改进版比原始版的确更科学一点,基本决定以后rebalance的时候都动态调整比例而不是固定40%/60%了。

很期待下次美股崩盘时候这个改进版策略的表现!


P.S. 每个月计算新的比例,我是用的 Portfolio Visualizer,大家也可以直接点击这个链接:

然后点击底部的 “Timing Periods”,翻到最后底部即可看到最新的比例应该是多少。

【2020.2 更新】很不幸 2020.2 开始 Portfolio Visualizer 已经不免费开放 risk parity 比例计算功能了。网友Brian在Github上贡献了一份开源代码帮助大家计算,有需要的朋友们请到这里查看代码:

有了新的比例之后,去M1Finance上面点一下即可一键rebalance。


写了一篇文章澄清了一下 Risk Parity 和 Inverse Volatility 的关系,简单总结的话就是只有投资标的数量为2的时候才可以用上面的代码来计算比例,如果你自行添加了其他标的导致数量>2了,请自己写代码计算!


我在雪球开了个组合记录一下这个策略的实际表现,大家感兴趣的话可以来这里看:


友情提醒:此策略rebalance频率高的话,可能会产生很高的税,因此此策略不太适合在 taxable account 里操作,更适合在 tax advantage account (401k, Roth IRA 等) 里操作。

Read more from Investment
86 Comments Post a comment
  1. Roy
    Aug 5 2019

    可以具体讲解一下怎么计算得到新比例吗,不是很懂technical details。

    Reply
    • Aug 21 2019

      Portfolio Visualizer 是个很好用的工具,文章里有个链接,指向的就是这个策略的数据。可以翻到 “Timing Periods” 里面最下方 里面有它计算出来的数字。

      Reply
      • harry
        Aug 22 2019

        有个疑问,像这样每个月rebalance,不是会造成很多次的short term capital gain吗?那交的税是不是会多很多

      • Sep 8 2019

        在这回复一下税的问题吧.. 建议用 Roth IRA 玩这个策略,否则确实会有很多税。。。

      • Will
        Jan 7 2020

        P大,想问下我如果一开始买入这个组合的资金比较少,之后可以靠每月买入更多的相应份额手动达到rebalance的效果吗?这样做单纯是为了避免capital gain tax,长期这么做会有什么弊端吗?
        我现在是NRA要30%的tax,再熬一两年就是RA可以short term的tax可以降低到10%左右,但想现在就开始投资这个策略,您有什么建议吗?

      • Jan 8 2020

        可以通过新的资金达到不卖出就rebalance的效果。长期看 也许最终会有一天这里面的资金会增涨到你新入的钱不足以rebalance吧😂

      • harry
        Sep 14 2019

        查了一下Roth IRA
        in 2019, Roth IRAs allow for contributions of up to $6,000 per year — or $7,000 if you’re 50 or older — and you can use it in addition to a 401(k). (Those limits are up from $5,500 and $6,500 in 2018.)
        每年6000感觉太少了。。。我觉得这个动态策略蛮不错准备投不少钱。。。

  2. hunwing
    Sep 1 2019

    你會在每月底行一次portfoliovisualizer, 看看UPRO 和TMF 的新比例再更改自己M1finance 的比例嗎?

    Reply
    • Sep 8 2019

      如果要用这个动态调整版本 就需要这样每个月找一天看一下然后调整比例

      Reply
  3. Kevin
    Sep 12 2019

    请教下用哪个allocation weights 比较好呢 ? Inverse volatility 还是 minimum variance? 多谢! O(∩_∩)O

    Reply
    • Dec 23 2019

      有一个选项直接就是 risk parity 呀

      Reply
  4. Nicole
    Sep 29 2019

    好文,文中指出:2018年12月时候,UPRO/TMF的比例是26.87%/73.13%。那2018年12月初调整的时候是根据11月的volatility, 72.4%TMF+27.6UPRO调整呢,还是根据12月份的预测26.87%UPRO/73.13%TMF调整呢?因为有几个月差距挺大的。多谢

    Reply
    • Dec 23 2019

      按我的理解,要用的是最新的数字(即你的例子里的12月的数字)

      Reply
  5. Solomon
    Jan 2 2020

    雪球还更新吗?

    Reply
    • Jan 5 2020

      目前还在更新 直到我哪天不感兴趣了或者忘了为止吧😂

      Reply
  6. 碌碌无为
    Jan 16 2020

    话说楼主的雪球上的仓位否UPRO和TMF弄反了?Portfoliovisualizer里面最近(2020/1/14)的比例是39.85%TMF和60.15%UPRO

    Reply
    • Jan 18 2020

      我在雪球上有俩组合 一个是每月根据risk parity调整的 一个是固定40/60的 你是不是看成另外一个了?

      Reply
  7. boson
    Jan 31 2020

    Portfolio Visualizer要收费了,以后怎么搞?

    Reply
    • Feb 5 2020

      嗯?哪里说要收费的呀… 如果真收费了 可以再找个别的免费数据源然后自己稍微写点代码算…

      Reply
      • Stock
        Feb 5 2020

        确实我这边也显示看不了最新的数据了显示需要sign in

        https://tinyurl.com/v55jxms

      • Feb 13 2020

        那就sign in一下吧。注册个用户不要钱的~

      • Sheng
        Feb 5 2020

        有免费账户呀,sign in之后就能看到最新数据了

      • K
        Feb 11 2020

        他家注册账户不免费,你一注册给你几天试用

  8. D
    Feb 2 2020

    我看到楼主在雪球上的两个组合里,实际上是60/40那个收益率比动态调整的那个收益率更高(53.9% vs. 17.3%),这是为什么呢?这是说明60/40这个组合更好吗?

    Reply
    • Feb 5 2020

      这俩组合开始的时间不一样😅 Adaptive那个是我过了几个月后才开始搞的 期间有一段很大的涨幅就没在那个组合的记录里…

      Reply
  9. Will
    Feb 5 2020

    p大,porfolio visualizer现在timing period最底下不每天更新根据inverse volatility计算所得的分配比例了,而是仅有每个月的。比如现在是刚二月,那里显示50/50的比例,我很纳闷他这个比例是根据啥算出来的,到底是历史还是预测,是针对哪个时间段的volatility。我如果今天做调整是按照这个吗还是应该自己找到volatility的数据算一下。

    Reply
  10. Brian
    Feb 16 2020

    我写了一点代码来计算inverse votatility 欢迎大家使用和指正
    https://github.com/linzebing/inverse_volatility_caculation

    p大是否愿意把这篇文章的Link放在Readme里面?如果可以的话我很乐意加进去。

    Reply
    • Feb 18 2020

      好啊

      Reply
    • hkhappy
      Feb 20 2020

      感謝!!

      Reply
    • yuanyuan
      Feb 22 2020

      谢谢Brian! 不过inverse volatility和risk parity是一回事嘛?

      Reply
      • Feb 23 2020

        不一样 不过看Portfolio Visualizer的结果的话 如果只有2个标的结果是一样的 3个或以上标的结果就不一样了。Risk Parity 的计算更麻烦一些..

    • Feb 25 2020

      我借用你的函数,用rolling模拟了一下最近10年的投资(每天按照前一天的比例来调整)得出来每天的balance。然后再用同样的方法算这个balance每天的volatility,和SPY的volatility一起plot出来,好像还是比SPY的volatility高一些(大概1.3倍)请问大牛们这是expected的吗?

      Reply
      • Feb 25 2020

        UPRO/TMF是3倍杠杆呀 volatility比SPY高不是很正常吗

      • Feb 25 2020

        谢谢大神回答,那可能我的理解有些偏差,所以从结果看这个策略的风险是比SPY高的。但是在40/60比例原帖里面提到 “此策略在40年间的最大回撤只有 -49.22%,而同期标普500指数的最大回撤可是有 -50.97% 呢!此策略在表现最差的一年回报率为 -21.06%,而同期标普500指数最差的一年回报率则为 -37%!” 感觉此策略应该波动率比SPY小才对,不知道是我理解错了还是我做的回测有问题。

      • Feb 25 2020

        刚刚又仔细看了下原帖,这是expected的,不好意思没认真阅读哈

    • Weina
      Feb 29 2020

      大神,用你的code一直得到response 401的错误,更新了crumb的

      Reply
      • Weina
        Feb 29 2020

        自己回答自己的问题,需要找出crumb和cookies,crumb不是hyperlink点进去的那个。参考https://github.com/sjev/trading-with-python/blob/master/scratch/get_yahoo_data.ipynb 把URL换成https://finance.yahoo.com/quote/VOO/history?p=VOO然后运行找出crumb和cookies,python小白献丑了

    • qxx
      Mar 2 2020

      fork了楼上大神,添加了计算手动rebalance到整数share需要如何买卖的功能,这样不在 M1 Finance 也能方便地操作了

      https://github.com/qxx/inverse_volatility_caculation

      Reply
  11. Jake
    Feb 26 2020

    感谢提供动态更新这个思路, 看了之后想心里痒痒想试一下😂
    文中提到了这个适合于tax-advantage 的账户搞, 但是我现在是NRA的身份(PhD第三年), 平时用的是Charles Schwarb的投资账户. 想请教一下, 401k或者Roth IRA可以针对我们这样的PhD开放吗(因为我压根不知道以后会不会毕业在美国工作, 更别提退休这样的考虑了…).

    Reply
    • Feb 27 2020

      这方面我也不是专家…

      Reply
      • Jake
        Feb 27 2020

        谢谢回复, 我问了一下学校HR部门, 他们说NRA不交FICA tax, 所以不能办401k
        我估计只能开一个券商的IRA roth了…

  12. Jake
    Feb 26 2020

    “很期待下次美股崩盘时候这个改进版策略的表现!”

    现在机会已经来了😂

    Reply
    • Feb 27 2020

      现在的下跌程度离“崩盘”还有很大的距离 继续观察中😂

      Reply
      • Will
        Feb 28 2020

        这UPRO每天将近10%的下跌,TMF涨不回来那么多,但我不会清仓准备长期持有。
        博主觉得最近还要每月动态rebalance吗?或者针对这波下行这个策略组合需要什么更好的操作方法?(比如按照55/45或40/60??)
        另外期待博主分享一下自己对于这星期美股plummet的看法!

      • Feb 28 2020

        我自己前两天提前rebalance了一下.. 感觉volatility大的时候也许rebalance的频繁一点比较好 不过没有理论依据支撑哈…

      • 组队偷懒
        Mar 3 2020

        volatility clustering的理论能支撑你的操作吗?当发现volatility变大的时候积极调整,因为volatility维持大的可能性会比较高。

      • Jake
        Mar 10 2020

        现在我觉得已经确实是见证历史了😂

        这个动态Risk Parity策略在熊的时候意外的很好啊, TMF带动整个Portfolio

  13. Jake
    Feb 29 2020

    我看了Hedgefundie的帖子, 思考了一下, 这个策略有没有这样的问题呀:
    1. Hedgefundie一直在强调, anticorrelation是关键, 所以才能市场agnostic. 但是我在想, “长期看涨”这个条件是不是也是必要的呀, 否则想象一个极端情况: SPY和SH(inverse SPY)一定是-1 的correlation. 那SH是长期看跌的, 但是他们的volatility都是1:1, 所以porfolio也是1:1, 最终肯定收益是0啊😂.

    2.SP500和Nasdaq基本上都是correlated的, 那是不是也可以考虑TQQQ和TMF的risk parity呀, 我自己计算了一下, 发现qqq与债券的anticorrelation在过去40年里,只比SPY稍微高一点. 这是不是就意味着SPY更适合呢?

    3.我同时也在想A股能不能有类似的策略存在, 我知道510050作为SPY的替代, 但是不知道国内有没有类似的长年国债还能上杠杆的产品?

    Reply
    • Feb 29 2020

      1. 对 必须是俩长期看涨的东西
      2. QQQ偏重科技股 SPY更全面 科技股过去十年涨的好 将来未必
      3. 个人感觉A股波动过大 加杠杆会死的很惨

      Reply
      • Jake
        Feb 29 2020

        谢谢回复!

        A股确实波动太大, 风险巨大😂
        但是美股的话, 是不是一般3倍杠杆就到头了? 比如有什么基金提供5,10倍杠杆的吗?

  14. Brian
    Mar 13 2020
    • Mar 13 2020

      感觉这结论下的也太早了 股债一起跌也不是啥新鲜事儿啊 以前就经常发生 总不能指望天天俩反着走嘛…

      Reply
    • Ltiger
      Jul 28 2020

      can you expand the code for risk parity and inverse volatility? thanks

      Reply
  15. Sheng
    Mar 14 2020

    risk party的策略是不是需要这两只股票都长期看涨呢?
    比如qqq和sqqq平均年收益就是0
    为何upro和tmf组合就能实现收益呢

    Reply
  16. Mar 19 2020

    今天这个策略真是惨不忍睹…

    Reply
    • Wei Li
      Mar 19 2020

      和您请教一下,我的想法是对于长期投资来说在这种因为流动性紧张造成的暴跌中应该加大加仓频率,是增加筹码的好机会。

      Reply
    • Sheng
      Mar 19 2020

      看有人说换成TMV/SPXS组合
      然而咱也不知道啥时候是个底,也不敢乱换策略
      就硬抗呗..

      顺带一提收到了Bank of the West的offer,3%的grocery store, restaurant和gas还没有年费,感觉不错。。

      Reply
      • Jake
        Mar 23 2020

        TMV/SPXS 都是看跌啊, 你这本质上不就是在timing the market嘛…

  17. 大胖蜂
    Mar 19 2020

    TMV/SPXS组合的前提是两者长期看跌。提出的人给出的目标是2000点以前都看跌。

    Reply
  18. Mar 20 2020

    今天小小的去杠杆了一下。从UPRO/TMF的组合变成UPRO/EDV了(原理还是一样 只是不想在债券上加杠杆了)。个人感觉股市长期的涨幅可以克服杠杆的 volatility drag,但是债券这边我有点没信心…

    Reply
    • 大捅哥
      Mar 31 2020

      这样upro的比例就只有不到20% 反弹起来力度不够吧?

      Reply
      • Apr 1 2020

        降低杠杆了嘛 不管涨跌都慢了

  19. Richard
    May 17 2020

    请问你是每个月都把401K放到M1的IRA里吗,还是很长时间转一次。我查了一下要转到M1里面还要用check,好麻烦。感觉不可能每月都搞,达不到定投的效果

    Reply
    • May 17 2020

      哈?401k的钱不能这么往外转呀 401k和IRA得分开处理

      Reply
  20. River
    May 18 2020

    請問博主,在台灣的話怎麼投資TMF和UPRO?

    Reply
  21. 2b-bro
    Jun 19 2020

    对于那些懒得下载python代码或者不想在本地跑python的朋友
    我建了一个google colab,打开之后直接点cell 运行就可以了。

    https://colab.research.google.com/drive/1VGRO3CphtIF1AlKwwayIDatwLph7c9us?usp=sharing

    感谢博主和Zebing Lin

    ps:作为uscreditcardguide的五年老读者,前天才发现物理粉的私人博客,惭愧惭愧。一看简直惊为天人,一个晚上把投资相关的文章全看完了。受益匪浅。

    Reply
    • 2b-bro
      Jun 19 2020

      忘了说,先点一下copy到你的google drive再运行,read-only的notebook是无法运行的。

      Reply
    • Jun 19 2020

      赞啊

      Reply
    • Ltiger
      Jul 26 2020

      can you expand the code for risk parity and inverse volatility? thanks

      Reply
    • Fai
      Sep 3 2020

      不好意思 請問如果是想建立一個TQQQ UPRO TMF的Risk Parity的話 上面的google的代碼該如何修改?文科生不是太看得懂 謝謝!

      Reply
      • Sep 3 2020

        三个标的之间的risk parity其实要稍微复杂一点,现在的代码算的其实不是risk parity而是简单的inverse volatility,因为是两个标的所以没区别;如果是三个标的就得真的用risk parity的算法来算了,尤其是UPRO和TQQQ之间的相关性很大的情况下…

      • Fai
        Sep 3 2020

        我認為在長期投資的角度來看 S&P500內的公司只能平穩上升 所以希望能透過混入TQQQ 為整個組合的成長收益率再延伸開去 但不是很懂代碼這東西該如何修改來計算出risk parity, 希望2b-bro能幫忙教學一下

Trackbacks & Pingbacks

  1. 一个简单但有效的投资策略:40% UPRO + 60% TMF - 宇宙的心弦
  2. 我的2019年投资回顾 - 宇宙的心弦
  3. 投资时的情绪问题 - 宇宙的心弦
  4. 债基价格的上限是多少?负利率的可能性 - 宇宙的心弦
  5. 股票和长期债券的负相关性:短期内强烈正相关的可能性 - 宇宙的心弦
  6. 杠杆基金的损耗问题:为什么UPRO和TMF可以长期持有? - 宇宙的心弦
  7. 推荐/探讨一直基金:SWAN(自带1.6倍杠杆的股票+债券平衡基金,可应对黑天鹅) - 宇宙的心弦
  8. Risk Parity 的具体含义及与 Inverse Volatility 的区别 - 宇宙的心弦

Leave a Reply to boson

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments