程序员的量化交易之路(1)----规划开篇

其实,一直对量化交易有一定的理解和情节。早在中大读研究生的时候实验室师兄,已经去了中国平安核心投资团队,做高频交易研究的国源师兄的影响,就开始对金融世界产生了浓厚的兴趣。看了丁磊编著的《量化投资--策略与技术》和艾琳.奥尔德里奇的《高频交易》,反复的看,但是都入不了味,现在回过头来想,一个连股都不炒的人怎么可能入味呢。对一些金融的基本概念都不懂。


2013年7月出社会工作后,在10月份确立目标。需要炒股,而且需要一个深入的理解金融的世界。所以确定去考一个证券从业考试,选了证券基础和证券分析两门。2013年10月26号我进行了我人生的第一笔交易,在接下来的两个多月里面,我10笔交易有7笔都是获利的,有些还获利不少。但是,在接下来的交易中,我发现,几次亏损就把我十几次的盈利给吃进去了。还好,那时候钱不多,特别少。


2014年3月22号,我参加了证券从业资格考试。29号公布成绩。两门一次性过了,虽然成绩不高。但我知足。因为这次考试,我在11月到3月的这端时间里面,我把那两本教材看了三遍,把题库做了一遍。我把那些基本的概念都混了个挺熟,推演了那些供需模型,资产组合最优化等。当然,我现在又忘的,但,只要我把整个知识架构曾经过了一遍,我就知道怎么回事。就像我学了7年计算机,就算我现在不懂数据库怎么操作,我也很快能够知道。因为底子在那里。


在互联网公司工作的有点就是,你能够学到互联网技术里面特别干货的知识。比如一些并发编程的设计、基于epoll的事件机制、内存池的设计、以读者写着衍生出的多线程架构、线程池等各种架构。这个从顺序编程到并发编程,这是我在工作中最大的收获。


我的第一年,都是用C来度过的。我写一个缓存模块,然后写了一些边角料的东西。然后剖析了公司最核心的架构。感触良多。这一年,C的收获很大。


我的第二年是开始做APP的一年,我学习Android开发,我从参与动漫App的开发。到主导一个创业项目App的开发,到独自承担一个视频直播即拍App的实现(Android端),这个直播App,包含音视频采集然后用rtmp发送到nginx+rmtp服务器,然后App也带有播放功能,我选取了vitamio播放器。它支持rtmp和hls。这个App除了视频方面,还有一个简单的弹幕,它是一个简单的及时通信功能。


2014年的12月,我开始写一本书。也快上市了。收获了很多。真的是路遥知马力!这是写这本书的最大收获。有些事情,真的是点滴汇集,给自己定计划。然后每次要偏离了就拉自己一把。我也懂得了如何合作。因为我是第一作者,我要协调和激励第二第三作者卖力的帮忙。

关于这本书,大概会在下一个月上市,到时候再说吧。


回归正题。我接下来要做什么。。】

我有想过,写一个关于维修方面的APP,而且为此我还去专门学习了Axure Pro,我不仅买书了,我还花了200元去买在线教育的视频。然后,我自我觉得,我对原型设计的基本任务还是可以胜任的。不信,你来http://www.threesoft.net,当然,很抱歉,它不是用Axure Pro设计的。它早于我学习Axure Pro。


但,我总觉得APP死的太快。太多了,自然死的太快,这种没有技术门槛的东西,很容易被人吃掉。


所以,我一直在寻找自己的下一个突破口。我的突破口在哪里?  我不断的问自己。。。。


我对金融很感兴趣。我是一个计算机学科的学生,但我的书架上有着不下于30本经济金融相关的书籍。我的书籍大多都是经典教材,而不是心灵鸡汤。那种叫你怎么理财之类的垃圾书我没有。关于股票,也都是上股市操盘手那个系列,有十几本书吧,整套。。。。货币金融学、宏观经济学。这些虽然没有完整看完,但都看了个不少。所以,我觉得自己的只是结构还是完整的。。。


我开始重新考虑“量化交易”这个话题。。。对啊,现在的我,对于股票的基础知识烂熟于心。对经济学和金融学基础也有不错的基础。所以,是时候出击了。。。于是,我花了很长一段时间去了解这个领域。去看人家如何去入门。http://www.quantstart.com/,,并读开源的源码。比如zipline,它是https://www.quantopian.com/的回测平台的引擎,它是基于python的。我觉得quantopian和quantconnect的概念是非常好的。就是你只需要在这里写策略,不需要考虑数据/交易的细节。让你专心写策略。。。而且你可以fork别人的代码。。。太好了。。所以,我找到了自己的目标。就是做中国的quantopian平台。。。


在我读zipline的代码后,我失望了。它只是一个回测平台 backtesting!!!!!!!!!!!而非一个live trading 平台。或许,读者并不知道二者的区别,其实区别很大。最大的区别在于,回测平台的数据是可知的,回测测试可以在一个线程内一次性执行完毕。。。但live trading呢? 不行。 加入你定义个策略,如果Apple的股价低于130美金,就买入,而高于140美金就卖出。那么这个策略是不是得一直跑着,而且苹果的股价每秒钟,甚至每一笔数据都会从远端推送过来(比如moningstart),然后你判断其价格,然后进行交易。对你还得向远端发送交易订单,并从远端接收交易情况。。。。。好,每个策略都要一直监听着,一直跑着。。。而你是一个云平台,你可以允许几千万用户,提交任意数量的策略来跟中其live trading。你想想,这个系统该怎么设计?  而且股票有好几千只。。。。就是,亿一级别的策略需要一直跑着,万一级的股票数据源源不断的进来,然后促发策略里面的条件执行,。。。。。。。。复杂不? 和回测平台已经是本质区别了。。。。


方法总比问题多。这个过程,我最终找到了CEP complex event processing,复合事件处理。。。。我进一步选取了esper作为学习目标。。。。


就这样,我一步一步的对量化交易更加全面了。。。。


接下来,我想把自己所学,记录下来。。一个程序员的量化交易之路。。侧重在实操,而非金融理论。它的角度是程序员。。。


分为两个部分:

1)一个基于cep引擎的量化交易平台的构建。

  1.1)回测平台

1.2)实时交易平台构建


2)策略篇。

根据不同策略种类,各个击破。


                                                                      晚安。深圳。南山。











猜你喜欢

转载自blog.csdn.net/MiniMicall/article/details/45837025