一、技术选型
笔者是程序员出身,之前有过六年的程序相关经验,之所以选择转型到金融行业,一个是因为兴趣,以前在MT4平台上开发过EA、指标等;一个是因为确实想做些事情,程序项目一般都比较大,自己能做的只是很小一个模块,另外,金融行业确实能赚到很多钱;基于上面两个不太成熟的目标,毅然决然的投入到金融行业中来了。
说到技术选型,最开始的思路还是跟MT4上一致,有没有类似提供代码实现的平台,既可以做回测(backtest)又可以做模拟实盘自动化交易,后来发现国内没有类似的平台,继而寻找像ricequant、joinquant等在线量化平台,刚开始的时候发现这些平台确实很厉害,数据、API、回测、模拟交易应有尽有,功能大而全,但随着研究的慢慢深入,发现问题越来越多,首先,数据的准确性无法保证,数据的种类也不是很丰富,特别是基于各大平台自己研发的数据更是参差不齐;其次,API功能的实现,因为整个量化研究体系都是基于量化平台的,很多复杂一点的功能是不好去验证实现逻辑是否正确,有的时候相同的策略逻辑在不同的平台上实现,测试的结果截然不同;最后,策略的保密是每家做私募讳莫如深的,如果盈利的策略放在量化平台上去,是不是意味着策略的公开,这个会不会影响到策略后续的稳定盈利性也就是个问题。
基于上面的种种思考和分析,后面我们选择在本地,采用最原始的方式去实现,数据通过购买Wind、恒生聚源数据库和数据API接口,策略逻辑通过Python实现,也就是Python+Anaconda+Wind(聚源数据库),最后根据回测的交易记录把收益率、最大回测、夏普比率等数据通过Python实现。
采用Python+Anaconda+Wind(聚源数据库)可以完美解决量化平台上提到的三个问题,但确定是运行效率很低,像股票多因子策略,市场上有三千多只股票,如果每个周期遍历一次,时间损耗可想而知。后面基于这个又研究拓展了采用R+Wind(聚源数据库)模式,只是采用R语言实现逻辑之前,需要对数据进行处理使其可以直接被R语言调用,简单的一个例子就是收益率,首先可以把所有股票的每天的收益率(涨跌幅)按时间顺序存储在一张收益率的表中,如下:
日期 | 股票1 | 股票2 | 股票n |
---|---|---|---|
20190325 | 0.022 | -0.012 | xxx |
20190326 | 0.033 | -0.034 | xxx |
20190327 | 0.044 | -0.056 | xxx |
二、金融逻辑
量化研究(金融工程)只是一个投资的工具,背后的逻辑是基于历史的数据,严格按照投资逻辑回测,通过历史的行情去验证金融模型的盈利逻辑是否成立,最终还是以金融逻辑为出发点和立足点,金融逻辑没有盈利逻辑再完美的量化技术也是于事无补。这个要从量化的历史发展上来研究了,国内一般做量化的有三个流派:海龟派(留美、留欧)、土族派(清北复交)、无门派。海龟很好理解,接受的是国外先进的培训和投资理论,大部分都是国内优秀学生出国留学,在国外接触过华尔街和量化技术,后来回国创建私募公司,是国内最早做量化的一拨人。土族派也是出身名门,一般都是在券商或者国内大型机构做过研究分析工作,实战经验丰富,同时又不断学习和接受新技术的精英,一般会在私募中承担投资总监或者合伙人角色,很少有自己出来创业的。无门派出身五花八门,共同点就是在投资行业沉浮多年,有自己清晰的交易逻辑,能在市场上生存下去,有些甚至生存的很滋润。
通过上面对量化流派的分析,就能清楚的知道量化的金融逻辑主要来源也是三方面:国外研报(学术论文、投资机构、金融研究者等)、国内研报(券商研报)、经典金融理论、交易员干货。像AQR网站就提供了很多研究报告,国内的研报大部分都可以在Wind研报平台(RPP)上可以搜寻到,交易员干货就看不同交易员的水平了。
笔者有幸全程参与了一个实盘从零做到二个亿规模的金融模型的研发工作,承担了80%以上的研发实现到实盘管理,量化具体的流程如下:
金融工程量化研究
这门课唯一的作用是:告诉科大学生有量化金融这个东西,并教你一点名词、让你记得几个业内名人、大公司。前面那么多给10分的,估计是拿了A+。实际感受
期末做个小项目,肯定是要编程的。大部分人应该是用Python吧?毕竟现在流行这玩意。前面同学说老师会教Python相关包的使用,我明确告诉大家:我们这学期,没教任何Python相关内容。网上找教程/买书自学呗,Python不难,想糊弄的话对着教程弄个小项目也不难,不过要想弄点创新性的东西出来,还是不容易的。
btw,给分是真的良心。老师担心拖累我们的GPA,特意把成绩拖到第二学期开学第二周才出。如此一来,我就在GPA虚高之时 (GPA without 这门课) 被通知去奖学金答辩。行老师属实良心嗷,10分拿好
- 课程难度:中等
- 作业多少:很少
- 给分好坏:超好
- 收获大小:很多
- 难度:中等
- 作业:很少
- 给分:超好
- 收获:很多
由于我很早就开始就进实验室做深度学习了,期中的时候又调研到有人用强化学习预测股票数据,就打算期末做这个。我自己手上又有项目中用的代码,直接移植以前的深度强化学习代码把网络结构稍作修改(用了PPO和DDPG,修改action space 和 reward),然后直接跑数据训练结果竟然不错,数据采用从2008-12-31到2020-12-31 Dow-Jones 30的股票数据,拿前面10年作为训练集,后面做测试,展示一下DDPG算法的结果: