基于Python工具的股票量化投资策略研究
《动量策略:利用Python构建关键交易模型》随笔

《动量策略:利用Python构建关键交易模型》阅读记录目录一、基本概念 (2)1.1 动量策略的定义 (3)1.2 动量策略的历史与发展 (4)1.3 动量策略的优势与局限性 (5)二、Python基础知识 (6)2.1 Python语言简介 (7)2.2 Python数据分析工具包 (8)2.3 Python金融数据处理库 (10)三、动量策略开发流程 (12)3.1 数据收集与预处理 (12)3.2 特征工程 (14)3.3 模型构建 (16)3.4 模型评估与优化 (16)四、基于Python的动量策略模型 (18)4.1 移动平均线策略 (19)4.2 相对强弱指数策略 (21)4.3 均值回归策略 (22)4.4 动量振荡器策略 (23)五、策略回测与实盘交易 (25)5.1 策略回测方法 (26)5.2 策略性能评估指标 (28)5.3 实盘交易执行策略 (29)5.4 风险管理与资金管理 (30)六、策略优化与实证研究 (32)6.1 策略优化方法 (33)6.2 实证研究案例分析 (34)6.3 市场环境与策略适应性 (36)6.4 进一步研究方向与应用前景 (37)七、结语 (38)7.1 本书总结 (39)7.2 展望未来发展趋势 (40)一、基本概念在《动量策略:利用Python构建关键交易模型》我们首先需要了解一些基本概念,以便更好地掌握动量策略的原理和应用。
动量策略:动量策略是一种基于技术分析的交易策略,它主要关注股票、外汇等金融市场的价格变动。
动量策略的核心思想是“强者恒强”,即价格上涨的股票(或货币)将继续上涨,而价格下跌的股票(或货币)将继续下跌。
通过对这些价格变动的分析和预测,投资者可以在市场中获得收益。
交易模型:交易模型是动量策略的具体实现方式。
通过使用历史数据、技术指标和其他市场信息,我们可以构建不同的交易模型来预测未来价格的走势。
这些模型可以帮助投资者确定买入和卖出的时机,从而实现盈利。
股票量化投资策略研究:股票多因子策略研究

股票多因子测试入门一、前言做这个研究的目的,一是为了搞清楚股票策略研究中的一些细节问题,熟悉股票研究框架;二是为了大致了解各类因子的作用。
用米筐测,那里数据完善。
现在要做的,主要就是模仿,看别人的。
先学barra。
二、Barra Multiple-Factor Modeling来自Barra Risk Model HandBook。
(一)因子(Descriptor)筛选、单位化处理、搭配然后选择所有备用的因子descriptors(类似因子?以下简称“因子”),要先检验因子的显著性;通常,因子要显著地解释截面收益。
descriptor可来自基本面数据、市场数据(价、量)、或者其他数据。
因子的选择可分为几步:(1)初步筛选;有用的因子,通常要有意义,也就是make sense intuitively;其次,好的因子还必须能够对市场上的所有股票进行很好的分类,也就是完备性,不应当存在某些股票不属于因子中某一类的情况;因子需要有理论基础;(2)同时,增加一个因子如果不能增加解释度,那这个增加没有必要。
然后要将descriptors单位化;很简单,减去均值,然后除以标准差。
然后,要选择不同因子进行搭配,risk index formulation;如何搭配,主观判断起到一定作用;但是诸如cluster analysis之类的统计方法也经常用到。
在单位化以后,我们用收益率对行业和descriptor进行回归,每次测试一个因子,我们要统计回归的显著性;通过上面的测试结果,我们就可以选择出有用的因子;因子搭配,是一个递归的过程,我们首先加入最显著的因子;此后,再加入另一个因子(剩下的因子里面的最显著的?),如果这个因子没有显著增加解释度,则不要这个因子,否则就加入这个新的因子(注:这里依然要考虑行业暴露)。
然后,行业因素也要考虑进行;或者叫,行业暴露。
通常,一个公司只属于一个行业;但是,在美国和日本,会根据该公司营收的比例来决定各个行业暴露的权重。
python 高抛低吸策略

