【量化交易日记0172】波动率的故事

论坛 期权论坛 期权     
KeyboardLess JO   2019-7-14 19:09   6224   0

今天和同学出去玩了,决定摸鱼一天。分享一个简单的idea。

之前测出来一个策略,利用滚动回测的方法,测了19年年初至今的净值曲线,大概是这样的。




标的是ETH,纯择时,也没有加多币种仓位管理。就其本身而言,已经相当不错了。在ETH行情没什么波动的情况下,并没有亏损太严重,等到波动率上升了之后,果断起飞。

根据我们昨天的文章【量化交易日记0171】变异系数的预言,CTA策略其实本质上是在做long volatility,而学术界也有证明,CTA基金的大部分收益都可以由回望式跨式期权组合的收益来解释。所以,在波动率如此低迷的年初,能长期空仓防止打脸,5月之后能抓住波动,我们其实相当满意了。

但是后来我们又看了策略每个月的净值曲线,发现并不是特别美丽。



没有多少回撤?都是骗人的,一月直接回撤了40%,只是在图里没看出来。3月也有20%的回撤,直到4月才开始有起色,5月6月都相当不错,但走了前半段的7月也相当菜鸡。

这让我们感到蕉绿。




这真的拿得住么...CTA策略最重要的就是规避常态化行情的风险,但这也过于难受了。一方面我们只能承认这个策略其实比较菜,抗风险能力不行;另一方面,我们准备对波动率进行建模,试图预测之——相比一阶矩,二阶矩的预测难度会小很多,而且工具多。

如果对波动率有比较靠谱的预测,那么未来在波动率偏小的时候,建仓的比例就要适当调低;波动率高的时候,可以加大力度。

附上这个短小的代码,结束今天的摸鱼日报。

  1. import pandas as pd
复制代码
  1. from matplotlib import pyplot as plt
复制代码
  1. [/code][code]df = pd.read_csv(r'equity_curve.csv')
复制代码
  1. [/code][code]df['month'] = df['candle_begin_time'].dt.month
复制代码
  1. [/code][code]fig = plt.figure(figsize=[14, 7])
复制代码
  1. [/code][code]for i in range(7):
复制代码
  1. [/code][code]    draw_df = df[df['month'] == i + 1].copy()
复制代码
  1.     draw_df.reset_index(inplace=True, drop=True)
复制代码
  1.     plt.subplot(2, 4, i + 1)
复制代码
  1.     draw_df['cur'] = draw_df['close'] / draw_df['close'].iloc[0]
复制代码
  1.     draw_df['eq'] = draw_df['equity_curve'] / draw_df['equity_curve'].iloc[0]
复制代码
  1.     cur, = plt.plot(draw_df['cur'])
复制代码
  1. [/code][code]    eq, = plt.plot(draw_df['eq'])
复制代码
  1.     plt.title('month %s' % (i + 1))
复制代码
  1.     plt.legend([cur, eq], ['ETH', 'eq'])
复制代码
  1. plt.show()
复制代码
[code][/code]

题图

图源:bing图片
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:15
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP