关闭
您正在使用的浏览器版本较低,无法支持聚宽的某些特性。
为了获得更好的体验,推荐使用:
Google Chrome
或者
Mozilla Firefox
或者
IE9以上
。
返回主题列表
605更新:11年 100倍以上的多因子策略-四因子选股策略研究(2)
345
listen
分享到:
微信
微博
雪球
评论
天天好心情
@米虫 剔除ST不是关键,剔除ST从逻辑上讲反而会使收益下降的(壳效应),不信你试试^_^(试的时候尽量多买一些股票,比如选100只股票,这样的结果比较可靠一些。)“关键在于剔除停牌”,看似有道理!你看神父策略后面那一长条的横线,确实是因为它选中了停牌的股票。但是作为一个合格的策略,剔除停牌是必须的,所以这点来看神父的策略没什么问题的。而且我想说的是,这其实不是你俩策略区别的关键所在。按照你上面的逻辑,剔除停牌后,收益应该会大幅度增加才对。。。。但是,我把你的策略剔除了ST停牌之后,收益更弱了。。。双因子3月调仓07年起测到16年止从600%降到只有275%了。
2016-06-02
天天好心情
@米虫 另外我让你把回测时间调到07年开始,是为了让你后面回测的曲线能够压缩看得更清楚。这么一对比,能很快发现纯小市值策略和你的双因子策略的差别到底有多大。真正做测试当然是越多数据越好啦~这个没有问题.
2016-06-02
天天好心情
@米虫 最后,如果你要说2005年1月5日开始测才算数的话,那么神父的小市值策略选5只股票,按月调仓,最后的收益有16339.48%,那可是163倍收益啊,不比你的双因子61倍收益强多了嘛?还有那个最大回撤,如果我五十步笑百步非要对比一下,纯小市值最大回撤60%不到一点,双因子最大回撤74%,这不是很好地证明了单因子比双因子更牛嘛……(其实我内心也是非常支持多因子策略的,还是愿意相信多因子比单因子靠谱很多的。只是你的这个策略可能哪里有些问题,收益降低了,这个我们是可以接受的,但是最大回撤应该也相应降低才对。或者最大回撤不降低,但是获取超额Alpha的能力应该变强变稳才对。)
2016-06-02
天天好心情
@米虫 刚才我贴的用你的策略改的剔除停牌没写对,我只把反转部分剔除了。现在下面我改好的你这个策略应该是对的,没细查。从结果上来看双因子收益变成只有80%了,说明不是剔除停牌的问题,应该是别的地方有问题。。。 比如,我猜:s_cmc = s_cmc.dropna().argsort()这个argsort函数你用错了。 下面是用你的策略打印出来的市值排名,平安银行这个股票怎么也不可能排名179几乎垫底啊。 #2007-10-31 09:20:00 - INFO - code #000001.XSHE 179 #000002.XSHE 166 下面是我用自己的方法打印的市值排名,可以发现平安银行市值排名1216呢。 #2007-10-31 09:20:00 - INFO - code tmcc #0 000001.XSHE 1216 #1 000002.XSHE 1243 关键的问题我给你找出来了,请我吃饭吧~哈哈! 至于还有没有其它问题,请同志们一起来帮忙找茬吧~O(∩_∩)O嘿嘿~ @莫邪的救赎 @宏观经济占卜师 @幻音 @kuhn
2016-06-03
天天好心情
@米虫 正好睡不着顺手就帮你把代码基本改完了,发现确实有不少问题。比如你df.iloc的用法用错了。下面是改好的只选5只小市值每月调仓的策略,07年到16年收益是10877%,结果跟神父的小市值基本能够对上了,有差别是因为我没有用df.dropna(),导致选出来的5只股票总是涨停没买到,这个你就自己改吧。 然后我用修改好的策略跑了一下双因子,结果比你之前的好了,但是07年到16年收益还是只有1119.18%,而且从曲线形态上来看,即使做对冲回撤肯定也大爆了。 所以我的结论是:**单从高收益的角度来分析,小市值单因子在08年后远爆双因子、三因子、blablablaN因子。除非我就是要过度优化,搞一个风格因子,05-08年买大市值,08年以后买小市值。哈哈~~当然,从对冲的角度来分析,我还是更喜欢多因子。**
2016-06-03
天天好心情
@米虫 下面这个是我帮你改好的双因子策略,直接拿去吧,临时兴起瞎改的不保证还有什么BUG。NaN的数据你就自己剔除吧,困了,碎觉咯~~
2016-06-03
米虫
@squid 哈哈哈哈,非常感谢!雷锋!
2016-06-03
yongpeng.r
哇,这几天想着能不能有大神教一下选股相关方面的内容,这就看到了,感谢楼主的无私分享
2016-06-03
码农滚雪球
讨论了这么久,还是小市值。。。
2016-06-03
tintin
没办法,历史数据证明小市值一直是屡试不爽的挣钱秘方。
2016-06-04
米虫
已更新。
2016-06-04
JimZ
感谢分享
2016-06-04
lsy
今天更新的策略中,76行是不是应该是0.2?
2016-06-04
米虫
@上海1338121 是的,谢谢:)
2016-06-05
选项未来导数
膜拜大神
2016-06-06
topaz
@米虫 为什么策略是排名,这样无法体现两名之间的差距啊 把排序这么改如何,所有数值都以最小的同比例缩小,对市值和pb直接可以用,收益率改成df.iloc[1] / df.iloc[0]就行了 def assign_order(s): s.dropna(inplace=True) s.sort() base = s[0] index = 0 for i in s: s[index] = i / base index=index+1
2016-06-13
topaz
@米虫 这是改后的2006-1-1到2016-5-31
2016-06-13
topaz
@米虫 这是主贴的
2016-06-13
JimZ
@topaz 主要的不同就是用assign_order这个函数控制三个因子的权重?
2016-06-13
topaz
@JimZ 权重是s = 1 * s_cmc +0* s_pb +1.1* s_gain这行 assign_order我改的是每个值含义,原来的算法市值最低的是1 倒数第二是2 我改成市值最低20亿,为1 倒数第二是30亿就是30/20=1.5 40就是40/20=2 股价同理,改成现在是120天前的n倍 然后最低比例为1
2016-06-13
首页
上一页
1
2
3
4
5
下一页
尾页
您尚未登录,请
登录
或者
注册
聚宽发表回复。
取 消
提 交