通过投资组合理论 探究因子组合优化方法

头像
dapanji
帖子: 926
注册时间: 2018年 1月 12日 16:41

通过投资组合理论 探究因子组合优化方法

#1

帖子 dapanji » 2019年 8月 29日 14:40

最近研究商品期货的因子投资方法,涉及两大方向:

1、单品种多因子投资
2、多品种多因子投资

两类投资看起来关联性很大,但我还是要再细分。
一是因为某些因子是单个商品或者某大类商品独有的,不适用于全市场。单品种把这些因素考虑进来,会做得更细致。
二是单品种多因子投资里面,策略间的相关性比较大(对于单个商品,某一天的方向只能有三种,但是多个品种的不同方向有3^n种组合,n为商品个数)。
因此,投资组合理论也许更适合多品种多因子。
但另一方面,单品种多因子更容易实现。

这次的研究,也许在正规军里面是个很简单的问题,欢迎指导。

我先按照自己查阅的资料展开。
上次由 dapanji 在 2019年 8月 29日 15:42,总共编辑 1 次。

头像
dapanji
帖子: 926
注册时间: 2018年 1月 12日 16:41

Re: 通过投资组合理论 探究因子组合优化方法

#2

帖子 dapanji » 2019年 8月 29日 14:44

首先是这一篇
https://cloud.tencent.com/developer/article/1395644

里面比较详细地讲述了原理,还附有python代码,感觉看完这一篇,再自己动手实践一下,基本上就足够了。

不过我主要用的是Matlab,所以再看看有没有相关的文献和示例。
掌握方法以后,我会尝试套用到螺纹钢的模型上进行优化。

头像
tmtmaya
帖子: 1575
注册时间: 2018年 1月 15日 19:00

Re: 通过投资组合理论 探究因子组合优化方法

#3

帖子 tmtmaya » 2019年 8月 29日 16:35

表示看不懂,只有默默给你加油了~~
狐狸大叔

头像
dapanji
帖子: 926
注册时间: 2018年 1月 12日 16:41

Re: 通过投资组合理论 探究因子组合优化方法

#4

帖子 dapanji » 2019年 8月 30日 10:59

tmtmaya 写了:
2019年 8月 29日 16:35
表示看不懂,只有默默给你加油了~~
尝试将自己理解的说说

一,制定标准,比较不同标的优劣。
用简单的情况(如掷硬币)来类比,有以下几个摊位,假设赢和赔的概率均为50%
1)赢9赔8
2)赢2赔1
3)赢4赔2
4)赢1赔2
最后一个肯定不会去玩。
前面2个,平均每玩2把赢1。但是,1)的风险大很多
假设前面10把都是1赢1赔,现在是+5。下一把赔的话,1)会变成-3,2)还是+4
所以从收益风险比的角度看,1)比2)和3)差
我自己的情况很像1),如果相隔比较久公布一次净值,看起来还算稳定,但很容易在下一次被清空盈利。

2)和3)的比较:如果兜里只有5块钱,选2)更稳妥,选3)运气不好的话先把钱赔光了,后面赢回来的机会已经没有了。
所以,二,投资/赌博根据自身需求设置不同的最优化目标。
比如我只能赌10次,想赚50块,毫无疑问只能在1)搏一搏。

三、相关性
完全正相关或者负相关的组合起不到分散风险的作用。这个不展开了

四、实战
有了上面一些内容,就可以根据自身目标对股票池(比如文中的FAAG)进行组合投资,并设置权重
1、分析不同股票的风险
图片
亚马逊有两处明显的高峰值以及几处低峰值。脸书有一处则达到了两年内四家公司的最高值。同时苹果也存在一些峰值。从上图我们可以粗略地看出,这四只股票当中,亚马逊的风险最大,而谷歌则较为稳定。

2、随机分配权重,绘制出不同权重下,各个组合的“风险-收益”散点图(下面风险,左轴收益)
图片
这些散点构成的图形,在上方形成边界,同等风险下收益最高。

最后通过计算:
图片
如果想风险低,多买点Google,收益风险比0.22:0.16
如果想收益风险比高,不买Google,收益风险比0.3:0.18

头像
tmtmaya
帖子: 1575
注册时间: 2018年 1月 15日 19:00

Re: 通过投资组合理论 探究因子组合优化方法

#5

帖子 tmtmaya » 2019年 8月 30日 11:57

懂了那么一点点,也就是说,搞一个因子池,然后用风报比的方式去给与因子不同的权重,再押注?
历史回测效果如何?
狐狸大叔

头像
dapanji
帖子: 926
注册时间: 2018年 1月 12日 16:41

Re: 通过投资组合理论 探究因子组合优化方法

#6

帖子 dapanji » 2019年 8月 30日 13:10

tmtmaya 写了:
2019年 8月 30日 11:57
懂了那么一点点,也就是说,搞一个因子池,然后用风报比的方式去给与因子不同的权重,再押注?
历史回测效果如何?
我的想法是这样。
另外,定期重新测算,并赋予各个因子新的权重

但是还没用这个方法开始回测,还在搜资料和编程阶段。
我猜,多商品多因子效果会更好,因为每个标的(多商品单因子)之间相关性比较低。
单品种的各类因子,特别是同一类内的因子,相关性应该都不小。

头像
tmtmaya
帖子: 1575
注册时间: 2018年 1月 15日 19:00

Re: 通过投资组合理论 探究因子组合优化方法

#7

帖子 tmtmaya » 2019年 8月 30日 14:11

分散得多,收益曲线斜率也低了很多,为啥不押注1、2个确定性最高的因子,在其它因子没啥干扰的情况下?
比如就找高库存,高利润,或者低库存,低利润的,岂不是更简单?
搞这么复杂的意义在哪里呐?
狐狸大叔

头像
dapanji
帖子: 926
注册时间: 2018年 1月 12日 16:41

Re: 通过投资组合理论 探究因子组合优化方法

#8

帖子 dapanji » 2019年 8月 30日 14:29

tmtmaya 写了:
2019年 8月 30日 14:11
分散得多,收益曲线斜率也低了很多,为啥不押注1、2个确定性最高的因子,在其它因子没啥干扰的情况下?
比如就找高库存,高利润,或者低库存,低利润的,岂不是更简单?
搞这么复杂的意义在哪里呐?
1、三个臭皮匠赛过诸葛亮。
多个接近60%胜率的因子组合起来,胜率有可能大于60%,而且收益风险比提高。
2、一个因子不可能长期有效或者长期失效的。
比如展期收益率,最近两个月用在黑色(rb和i)上损失惨重,怎么优化都没用。解决方法只能是动态调低权重。

多因子结合,也很接近真实世界的运行情况。某种结果不是单一因素引起的,而是多个因素综合作用的结果。只不过有时候东风压倒西风,有时候相反。

头像
dapanji
帖子: 926
注册时间: 2018年 1月 12日 16:41

Re: 通过投资组合理论 探究因子组合优化方法

#9

帖子 dapanji » 2019年 8月 30日 14:34

Matlab的网页上有相关的视频
https://ww2.mathworks.cn/videos/use-mat ... l_use=Home

头像
dapanji
帖子: 926
注册时间: 2018年 1月 12日 16:41

Re: 通过投资组合理论 探究因子组合优化方法

#10

帖子 dapanji » 2019年 9月 03日 21:28

https://ww2.mathworks.cn/videos/getting ... 68762.html

跟着这个视频简单地做了些模仿。

2010-2019年,每个因子计算一条资金曲线,作为一个资产。
留空了2010-2011两年数据作为计算依据。从2012年1月底开始,每十天更新组合权重,目标是找出最大化从2010年1月至当前更新日夏普比率的资产组合,后面九天沿用这组权重。
假设初始资金500万,不使用杠杆,并用了以下两种方式投资:
1、按照算出来的权重比例,对各因子加权求和,使用计算值决定方向(符号)和头寸大小(绝对值)
2、按照算出来的权重比例,对各因子加权求和,使用计算值决定方向(符号),头寸大小使用固定金额/昨收盘价决定。为了避免每天频繁的小额增减仓,头寸大小按十位四舍五入(保证是10的倍数)。
注:对因子加权求和的意思是,如果因子A方向是多(1),权重为0.5,因子B方向是空,因子权重为0.3,因子C方向是无方向,权重为0.2
那么求和计算如下:
0.5*1+(-1)*0.3+0*0.2 = 0.2。假设昨收价格5000
按方法1,当天持有多头,头寸500万*0.2=100万,20手
按方法2,当天持有多头,头寸500万,100手


原来还有一个主观确定权重的,不过也是有一定规则:
按不同类因子,各自先算出一个方向;根据每个类的历史表现,赋予一定的权重,表现好的权重更高,而且各类之间权重的比例是整数。

净值表现在下面一张图
可以看到2017年以后,不同方法组合因子出来的资金曲线,表现都不如人意。
原因之一,这些因子是使用2017年底之前的数据优化出来的。
原因之二,2017年以后,参与螺纹钢交易的各种大资金博弈水平增强,原来很好用的均线也开始失效了。
附件
RB.png
RB.png (10.06 KiB) 查看 244 次

回复