python 高抛低吸策略Python 高抛低吸策略在投资领域中,高抛低吸是一种常用的策略,它的目的是在股票或其他投资品的价格高点出售,在价格低点回购,从而获取差价利润。
而在Python编程中,同样可以运用高抛低吸策略来进行自动化交易,实现更高效的投资。
我们需要明确高抛低吸策略的基本原理。
在股票市场中,股票的价格会受到各种因素的影响,如市场供需关系、宏观经济指标、公司业绩等。
当股票价格上涨时,投资者可以高价出售,等待价格回落后再低价买入,以获取利润。
而在Python中,我们可以编写自动化交易程序,通过设定特定的条件来实现高抛低吸策略。
我们需要获取股票市场的实时数据。
Python提供了许多库和API 可以帮助我们获取实时数据,如pandas、tushare等。
我们可以通过这些工具获取股票的实时价格、成交量等信息,并进行数据分析和处理。
我们需要制定高抛低吸的策略。
在制定策略时,我们可以考虑以下几个因素:1. 股票的涨跌趋势:通过分析股票的历史数据和技术指标,判断股票的涨跌趋势。
如果股票处于上涨趋势,我们可以选择高价出售;如果股票处于下跌趋势,我们可以选择低价买入。
2. 市场情绪:市场情绪对股票价格也有一定的影响。
当市场情绪乐观时,股票价格可能会上涨;当市场情绪悲观时,股票价格可能会下跌。
我们可以通过分析市场情绪指标,如投资者情绪指数、市场波动指数等,来判断市场情绪的变化。
3. 市场供需关系:供需关系也是影响股票价格的重要因素。
当市场供大于求时,股票价格可能下跌;当市场供不应求时,股票价格可能上涨。
我们可以通过分析成交量、资金流向等指标,来判断市场的供需关系。
在编写Python程序时,我们可以将以上因素纳入考虑,并设定相应的条件和阈值。
例如,当股票价格上涨到一定程度时,我们可以设定一个阈值,当价格超过该阈值时,自动触发卖出操作;当股票价格下跌到一定程度时,我们可以设定一个阈值,当价格低于该阈值时,自动触发买入操作。
傅里叶 股市 python

傅里叶变换在股市分析中的应用引言傅里叶变换是一种将时域信号转换为频域信号的数学工具。
它可以将一个复杂的波形分解成一系列简单的正弦函数,从而帮助我们理解信号中的周期性和频率成分。
在股市分析中,傅里叶变换可以用来研究股价波动和市场走势,为投资者提供有关市场行为的重要信息。
傅里叶变换原理傅里叶变换基于以下原理:任何周期性函数都可以表示为一系列正弦和余弦函数的线性组合。
具体而言,对于一个连续时间域上的函数f(t),它的傅里叶变换F(ω)定义如下:∞(t)e−iωt dtF(ω)=∫f−∞其中,ω是角频率,i是虚数单位。
该公式表示将时域上的函数f(t)转化为频域上的函数F(ω)。
股价波动分析股价波动通常包含了多个不同频率成分的信号。
通过对股价数据进行傅里叶变换,我们可以获得其频谱信息,进而了解股价波动中的主要周期性成分。
以下是使用Python进行股价波动分析的示例代码:import numpy as npimport pandas as pdfrom scipy.fft import fft, fftfreqimport matplotlib.pyplot as plt# 读取股价数据data = pd.read_csv('stock_price.csv')# 提取收盘价数据列close_prices = data['Close'].values# 计算傅里叶变换和频率N = len(close_prices)T = 1.0 / 252.0 # 假设交易日为252天yf = fft(close_prices)xf = fftfreq(N, T)[:N // 2]# 绘制频谱图plt.plot(xf, 2.0 / N * np.abs(yf[0:N // 2]))plt.xlabel('Frequency')plt.ylabel('Amplitude')plt.title('Stock Price Spectrum')plt.grid()plt.show()上述代码首先读取了一个包含股价数据的CSV文件,然后提取了收盘价数据列。
tushare择股策略

