走上量化投资道路的回顾

本文在Creative Commons许可证下发布

本文是纪念自己从2000年开始拥有属于自己的第一台计算机后开始的计算技术学习生涯。曾经在百度贴吧里贴出了这段时间的学习生活的回顾。

”记得是在2000年拥有了自己的第一部电脑,台式机,DIY的。
intel PIII 800EB,SD 256MB,20GB,NV Mx100
先是安装了win2000,大约用到2002年,实在是不好找编程的软件,而且系统不太稳定,经常启动进度条即将打满的时候,系统就挂了。可能是盗版系统的缘故。后来,看着网上的帖子可以通过刷主板BIOS,安装联想的WinMe OEM版,安装倒是顺利,可是16位与32位并存的体系架构使得winMe的系统在我的好奇心下经常出问题。我的一个朋友当时给了我一张光盘,说是买书的时候送的,开源的系统——FreeBSD5.2,他随手也把书给了我。后来他回忆是当时他放弃了计算机的学习,定位今后只是使用别人的软件,他觉得对计算机有兴趣的我或许对他的书能够做到物尽其用的目的。我就边看书边自己安装了Freebsd5.2,桌面没有配置,就在上面用VIM,GCC,GDB学着编CC++,现在回想起来当时真是有兴致,至少用FreeBSD5.2后,系统一直非常稳定,学习编程就在黑底白字的环境里,觉得特别有当时看过的《黑客帝国》的味道,学习就在这不经意间坚持了下来。现在(2013年左右)用的probook 4431s上预装的SLED11SP1因为是32位的,我现在主要是做数据分析,需要使用桌面,而这款的电脑的ATi 7470的显卡在FreeBSD上没有得到厂家的驱动支持,就换成了ubuntu12.04 64位版.不过,有时间的时候,我会来看下这个贴吧,看看网友的新发现,觉得挺有意思的。“分享下自己的故事,也算对过去的一个纪念。目前计算条件大为改观,回顾这些年的学习,利用学习的理论知识来做网络协议和量化投资,已经使自己个人财富不论是物质财富和精神财富都出现了复利性增长。深深感谢妈妈给自己买的第一台台式机,在自由软件技术的熏陶下的计算技术是自己这些年来拿来打磨属于自己的软件技术的基础。后来看到Eric的How to become a Hacker开始尝试linux的,注意到版权问题对自己的作品的影响,在自己的本本上装上了正版的windows 7和正版的ms office suite,可是在找自己要用的专业软件的时候,发现价格高不说,自己的本本恐怕得升级换代了,要知道,本本可是自己攒了好久的钱加央求了妈妈好久才够钱的 :em03 当时已经上班工作了,自己在业余时间里研究Finance和Computation的劲头更足了。虽然在工作单位,工作需要用的windows XP,可是这一对比下,linux上的计算软件更加容易得到,大量的开源计算的资料,使自己很容易就体会到了选择的重要性。在学习中发现自己独立思考的能力与日俱增。用CentOS的时候,发觉在Fedora和ubuntu下出现的问题,这个版本都解决的很好,很多要用的软件一条命令就可以自动解决,自己集中精力在自己的金融问题上就足够了。所以就在CentOS 7发布后,就开始使用它了,于是就有了在CentOS 7上搭建计算平台一文,随着研究的深入需要使用机器学习和深度学习技术来研究量化技术。自己逐步比较了Windows 10、Oracle Enterprise Linux、CentOS、Ubuntu、Manjaro和Mac OS X,最终决定主力量化计算平台转到Ubuntu 18.04LTS上面了,总结经验有了最佳量化交易系统一文。与此同时,大家知道到了07年,中国股市过山车,08年,美帝闹金融危机。这些事情使我开始关心一些金融方面的信息。对于当时在互联网大潮里淹的喘不过气的我来说,Quant 这个行业目标相当的单纯,无非是用数学和编程技术进行交易,交易的方法虽然千变万化,但是业务的核心形式是不变的。这意味着在这行业内积累的经验,生命周期会比较长,不至于两三年就换了江山。而且,这种集金融,数学,计算机等多种学科于一身的工作,对于沉迷于技术世界的人来说本身就有特别的吸引力。那种感觉,就像是山穷水尽之时,你突然发现眼前有座巨大的金矿,不动心是不可能的。兴趣转变以后,接下来的事情对于我来说就比较简单,只是如何寻找入行的机会而已。但是为了能够再次见到她,我只能继续在电信行业里打拼,就如我本科时候,我问我的老师应该怎么做才能两人在一起时候,老师的回答一样。我只能说这一方面有性格的因素,另一方面也是因为大学时选择了喜欢的专业,毕业后也按照自己的兴趣做喜欢的工作,因为工作时可以保持愉快,所以在职业发展的问题上没有感到困扰。这是为什么在之前的生活和学习经历中,我始终强调选择职业应该以兴趣为优先。当然,此间也自有辛酸往事,我并无意轻描淡写刻意隐瞒,只是那的确与心路无关,所以就不提了。

