学术 专业 人文 茶趣
益率相对稳定,在 2018 的熊市环境下,规避降低风险的效果显著。可见,
构建最简单的量化交易策略仍然是可行的,大环境熊市的影响,暂时不
对策略的好坏进行评价。这次进行对策略的可行性进行检测,策略收益
率已远胜于沪深 3ꢀꢀ 指数。
度型因子,再设置适当的权重。如果半数以上的个人投资者能够熟练运
用 Python 进行量化股票组合投资,不仅能避过 2ꢀꢁ8 年跌跌不休的熊市,
做得好的更能收获可观的收益。
3
Python 驱动的量化股票投资的保障措施
Python 驱动的股票量化投资模型中的各指标参数的选取是关键,需
2.2 格雷厄姆成长股内在价值投资法
[3]
以格雷厄姆的成长股内在价值投资法 来制定策略与 BOLL 指标策
要庞大的数据资料,对参数反复修正,才会获得更接近实际情况的参数。
根据各种参数创建的子模型只有通过实践数据和时间的检验才是成功
的。如何使模型具有普遍的可理解性,简化投资者操作使用,还需要反复
验证、修正、提炼、升华与定型。
略不同,价值投资需要长时间的验证,因此用最近 3 年为宜。
“价值投资之父”格雷厄姆在《聪明的投资者》中给出了一个对成长
股内在价值进行估值的简单公式:
价值=当期(正常)利润×(8.5+两倍的预期年增长率)
3.1 加强数据库的规范化管理
策略将以这条公式作为交易规则,策略的背景与规则如下:
(1)价值=当期(正常)利润×(8.5 + 两倍的预期年增长率);(2)如果
股票价格低于价值,则买入;如果股票价格高于价值,则卖出;(3)回测策
略时间选取 2ꢀ16 年 1 月 1 日至 2ꢀ19 年 1 月 1 日,股票池为“沪深 3ꢀꢀ”,
参考指标为“沪深 3ꢀꢀ”;(4)资金账户初始资金 ꢁ0 万,类型为股票账户;
(5)仓位以每支个股的持仓权重为标准买入,每支个股持仓最高不超过
ꢁ0%,出现重复信号时不重复买入;(6)当买入信号的股票数量比资金多
时,随机挑选买入,每个月第 1 个交易日全仓进行调仓操作;(7)用了因
子库中的“EGRO”因子,5 年收益增长率来代表预期年增长率。筛选出低
估值,即股票市值小于其格雷厄姆估值的股票。
大部分投资者运用量化投资自制策略时,都是在第三方平台上创建
量化交易策略的,Python 编写的策略代码也存放在第三方平台处。不论
是某个商业平台还是某个开源平台,这都会使投资者的数据文件面临泄
露威胁等一系列数据信息安全性问题。然而,在量化投资的后期,随着资
金池不断发展壮大,安全性就越来越受到重视,特别是对相关的策略代
码进行保护。投资者若想规避这种数据的安全性风险,需要自掏腰包创
建数据库,置办机房、服务器等,这样就会大幅度提高投资成本,需要更
高的技术水平和管理水平。如果是发展到这个阶段,可以对数据及其安
全性进行规范化管理了。目前加密算法也有很多,最著名的是 Hash 算
法。Hash 算法普遍应用于世界各地,同时安全性能相当高,各大互联网公
司、银行、区块链等都在用。在 Python 中运用更是简单易上手,直接导入
Hashlib 模块即可,在设置访问数据库时添加 Hash 函数即可。
3.2 考虑策略执行结果的风险
利用 Python 语言编辑策略代码并运行回测,得到格雷厄姆成长股内
在价值投资法策略收益回测结果,如图 2-2 所示。
取得的上市公司财务数据具有滞后性,对数据的修正容易造成很难
察觉的微小错误,终值又很难确定,只能使用初始值进行修正分析,这种
基于初始财务数据的调整修正会对量化投资策略产生影响,进而影响选
股结果。另外,量化投资策略的第四个阶段是实盘交易,实盘交易时由于
市场上不乏“灰犀牛”和“黑天鹅”,因此,要根据不同的市场外在因素,不
[5]
断地调整策略参数,维护成本比较高 。
3.3 剔除量化投资的主观色彩
做量化交易的投资者必需具备很强的编程能力和数学基础,在开发
策略时需要分析大量数据,不断进行回测,从而优化模型。就需要投资者
具备经济学知识和思维,同时对金融市场有着独特的见解作为理论支
撑,而这些见解往往都是带有主观色彩的。因此,投资者在做出决策规则
前,内心都有一个既定的主观判断脚本,在做决策时往往希望找到相关
的数据支持。所以在制作量化投资决策时,应尽量剔除投资者主观因素
的影响。
注:粗线——沪深 300 指数 2016—2018 年基准年化收益率线
细线
略的年化收益率线
图 2-2 格雷厄姆成长股内在价值投资法策略回测
——基于沪深 300 指数的格雷厄姆成长股内在价值投资法策
策略回测结果显示,沪深 3ꢀꢀ 指数三年间的基准年化收益率为-
7.ꢁ%,而策略线的年化收益率是 4.ꢀ%,格雷厄姆成长股价值投资法策略
的模拟收益曲线较平缓,波动幅度明显小于沪深 3ꢀꢀ 的收益率波动幅
度,收益率相对稳定,降低了部分投资风险,利用格雷厄姆的投资法制定
的策略也是可行的。
3.4 不断优化量化投资的算法
Python 编写的代码具有“简单易上手”的特点。然而,简洁性暴露了
缺点,即不严谨。不严谨的语法在应用到现实生活中的时候,往往会出现
一点点小问题。没有人知道会出现什么问题,也许就是忽然某一天出现
的这一点儿问题亏损了投资人的部分资金。算法上需要优化的便是速
度,因为 Python 并不是底层技术,它是上层的解析性语言,执行起来比较
慢。如果某只小市值股票的庄家 A 发现有个投资者 B 在利用量化投资做
自家的股票,这个庄家 A 便利用他的资金优势和硬件优势,开启机械式
挂单,直接断崖式拉低股价,以极小的速度差抢在 B 的前面下了卖单。由
于 B 的量化程序的速度不够快,所以股票未卖出,而价格又达到了策略
设置好的割肉价格。于是,B 的量化程序便无奈地挂出更低的卖价挂单,
此时庄家便可以挂买单收获筹码了。解决这两个问题有效的途径就是算
法上的优化,因此,投资者需要终身学习,学习一些相关的编程语言,比
如汇编语言:C 语言。利用 Python 进行量化程序的大部分策略定制工作,
同时利用 C 语言进行执行决策,这样,双剑合璧,更能高效快速地运行,
以弥补 Python 在算法上的缺点。
综上,两个策略案例都证明了 Python 驱动的量化股票投资方案在提
高收益率和规避风险方面的有效性,同时 Python 量化投资还可以通过回
测指标分析进行个股筛选,对于个人投资者来说,是行之有效的投资工
具。如果投资者能够深入研究,调整参数指标,将更会适应中国市场,获
得更理想的收益。
2.3 Python 驱动的数据库
从表面上看,一串代码实现了提高股票组合的收益率和模拟收益曲
线,其实事情远不止这么简单,Python 真正驱动的是背后庞大的数据源,
这也是利用第三方平台对策略回测的原因。搭建数据库需要一整套庞大
的设备,其中不乏价格高昂的服务器和硬盘,耗资巨大,普通投资者不会
在这些设备方面投入资金。在量化投资领域中常用的一个词“因子”,因
子就是经过人为的采集、编译并存储到数据库中的一个数据集合。不同
的公司或数据库搭建者都会根据自己的偏好对因子进行命名,存储在数
据库中,等到策略运行的时候再调用出来。随着量化投资的发展,股票市
场中很多数据都是可以被量化的,尤其是报表指标和技术指标,这些指
标被制作成两种因子:价值派指标因子和技术派指标因子。价值派指标
因子系列的分支有:股指市值型因子,偿债能力型因子,收益型因子,盈
利能力型因子,运营能力型因子等。技术派指标因子系列下也派生出很
多的分支,比如:成交量型因子,趋势型因子,能量型因子,超买超卖型因
4
小结
股票投资是有风险的,量化并不能降低风险,但却能通过数学的方
式体现出来。通过研究,首先,阐明了目前股市环境中运用量化投资的意
义;其次,论述了基于 Python 的股票量化投资交易的程序;然后,构建了
基于 Python 的量化股票投资策略,其中,设计的两个策略分别是根据经
典的 BOLL 指标和格雷厄姆的成长股选股法进行设计的,虽然进行了策
略回测,但因为未来的市场环境具有不确定性,得出的结论仍需要通过
后续的实盘操作来检验;最后,根据实际情况和未来可能发生的操作风
险提出了运用 Python 量化股票投资的保障措施,包括:加强数据库的规
范化管理、考虑策略执行结果的风险、剔除量化投资的主观色彩和不断优
化量化投资的算法。充分证明了个人投资者运用 Python 语言进行量化股
票组合投资是可行的。尤其为在熊市下亏损严重的个人投资者,提供了更
科学的投资方式及应用工具,对改变 A 股的投资环境也是十分有益的。
参考文献
[4]
子,均线型因子等 。另外,很多当初被认为不能进行量化的数据也被实
现了量化,比如分析师预期型因子,还有股民热度型因子。其中股民热度
型因子在其他地区的股票市场上是发展不了的,比如美股市场上的投资
者就不会像 A 股投资者一样,在论坛上每天都讨论的热火朝天。A 股投
资者能对市场产生较大的影响,同时又很喜欢到股吧论坛上讨论自己看
空看多,因此这些数据在 A 股市场上独树一帜地发展了起来,数据量足
够的庞大,不少机构便把它做成了股民热度型因子。
2.4 Python 对量化股票投资的影响
[1] 方浩文. 量化投资发展趋势及其对中国的启示 [J]. 管理现代化,
2012(5):3-5.
量化投资界的重量级人物数学家詹姆斯·西蒙斯(James Simons),创
造了“用公式打败市场”的传奇。由他在 ꢁ989 年创办的基金成立至今已
有 3ꢀ 年时间,该基金年均 35%的净回报率,远远超过了年均回报率 2ꢀ%
左右的股神巴菲特。如果每位个人投资者都做到他的一半,也就是利用
量化投资创造年均 ꢁ7.5%的净回报率,都很了不起了。很多传统投资者认
为美国与中国的投资环境和制度不同,量化投资不一定能为投资者带来
可观的收益。其实学习了量化投资的知识便会发现,只需要在 Python 编
程的时候引入不同的因子便可以了。的确,在美股中的量化策略不适用
于 A 股,但参数是可调的,在 A 股市场中制作量化策略,可以引入股民热
[2] Daniel T. Larose, Chantal D. Larose(著),王念滨,宋敏,裴大茗(译).
数据挖掘与预测分析[M].清华大学出版社,2017.
[3] 陈瑶瑜.本杰明·格雷厄姆成长股价值投资策略实证分析[J].时代
金融,2016(12): 323-324,326.
[4] 黄凯伦. 基于 AdaBoost 算法的动态多因子选股模型 [D]. 对外经
济贸易大学,2017.
[5] 骆晓强,梁权琦,杨晓光. 当前中国经济的“灰犀牛”和“黑天鹅”[J].
中国科学院院刊,2017(12): 1356-1370.
50
2019 年第 07 期
全部评论(0)