tushare择股策略tushare择股策略,是指通过使用tushare这一基于Python的开源金融数据接口,结合一定的投资策略,来选择具备投资潜力的股票。
下面将介绍一种基于tushare的择股策略。
首先,对于择股策略来说,最重要的是选定一些关键的指标作为评估股票的基准。
例如,我们可以选择市盈率(PE),市净率(PB)、净利润增长率(YOY\_PROFIT\_NATTR\_INC)等作为我们的评估指标。
这些指标可以从tushare的接口中获取,并进行计算和分析。
其次,我们可以通过编写Python程序来筛选符合条件的股票。
首先,我们可以先设置一些筛选条件,例如选取市盈率低于行业平均值的股票。
通过使用tushare的接口函数,可以获取市盈率数据,并计算出行业平均值。
然后,我们可以使用Python编写的程序来筛选出市盈率低于行业平均值的股票,从而为我们的投资提供更多选择。
另外,除了市盈率,我们还可以结合其他指标,如市净率、净利润增长率等,来进一步筛选股票。
例如,我们可以设定一个筛选条件,即选取市盈率低于行业平均值,并且市净率小于1的股票。
通过编写相应的筛选条件,我们可以使用tushare接口获取市净率数据,并计算出行业平均值。
然后,通过编写Python程序,我们可以筛选出同时满足市盈率和市净率条件的股票。
此外,我们还可以使用tushare获取企业的基本面数据,如营业收入、净利润增长率等,来判断企业的盈利能力。
通过计算这些数据,我们可以对企业的未来发展进行预测,并选择有较高潜力的股票进行投资。
最后,通过对tushare提供的数据进行分析和筛选,我们可以选择具备投资潜力的股票,并制定相应的投资策略。
当然,这只是一种基于tushare的择股策略,投资者还可以根据自己的需求和喜好,结合其他指标和方法,来制定更加个性化的投资策略。
python股票支撑点算法

python股票支撑点算法股票市场是一个复杂而又充满变化的环境,投资者需要不断地跟随市场的变化,及时作出决策。
其中,支撑点算法是一种常用的技术分析方法,可以帮助投资者更好地理解市场走势和预测未来趋势。
本文将介绍Python股票支撑点算法的实现方法,以及如何利用该算法进行股票投资。
一、支撑点算法的原理支撑点算法是一种技术分析方法,用于确定股票价格的支撑位和阻力位。
支撑位是指股票价格下跌到一定程度时,会遇到一定的买盘支持,价格不再下跌的位置。
阻力位则是指股票价格上涨到一定程度时,会遇到一定的卖盘阻力,价格不再上涨的位置。
支撑点算法的核心思想是通过分析历史股票价格走势,找出股票价格的支撑位和阻力位。
具体来说,支撑点算法需要计算出股票价格的移动平均线和标准差,然后根据移动平均线和标准差的数值,计算出股票价格的支撑位和阻力位。
二、Python实现支撑点算法Python是一种高级编程语言,具有简单易学、易读易写、功能强大等优点,因此非常适合用于数据分析和股票投资。
下面介绍如何利用Python实现支撑点算法。
1.数据准备首先需要准备股票价格的历史数据,可以从股票交易所或者股票网站上下载。
数据应包括以下信息:日期、开盘价、收盘价、最高价、最低价、成交量等。
2.计算移动平均线和标准差移动平均线和标准差是支撑点算法的核心指标,需要通过Python计算得出。
移动平均线可以采用简单移动平均方法或指数移动平均方法计算,而标准差可以采用股票价格的对数收益率计算。
3.计算支撑位和阻力位通过计算移动平均线和标准差,可以得到股票价格的支撑位和阻力位。
支撑位可以通过移动平均线减去标准差的两倍得到,而阻力位可以通过移动平均线加上标准差的两倍得到。
4.绘制支撑点图最后,可以通过Python绘制出股票价格的支撑点图,以便投资者更直观地了解股票价格的走势和支撑位、阻力位的位置。
支撑点图通常是以股票价格为纵轴,日期为横轴,支撑位和阻力位则用不同颜色的水平线表示。
python算法均值回归策略

