入坑量化一年总结贴
由mymdeep创建,最终由mymdeep 被浏览 404 用户
自我介绍
策略盈亏
在介绍自己之前,先看一下入坑一年写的一些策略吧,毕竟在这里策略的效果比名字有用。
策略本身都是一个优化的过程,现在能拿的出手的也就是这三个策略。
自我介绍
好了介绍完策略说一下自己,我出身互联网行业,专职程序员,所以我入门量化,程序代码不是难点,金融知识确实接触较少。所以我在编写策略时,更多的是缺少策略的思路,这也是我后续学习的一个重点。
\
对于量化的理解
接下来我说一下从我的角度来看,对于量化的理解。
量化的理解
我将现在的量化分为两类:
传统量化
对于传统量化而言,我可以看作是复杂的条件单,也就是我根据以往的数据,根据条件进行筛选,筛选出满足条件的股票,进行买入,当持有股票满足另外一个条件进行卖出。举个例子,底背离买入,顶背离卖出,那么我们只要根据历史数据计算出每只股票的背离形态,即可买入或卖出。
当然正常情况下,条件一定不会这么简单,如果仅是一个条件的筛选,那么可以筛选出成百上千只股票,还是无法继续细化,那么还是需要加入新的条件。比如市值,PE,交易量等等。
机器学习与量化结合
Bigquant的stock_ranker引入了机器学习的概念,这个是我在其他书籍上没有见过的,所以也在学习过程中。日常工作中也会接触算法推荐相关的内容,所以这里说一下我的理解。
先用数学的语言描述一下:
ax+by = 100求x,y的系数a,b。这样的题肯定是无法解决的,这时候就需要引入样本的概念,(x=2,y=3)(x=10,y=10)
这样就可以得出a=-70,b=80。当然真正的机器学习肯定不是这么简单的一个式子。
更详细的例子可以参考: https://bigquant.com/wiki/doc/celve-Uu3N6WbJNJ
这篇文章已经解释的非常清楚。
关于回测
回测是指我们根据机器学习算出的套路,套用一段时间的行情,看看是赔是赚。
在刚开始使用stockranker做量化时,十分迷恋回测的曲线,但是后来逐步发现是否真的有效果还是要看实盘。举个例子,有这样一组样本:
周一 晴 小明上班迟到
周二 雨 小明上班迟到
周三 雨 小明上班未迟到
周四 晴 小明上班未迟到
周五 晴 小明上班未迟到
在这组样本中有两个影响因素,星期几,天气,这个就是机器学习的因子,如果我们选错因子,选的是日子,那么可以得出结论周一,周二小明上班迟到。回测也是100%准确,但是后续的日子,我们可以预测周一周二小明会迟到,但是我们都知道这与周几无关,与天气有很大关系,回测只能表明,在这个回测数据中完全吻合,但是并不是最佳答案,这往往由于是回测数据不够造成的。可以多回测一段时间,就会发现,选择的因子不正确。
所以我的方法是,多回测一段时间,多回测一些时间段。
同时样本也要尽可能的多,包含各种情况,例如我们只选择某一年的股票数据当做样本,这一年并未包含一些大涨大跌的特殊情况,那么计算出的策略也是不够的。
所以不要轻易迷信回测曲线,这里可以参考虫哥的一篇文章:https://bigquant.com/wiki/doc/gaishuai-VEmyCgB5uz
如何使用策略
操作
当我们开始运行一套策略后,我们就真能赚到策略计算出的收益吗?
根据我一年实盘经验来看,还是很困难的,原因主要如下:
- 滑点:例如一只股票今天收盘价格是5元,推荐你明天买入,但是明天开盘就是5.2元,你提前挂单肯定是无法买入的,但是这种情况,你还会进吗?你能赚取多少收益?可能大部分人不会了。但是实盘收益计算是按照今天开盘价计算的,所以如果严格按照策略操作,尽量挂一个涨停的价格,这样做有风险,但是至少收益会与策略计算的一致。
- 心态:一个真实的例子,今年我在按照策略操作时,推荐了一只股票,我买入后第一天横盘,第二天涨停,按照策略第二天应该卖出了,我也有10%的收益了,但是,心态使然,觉得明天还会涨,我没有卖出,结果第二天跌停,这时更不想卖出,第三天又是跌停,清仓卖出。。。。,这就是没有严格执行策略的结果。但这也是人性,很难避免。
- 意外:有时候尾盘需要卖出,但是正好赶上那个时间有会,或者有些其他事情,导致没有操作,没有卖出,即便第二天开盘卖出,也是十分影响收益的
建仓
我今年看了不少策略,也写了不少策略,每种策略适用的行情不一样,比如上述的一个策略,一年收益26%,这个策略是纯防守策略,在今年11月份前,收益高达60%,对于今年的行情来说就算不错了,但是年底一波行情下,反而下跌了,也为不适合追涨,我还有一个策略,在大盘行情好时,追涨不错,一个月收益就有二三十,但是今年整体行情不好,一直是负的,所以没有贴出。
所以需要多种策略结合,大盘的行情如果仅通过计算很难判断,也容易出现判断不准的时候,特别是A股,受各种消息影响非常大。所以可以人工干预
行情好时:追涨策略建仓高一些,比如60%,防守40%
行情不好时:防守策略60%,追涨20%
这些可以根据个人情况进行分配。
特别需要说明的是,我的防守策略加了风控条件,也就是大盘不好时,可能不推荐股票,这时候,其实相当于整体仓位只有20%
结束语
关于策略
今年仍会继续学习金融相关的内容,并深入挖掘因子,编写策略,赶上一波今年的行情(如果有的话)
关于Bigquant
Bigquant是我入门量化的起点,感恩Bigquant完善的文档体系让我上手较为简单。但是仍有一些建议:
-
上文提到过我是程序员出身,编写策略时,还是不习惯可视化拖拽,一直用的是源码编写,即便是bug或者问题调试,也是习惯用python日志。但是实际编写时感觉Web的IDE还是有些卡顿难用,希望能够继续优化,提供一些调试功能,或者推出端上的IDE能力
-
Bigquant搞过MeetUp,也搞过一些优秀策略作者的分享,感觉收益良多,但是下半年时搞的越来越少了,后续希望继续举办。
\
==最后有志同道合,希望交流的同学,可以加V:mymdeep==
\