在写了几年程序之后,我对软件业和互联网行业的确感到有点厌倦。因为当时我个人觉得技术研发这个角色在这个行业有点尴尬。首先是进入门槛太低,开源软件不说,技术文档也是网上随手可得,任何人只要肯花时间都能入门。而具体的工作做多了又实在感觉有点重复,无非是从一种语言换到另一种语言,从一个框架换到另一个框架。其次,即便技术本身仍然存在挑战性,一个项目的成败,关键点往往又并非技术能力,可能是一个新颖的时尚功能,或者是交互设计,又或者是市场推广。总之,情况变得复杂以后,技术人员的地位相当微妙。事实上,大家后来也都见证了,“只差一个程序员”的段子是如何流行起来的。需要注意,我这样说,是完全主观的个人感受。事实上,当时(世纪初的第一个十年)可以说是码农行业的黄金十年,Google 的大潮刚起,短短数年内又有了 Facebook 的崛起,之后又有 Twitter,iOS,Android之类层出不穷各种热点,对于程序员来说机会是非常多的。但是当时就我个人而言,对这种极速变化的世界是不太喜欢的。那种感觉,怎么说呢,对于一个年轻人来说,你刚学会 Java 有人就开始鼓吹 .Net,学会 .Net 发现大家都在赶 PHP 或者 RoR,等你扑过去,发现热点已经变成 iOS 了。技术的变更还不是最致命的,要命的是产品的形式也在飘忽不定,上学的时候大家明明还在钻研操作系统,毕业以后已经是搜索引擎的天下,还没等你深入学习,热点又变成了社交网络。我对这种变来变去的世界实在是厌倦极了,而且关键是,等到社交网络大行其道以后,我已经彻底搞不清楚花如此大力气只是为了多卖几个广告这种业务到底是在做什么。(互联网行业的朋友息怒,以上仅为当年的浅薄看法,如有雷同,纯属巧合)

再加上我的合伙人不断的黑我,黑我手上的项目。我反复的跟他们解释说,我只是采纳了我本科通信原理老师的建议拿移动通信网设计来作为跟女友在一起的说法得不到他们的手下留情。当时,各种压力山大,后来又跟她失联了,我一下子失去了明确了目标。我只能作出这样的选择:去电信行业里,一来给女友知道我继续我的通信道路;一方面关心我的师长一个有力的回应,是金子到哪里一样闪光。

那段时间给我的兄弟留下的印象是,我总是在纠结中,连一个炒股的看盘软件都会引起我的纠结。加上网上的技术人员的交流贴,把这些东西说的那么高端大气。其实,我只是想跟她在一起。我做这些事,只是为了两人在一起做的铺垫。数据分析师也好,量化投资也好,只是给叔叔看我的能力的选择,其实,看过我的博客的人都以为我纠结的问题很多,对于量化投资实际上是:越低频的策略越偏重数据和模型,越高频的策略越偏重系统。真的没那么难,别被他们吓着了。这个领域,既不需要UI控制,也不需要并行计算等高大上,只需要统计分析,实现算法,不算极度难。关键是勤奋和灵感。简单说说必备的吧,我是土鳖出身,只捡实用的说。 1. 数据库和SQL必须精通,这是筛选数据和统计分析的基础。交易数据非常大,请谨慎使用。2. excel,请别笑话,多维展现数据,进行图形化数据分析,给你灵感,可以帮助你建立策略。3. Python,进行策略回测。必须是python,市场变化这么快,c和c++开发效率太低,根本来不及建模。以上三步反复进行,直至最优策略。大部分通过不了,小部分通过了也会失败,有时还没实施2次呢就失效了。所以你需要非常勤奋。高大上的东西可以逐步补充。市场凶残,请一定纯熟使用上述工具,日日更新策略,否则会被市场玩死。实际上,很多做量化投资的人都是闷声不响搞个人发财。但是,实际上这些都是有规律的东西,不是什么火箭机密,核弹技术,穷其一生,都无法掌握的技术。抓住关键点,再付出实践,还是会有很大的收获的。比较流行的应该是R+Python,掌握好了,不仅可以做一名好的数据科学家,一样可以做一名好的量化投资人。R用来快速实现和验证你的策略。Python的好处在于速度比较快,移植到C++之类的也比较方便。国内的情况就比较复杂了。首先是用Matlab的比R多多了,国外有版权问题,国内几乎没有这个问题,学校里面又以教Matlab的巨多,所以导致了毕业以后用Matlab的人比较多。从金融工程的使用者来说这个比例应该在4:1到5:1之间。其次Python也有一些用户,但是在行业内比想象的少,更不用说C++和JAVA之类的。SAS是一个比较特别的异类,行业内有不少人用。当然比不过Matlab,数量应该和R类似,这点上我没有精确的数字。用SAS的原因主要是因为和SQL之间的交互效率很高,但是SAS的编程方式比较奇怪。SQL还是很有必要懂一点的,虽然未来的趋势可能是大家更多的使用API的方式提取数据,但是如果要追求稳定性和速度,落地数据库的方式还是逃不了的。所以做金融工程的最好还是要会SQL,当然只需要select和复杂的join就可以了。SQL方面,大家主要用SQL server和Oracle。目测MySQL非常少。最后还有一个大家没有提到的,但是非常重要的就是VBA,因为Excel的关系,其实VBA是一个很好地实现工具。也很多人用,国外的金融行业里面VBA的应用也是非常多的,作为快速实现和展示的工具,VBA是非常好的东西。

写此文,一并纪念之。

原文地址:https://www.cnblogs.com/evilqliang/p/12492820.html