一、概述Python算法在金融领域的应用日益广泛,其中均值回归策略是一种常见的量化投资策略。
本文将介绍Python中的均值回归策略,并探讨其原理、实现方法和应用场景。
二、均值回归策略概述1. 均值回归策略是一种基于统计学原理的交易策略,其核心思想是利用价格波动的均值特性进行交易决策。
2. 在均值回归策略中,我们通常会选择一个或多个资产的价格序列作为观测对象,计算其均值和标准差,并基于这些统计指标进行交易决策。
3. 均值回归策略通常分为两类:一是基于移动平均线的趋势跟踪策略,二是基于价格波动的统计套利策略。
4. 在Python中,我们可以利用Pandas、NumPy和Matplotlib等库来实现均值回归策略,并通过量化交易评台进行实盘交易。
三、均值回归策略原理1. 均值回归策略的原理基于价格序列的均值回归特性,即当价格偏离其均值过大时,往往会出现回归的趋势。
2. 我们可以利用统计学方法对价格序列的均值和标准差进行计算,从而确定价格的偏离程度,并据此进行交易决策。
3. 在移动平均线策略中,我们可以利用不同周期的均值线交叉信号来进行交易决策;在统计套利策略中,我们可以利用价格偏离均值的概率分布进行交易。
四、均值回归策略实现1. 在Python中,我们可以使用Pandas库来加载和处理价格序列数据,并利用NumPy库来进行统计计算。
2. 我们可以编写均值回归策略的交易信号生成、止损止盈规则、头寸管理等模块,并将其封装成策略函数。
3. 我们还可以利用Matplotlib库来绘制价格序列图和策略回测曲线,以便进行策略效果的可视化分析。
4. 在实现均值回归策略时,还需要考虑数据的处理和缺失值的处理、参数优化和策略参数的选择等问题。
五、均值回归策略应用场景1. 均值回归策略在股票、期货、外汇等各类金融市场上均有广泛的应用。
2. 在股票市场中,我们可以利用均值回归策略进行股票的择时买卖,实现超额收益;在商品期货市场中,我们可以利用均值回归策略进行商品价格的套利交易;在外汇市场中,我们可以利用均值回归策略进行汇率的波动交易。
python选股代码

python选股代码随着信息时代的发展,股票市场成为人们投资理财的重要途径之一。
然而,股票市场的复杂性和变化多端常常使投资者头疼不已。
为了提高股票投资的效率和精确度,许多投资者开始使用Python编写选股代码,以辅助他们进行股票选股。
本文将介绍如何使用Python编写选股代码,并提供一些常用的选股指标供读者参考。
一、选股代码的基本原理股票选股代码是通过程序筛选出符合特定条件的股票,以供投资者参考。
通常,选股代码需要根据股票的基本面指标和技术面指标来进行筛选。
基本面指标包括公司的财务数据、业绩等,而技术面指标则包括股票价格的走势、成交量等。
二、选股代码的编写为了编写选股代码,我们首先需要安装Python编程环境,并导入一些常用的数据分析库,如pandas和numpy。
然后,我们可以通过调用这些库中的函数来进行选股代码的编写。
1. 获取股票数据在编写选股代码之前,我们需要获取股票的历史数据。
可以通过调用一些股票数据接口的API来获取数据,比如tushare库提供的接口或者一些第三方数据接口。
获取到的数据一般以DataFrame的形式呈现,我们可以使用pandas库中的read_csv函数来读取数据。
2. 数据清洗获取到股票数据后,我们需要进行数据清洗,以便后续的计算和分析。
数据清洗的过程包括去除无效数据、处理缺失值、删除重复数据等。
可以使用pandas库中的dropna函数和drop_duplicates函数来完成数据清洗的工作。
3. 选股策略的定义在编写选股代码之前,我们需要定义选股的策略。
选股策略可以根据投资者的需求来进行定义,比如选取市盈率小于10的股票、选取近期涨幅超过10%的股票等。
可以使用pandas库中的一些函数,如query 函数和apply函数,来定义选股策略。
4. 选股代码的实现有了选股策略后,我们可以开始编写选股代码了。
可以使用pandas库中的一些函数,如merge函数和sort_values函数,来对股票数据进行筛选和排序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019年第07期20世纪80年代,一些投资者开始利用计算机研究金融数据,并初显成效。20世纪末,投资者把计算机技术进一步应用在金融数据分析上,进行模型设计,构建股票投资组合。这时,金融数据趋于规范化,在日渐复杂的数据分析过程中,产生了更多类型的因子和更多样化的投资策略。量化投资是借助量化金融分析方法进行资产管理,量化金融分析方法是结合金融数据、个人经验、数学模型和计算机技术的一种复杂金融建模的分析方法[1]。实现量化投资的方法多达数十种,Python、Matlab、SPSS、Eviews、Excel、SAS、R在量化界都是非常好用的工具,尤其是在数据分析方面。除Python外,其余几个工具的优势都体现在数据分析方面,而量化投资是一个系统性工程,数据分析只是其中的一部分,不是全部。根据GitHub官网统计,量化交易开源项目共145个,其中使用Python以外的技术进行开发的项目共70个,应用Python语言进行开发的多达75个。Python的开源性促使开发者开发了大量的库和模块,而这些库和模块又使很多外行人能够轻松入手,反过来又促进了Python在该领域的发展。应用Python语言爬取数据,进行数据挖掘和深度案例分析,能够使量化投资基本实现从技术分析到金融设计,实现系统性掌控。因此,采用Python驱动量化股票投资,对优化股票投资策略和规避投资风险具有十分重要的意义。1基于Python的股票量化投资交易程序1.1基于Python的股票量化投资步骤将Python要应用到量化投资交易中,其步骤如图1-1所示。图1-1股票量化交易应用模块库流程图第一阶段是数据收集。数据收集是很多券商机构在做的业务,有影响力的模块库有Tushare和Windpy,其中Windpy是Wind公司开发的一个开源接口。国内的金融终端一般是Wind、iFind和Choice终端,这些终端软件就是把企业和行业的数据收集到数据库,进行深度分析,并稍加整理成表格,然后上传到服务器中,方便客户进行相关的数据分析,一般情况下客户都需要付费来获得数据。第二阶段是数据分析。NumPy用来存储和处理多维数组和大型矩阵,搭配SciPy进行计算;Pandas解决时间序列;用Matplotlib进行2D绘图从而实现数据可视化。Wind终端和Choice终端也有相关的业务在平台上销售,而该服务的购买者通常是一些尚未具备分析能力和资格的小型机构或行外人。第三阶段是策略研究。IPython是一个Python的交互式shell,能进行变量的自动补全和缩进,支持bashshell命令,内置了一系列有用的功能和函数;Jupyter可以对数据进行清理和转换,进行数值模拟和统计建模等,是比较方便的策略研究工具;Zipline(国内公司开发的是RQalpha回测引擎)对真实交易系统的运转进行模拟,利用历史数据对投资策略进行回测检验;具体的策略便可以理解为Python代码的执行。第四阶段是实盘交易。vn.py是基于Python的开源交易平台开发框架;easytrader也是开源模块库,比较适合个人投资者。通俗来说,狭义的量化投资的应用意义到第三阶段为止,关于第四步的实盘交易还是需要经过投资者参考过量化投资的模型后作出的决定。因为工具只是投资者进行决策的辅助,人才是真实交易的决定者。需要说明的是,数据收集及案例中的模型,直接采用第三方平台供应的API数据源;数据分析因避免代码繁冗多杂,直接采用第三方平台的库和框架进行Python编程,其中BOLL指标案例的策略使用到了Sig原nal框架。利用第三方平台的意义及其最终达到的回测效果与纯自建量化交易策略项目无异,也非常适合个人投资者入手。本文选取A股市场进行研究,选取样本的原因是A股市场的数据有利于简化代码量。比如,在A股市场上进行交易,1手即为100股,而在港股市场上,不同的股票1手的股数不尽相同,有的1手是交易50股,有的1手是交易200股,这样的数据可以简化很多代码量。1.2基于Python的股票量化投资流程虽然Python实现股票量化交易分为4个阶段,但具体操作起来,为了更贴合实际,通常可以解析为8个流程,即:获取数据、数据分析挖掘、构建信号、构建策略、回测、策略分析、模拟交易和实盘交易。如图1-2所示。一是获取数据。包括获取公司新闻数据、关联数据,产业上下游、主营业务、所属行业主题等数据,基本行情数据,高频数据,股票Level-1数据,股票Level-2数据、期货Level-1数据等。二是数据分析。数据分析挖掘采用传统分析方法、新兴大数据、机器学习和数据挖掘方法[2];三是构建信号。在构建信号前进行数据处理、标准化、去极值、中性化,基础信号的研究、分组回测、衰减、行业分布,将基础信号合成复杂信号。四是构建策略。构建策略模板要兼容不同标的指标函数和参数的策略,适用于股票、基金、期货等金融资产,兼容日线、分钟线的策略,方便好用的策略函数,获取历史行情、历史持仓信息、调仓记录等,支持各种订单类型:止盈止损单、限价单、市价单。五是回测测试。回测要符合历史的真实行情,并相应的进行股票分红送转、除权除息处理,股票涨跌停处理,股票停复牌处理,市场冲击,交易滑点、手续费、期货保证金交易,大单分笔成交处理等;六是策略分析。包括策略归因、风险归因、实时监控,订单分析、成交分析、持仓分析、交易行为分析,多策略分析。七是模拟交易。模拟交易需要接入实时行情、实时获取成交回报,篮子交易、算法交易,支持撤单处理,实时监控、实时归因分析。八是实盘交易,实盘交易就是接入真实券商账户,紧紧跟随市场行情,实时进行下单,同时实时获取订单收益回报。2构建基于Python的量化股票投资策略2.1BOLL指标策略利用BOLL指标进行模拟回测,构造一个BOLL指标买卖策略,根据个人投资者的账户情况,设置账户初始资金为10万元,策略背景与规则如下:(1)如果收盘价上穿BOLL上轨,买入;如果收盘价下穿BOLL下轨,则开盘卖掉;(2)回测策略时间区间设定为2018年全年,股票池为“沪深300”,参考指标为“沪深300”;(3)资金账户初始资金10万,类型为股票
账户;(4)每次每只股票买20000元左右,出现重复信号时不重复买入;(5)当买入信号的股票数量比资金多时,随机挑选买入,每个交易日全仓操作。(6)策略需导入第三方库Pandas,框架为Signal。利用Python语言编辑策略代码并运行回测,得到BOLL指标买卖策略收益回测结果,如图2-1所示。
注:粗线———沪深300指数2018年基准年化收益率线细线———基于沪深300指数的BOLL指标策略的年化收益率线图2-1BOLL指标策略回测策略回测结果显示,2018年全年,沪深300指数涨幅为-25.9%,依据沪深300制定的BOLL策略收益率仅为-6.9%,BOLL指标买卖策略的模拟收益曲线较平缓,波动幅度明显小于沪深300的收益率波动幅度,收
基金项目:2017年广东省本科高校教学质量与教学改革工程建设项目“省级特色专业建设项目:经济学特色专业建设”的部分研究成果,项目编号:294。作者简介:孙丽颖(1980-),女,辽宁营口人,哈尔滨工业大学会计学硕士研究生,中山大学南方学院讲师,研究方向:公司理财。收稿日期:2019年3月19日。
基于Python工具的股票量化投资策略研究孙丽颖(中山大学南方学院,广东广州510970)摘要:在大数据快速发展的背景下,将程序算法与股票投资相结合是创新股票投资方式并实现投资收益率提升的关键。文章在量化投资理念的基础上,运用Python语言对A股市场的一些历史指数和个股数据进行梳理分析,针对Python量化工具对投资项目进行初始性设计,制定量化股票投资策略,并对策略进行收益回测,进而提出量化股票投资的保障措施。关键词:Python量化工具;投资策略;BOLL指标;格雷厄姆成长股
图1-2股票量化交易流程图
市场·贸易
492019年第07期学术专业人文茶趣
益率相对稳定,在2018的熊市环境下,规避降低风险的效果显著。可见,构建最简单的量化交易策略仍然是可行的,大环境熊市的影响,暂时不对策略的好坏进行评价。这次进行对策略的可行性进行检测,策略收益率已远胜于沪深300指数。2.2格雷厄姆成长股内在价值投资法以格雷厄姆的成长股内在价值投资法[3]来制定策略与BOLL指标策略不同,价值投资需要长时间的验证,因此用最近3年为宜。“价值投资之父”格雷厄姆在《聪明的投资者》中给出了一个对成长股内在价值进行估值的简单公式:价值=当期(正常)利润伊(8.5+两倍的预期年增长率)策略将以这条公式作为交易规则,策略的背景与规则如下:(1)价值=当期(正常)利润伊(8.5+两倍的预期年增长率);(2)如果股票价格低于价值,则买入;如果股票价格高于价值,则卖出;(3)回测策略时间选取2016年1月1日至2019年1月1日,股票池为“沪深300”,参考指标为“沪深300”;(4)资金账户初始资金10万,类型为股票账户;(5)仓位以每支个股的持仓权重为标准买入,每支个股持仓最高不超过10%,出现重复信号时不重复买入;(6)当买入信号的股票数量比资金多时,随机挑选买入,每个月第1个交易日全仓进行调仓操作;(7)用了因子库中的“EGRO”因子,5年收益增长率来代表预期年增长率。筛选出低估值,即股票市值小于其格雷厄姆估值的股票。利用Python语言编辑策略代码并运行回测,得到格雷厄姆成长股内在价值投资法策略收益回测结果,如图2-2所示。注:粗线———沪深300指数2016—2018年基准年化收益率线细线———基于沪深300指数的格雷厄姆成长股内在价值投资法策略的年化收益率线图2-2格雷厄姆成长股内在价值投资法策略回测策略回测结果显示,沪深300指数三年间的基准年化收益率为-7.1%,而策略线的年化收益率是4.0%,格雷厄姆成长股价值投资法策略的模拟收益曲线较平缓,波动幅度明显小于沪深300的收益率波动幅度,收益率相对稳定,降低了部分投资风险,利用格雷厄姆的投资法制定的策略也是可行的。综上,两个策略案例都证明了Python驱动的量化股票投资方案在提高收益率和规避风险方面的有效性,同时Python量化投资还可以通过回测指标分析进行个股筛选,对于个人投资者来说,是行之有效的投资工具。如果投资者能够深入研究,调整参数指标,将更会适应中国市场,获得更理想的收益。2.3Python驱动的数据库从表面上看,一串代码实现了提高股票组合的收益率和模拟收益曲线,其实事情远不止这么简单,Python真正驱动的是背后庞大的数据源,这也是利用第三方平台对策略回测的原因。搭建数据库需要一整套庞大的设备,其中不乏价格高昂的服务器和硬盘,耗资巨大,普通投资者不会在这些设备方面投入资金。在量化投资领域中常用的一个词“因子”,因子就是经过人为的采集、编译并存储到数据库中的一个数据集合。不同的公司或数据库搭建者都会根据自己的偏好对因子进行命名,存储在数据库中,等到策略运行的时候再调用出来。随着量化投资的发展,股票市场中很多数据都是可以被量化的,尤其是报表指标和技术指标,这些指标被制作成两种因子:价值派指标因子和技术派指标因子。价值派指标因子系列的分支有:股指市值型因子,偿债能力型因子,收益型因子,盈利能力型因子,运营能力型因子等。技术派指标因子系列下也派生出很多的分支,比如:成交量型因子,趋势型因子,能量型因子,超买超卖型因子,均线型因子等[4]。另外,很多当初被认为不能进行量化的数据也被实现了量化,比如分析师预期型因子,还有股民热度型因子。其中股民热度型因子在其他地区的股票市场上是发展不了的,比如美股市场上的投资者就不会像A股投资者一样,在论坛上每天都讨论的热火朝天。A股投资者能对市场产生较大的影响,同时又很喜欢到股吧论坛上讨论自己看空看多,因此这些数据在A股市场上独树一帜地发展了起来,数据量足够的庞大,不少机构便把它做成了股民热度型因子。2.4Python对量化股票投资的影响量化投资界的重量级人物数学家詹姆斯·西蒙斯(JamesSimons),创造了“用公式打败市场”的传奇。由他在1989年创办的基金成立至今已有30年时间,该基金年均35%的净回报率,远远超过了年均回报率20%左右的股神巴菲特。如果每位个人投资者都做到他的一半,也就是利用量化投资创造年均17.5%的净回报率,都很了不起了。很多传统投资者认为美国与中国的投资环境和制度不同,量化投资不一定能为投资者带来可观的收益。其实学习了量化投资的知识便会发现,只需要在Python编程的时候引入不同的因子便可以了。的确,在美股中的量化策略不适用于A股,但参数是可调的,在A股市场中制作量化策略,可以引入股民热度型因子,再设置适当的权重。如果半数以上的个人投资者能够熟练运用Python进行量化股票组合投资,不仅能避过2018年跌跌不休的熊市,做得好的更能收获可观的收益。3Python驱动的量化股票投资的保障措施Python驱动的股票量化投资模型中的各指标参数的选取是关键,需