量化百科

逻辑回归模型市场择时策略

由crisvalentine创建,最终由crisvalentine 被浏览 42 用户

投资要点

量化择时交易证券

机器学习量化交易策略的制定,是通过从海量历史数据中,利用计算机强大的处理能力,挖掘并分析出那些能够为投资者带来收益的各种大概率可行的投资方式来实现的。通过数学模型对这些策略进行分析并加以验证,以期望让投资者获得更高更稳定的收益,或更合理地规避风险。

逻辑回归模型主要用来解决二分类问题,计算效率高,鲁棒性较优

预测股票涨跌趋势本质上是一个二分类问题。逻辑回归作为处理二分类问题常见的分类方法,既能提供类概率估计又能提高预测精度。逻辑回归可以处理大量的数据,并且受到多重共线性的影响相对较小。它不仅能预测出类别,而且可以得到近似概率预测,这对许多需利用概率辅助决策的任务很有用。

基于逻辑回归模型的择时策略具有高收益,高夏普比率,低回撤率等特点

由于逻辑回归模型可以预测股票的涨跌趋势,并且具有较高预测精度,所以可以根据模型对股票涨跌趋势的判断进行交易,通过在沪深300上的回测表明模型具有高收益,高夏普比率,低回撤率的优点。

风险提示

模型基于对历史数据统计,仅作为投资参考。

逻辑回归模型基本理论

逻辑回归是一种广义线性模型,虽然被称作回归,但在实际应用中被用作分类,作为一类经典的分类方法逻辑回归在经济预测、数据挖掘、疾病自动诊断等领域中有着广泛的应用。在回归问题中一般线性回归和逻辑回归有着紧密的联系,经常将两者进行比较,本节首先介绍一下两者的关系然后对逻辑回归的目标函数进行推导。要解释清楚两者的关系先要引入指数族(Exponential Family)与广义线性模型(Generalized Linear Models)的概念。

广义线性模型与逻辑回归

{w:100} {w:100} {w:100}逻辑回归预测函数的使用

{w:100}逻辑回归目标函数的推导

{w:100}逻辑回归模型求解

求解逻辑回归模型的方法有很多,我们这里主要介绍梯度下降法和牛顿法。优化的主要目标是找到一个方向,参数朝这个方向移动之后使得损失函数的值能够减小,这个方向往往由一阶偏导或者二阶偏导各种组合求得。逻辑回归的损失函数为:

{w:100}梯度下降法

{w:100}牛顿法

{w:100}小结

就一般的回归算法而言,它着重表了自变量和因变量两者中间的数学联系。当回归算法用于实际数据的解析时,其探究的内容也不再是单纯的线性关系。线性回归的 首要目的是对于连续样本的计算,逻辑回归虽然被称为回归但实际上是分类模型,当训练样本是定性的而不具有连续性时,则采用逻辑回归处理种类划分的情况。

股票数据采集与存储的自动化方法成本低、易于实现,存在变量多、样本量大等问题,股票的涨跌收到多种因素的影响。我们这里挑选出合适的特征变量和响应变量,希望通过逻辑回归模型对股票的涨跌趋势作出预测。模型的本质就是通过训练数据来对未来进行预测。我们从证券市场获得的观测数据大多都具有时间趋势,借助逻辑回归模型来进行股票走势预测是具有很强的现实意义的。

逻辑回归模型的择时建模

量化择时是指采用数据化的方式,判断进场或者离场时机。通过计算机技术分析相关数据,得出对证券市场未来一段时间内发展趋势的分析预判,如果判定上涨则给出买入持有的操盘建议,如果判定下跌则提示投资者卖出清仓规避风险,如果判定震荡则进行高抛低吸或低吸高抛以此来降低持仓成本。可以看出,预测股票的涨跌趋势本质上是一个二类分类问题。**逻辑回归一般用于预测二分类变量,它不仅可以提供除类别标签信息外的明确分类概率,而且可以分析所有类型数据的预测值。**我们这里来研究基于逻辑回归模型的择时建模。

模型合理性的讨论

逻辑回归是一种概率模型,以事件的发生概率为因变量,影响因素为自变量,广泛应用于医疗健康、灾害预测、风险评级等多个领域。逻辑回归作为一种广义的线性回归分析模型,与多重线性回归最大的区别是,多重线性回归要求自变量和因变量都是连续变量,而逻辑回归对此没有要求。如果因变量为分类变量时,则使用逻辑回归分析。使用逻辑回归的因变量只能是分类变量,也就是说因变量的取值只有 0 和 1,并且其对自变量也没有要求,可以是离散变量,可以是连续变量,甚至可以是虚拟变量。

预测股票的涨跌趋势本质上是一个二类分类问题。逻辑回归、费歇判别分析、支持向量机和人工神经网络是常见的分类方法。由于支持向量机不能提供类概率估计,费歇判别分析需要对输入特征作正态分布假定,人工神经网络因为噪音累积,非平稳特征和复杂维数在学习方式上有限制等原因产生不稳定的预测精度,所以采用既能提供类概率估计又能提高预测精度的逻辑回归模型作为二分类函数,选取一些重要的指标作为预测向量,再以股票持仓期间平均收益的正负作为二元响应变量 Y 建立逻辑回归模型学习并股票是否有获利的可能,以此预测结果来判断进场或者离场的时机。

模型优缺点的讨论

逻辑回归模型简单易理解,有着较高的可解释性。在模型训练完成后,可以获得相应的权重向量和偏差。对于权重向量,它的每一个维度的值,代表了这个维度的特征对于最终分类结果的贡献大小。假如这个维度是正,说明这个特征对于结果是有正向的贡献,那么它的值越大,说明这个特征对于分类为正起到的作用越大。对于偏差,它一定程度上代表了正负两个类别的判定的容易程度,假如偏差是0,那么正负类别的判定是均匀的。假如偏差大于0,说明它更容易被分为正类,反之亦然。根据逻辑回归里的权重向量在每个特征上面的大小,就能够对每个特征的重要程度有一个量化的清楚的认识,这就是为什么说逻辑回归模型有着很强的解释性的原因。

逻辑回归模型训练速度快,计算量仅仅只和特征的数目相关,在计算效率上比其他算法表现更优,并且能够以更少的样本进行训练。

逻辑回归模型对于样本分析中的噪声处理代价小,并且变量之间的精确相关关系也不会对结果产生作用。模型非常适用于处理二分类问题,它的预测结果介于0到1之间,具有概率的意义,可以扩展应用到根据概率进行个股推荐。

然而,逻辑回归模型也有一定的局限性:对自变量的多重共线性较为敏感,当两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。需要利用专家系统、决策树或者统计分析等特征选择方法来选择代表性的自变量,以减少候选变量之间的相关性。另外,由于模型预测结果呈现S型,两端概率变化小,中间概率变化大,导致很多区间的自变量的变化对目标概率的影响没有区分度,无法确定阈值。此时同样需要精炼模型输入,以得到稳定的预测结果。

策略设计思路

我们的策略的主要设计思路如下:

  1. 设置主要的模型构建方法,即准备数据进行相应的模型训练;
  2. 根据逻辑回归模型的原理来设置预测方案
  3. 对数据及参数进行选取;
  4. 通过回测来确定最优模型。

建模方法

就一般的回归算法而言,它着重表达自变量和因变量两者中间的数学联系。然而,当回归算法用于实际数据的解析时,其探究的内容也不再是单纯的线性关系。线性回归的首要目的是对于连续样本的计算。当训练样本是定性的而不具有连续性时,则采用逻辑回归用于处理种类划分的情况。

Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习算法进行了封装,包括分类、回归、聚类等,是一个简单高效的数据挖掘和数据分析工具。Sklearn中封装有逻辑回归算法,准备好相应的训练数据和测试数据后可以直接调用LogisticRegression()函数进行建模。

建模过程为:

准备完数据后,先拆分训练集和测试集。调用sklearn中的逻辑回归函数对模型进行训练,做参数估计。输入变量分别是持仓时间长度平均收益率,5日平均收益率,持仓期间夏普比率,5日成交量和持仓期平均成交量之比。输出变量为1表示有获利的可能,可以买入股票;输出变量为0表示此时机可以卖出股票。

预测方法

做预测是基于未来数据和历史数据存在类似的规律假设。基于逻辑回归模型的基本原理,可以构造预测的基本方法,即准备测试数据,利用训练好的模型,调用逻辑回归函数实现预测。逻辑回归的阈值默认为0.5(预测结果大于等于0.5则输出1,否则输出0)。这里为了更好地模拟市场状态,修改了它的阈值。预测的结果值0和1代表股票是否有获利的可能,可以根据此预测结果来判断是否进行交易。

数据及参数选择

关于预测标的的选取我们使用沪深300指数(000300)的日数据来进行测试。

逻辑回归模型的参数主要包括三部分,一个是逻辑回归函数本身的参数配置,即模型的超参数;一个是输入给模型的特征变量的选择;一个是模型的输出变量即响应变量的选择。

模型关键超参数选择:逻辑回归模型的配置参数比较多,但只有几个是比较关键的。(1)正则化参数的选择C和penalty。C参数与惩罚系数成反比,C值越小,则正则化效果越强,即对参数的惩罚程度越大。Penalty提供正则化的类型,分别是L1和L2;(2)优化算法参数选择solver。它有四种实现方式,分别是liblinear,lbfgs,newton-cg,sag。如果是L2正则化,这四种优化算法都可以选择,如果是L1正则化,则只能选择liblinear。因为L1正则化的损失函数不是连续可导的,而newton-cg,lbfgs,sag这三种优化算法都需要损失函数的一阶或者二阶连续导数,liblinear并没有这个依赖。优化算法的选择决定了对逻辑回归损失函数的优化方法;(3)迭代参数的选择max_iter和tol。max_iter指参数求解的迭代次数,默认100。迭代次数过小会影响准确率,迭代次数过高会影响收敛速度,一般会折中考虑。Tol指残差收敛条件,即迭代的连续两次之间残差小于tol就停止,默认是0.0001。在逻辑回归中这些参数是一起起作用的,最好的情况是找到一个完美的参数搭配或者组合。Sklearn中提供了一种自动搜索最优参数的方法GridSearchCV,它是基于提供的参数选项,组合出各种可能,然后结合交叉验证对所有可能组合进行筛选。但是在实际的实验过程中,较好的参数组合不一定能带来更好的分类结果,因为逻辑回归依赖于前期特征工程的贡献。即只有做出好的特征,提高数据质量,才能最大程度上提高最终效果。我们这里使用的参数配置是C=1.0、max_iter=100、penalty='l2'、solver='liblinear'、tol=0.0001。

表1 :4个特征变量及其含义
特征变量 含义
持仓收益率 买入某只股票后因看好后市,而一直持有该股叫做持仓。此时间段内股票的总收益与总成本的比值为持仓收益率
5日平均收益率 5日时间长度内股票的总收益与总成本的比值
持仓期间夏普比率 持仓时间段内的夏普比率即为持仓期间夏普比率
5日成交量和持仓期平均成交量之比 5日的成交量和持仓期内成交量的比值
资料来源:华西证券研究所

特征变量选择:股票数据指标能够在一定程度上帮助投资者判断股市的当前行情,寻找行情的转折点。这里逻辑回归的特征变量选取了4个变量,它们分别是持仓时间长度平均收益率(持仓收益率),5日平均收益率,持仓期间夏普比率,和5日成交量和持仓期平均成交量之比。表1对它们做出了相应解释。

响应变量选择:本实验逻辑回归的响应变量选取的是股票的收益趋势(1说明收益率为正,代表股票涨;0说明收益率为负,代表股票跌),涨跌的衡量标准是持仓期内平均收益率的正负,持仓期内平均收益率为正表示可以获利,反之表示不能获利,根据此收益情况来判断股票的交易形式。已知理性的投资者选择投资标的与投资组合的主要目的为:在固定所能承受的风险下,追求最大的报酬或在固定的预期报酬下,追求最低的风险。夏普率是一个衡量基金风险与收益关系的指标,最大回撤率是用来描述买入产品后可能出现的最糟糕的情况,是衡量股票投资风险的重要指标。这里我们选择夏普率和最大回撤率这两个指标来衡量交易结果。

策略具体过程及回测分析

我们这里以沪深300作为交易标的,首先获取观测值的时间序列,这是后续进行模型计算的基础。我们首先特征变量分为价格类,成交量类和综合类。对于收益率类特征变量,我们选取持仓时间长度收益率,5日平均收益率作为价格类特征变量;持仓期间夏普比率作为综合类特征变量;5日成交量和持仓期平均成交量之比作为成交量类特征变量。如图1、图2、图3、图4所示,我们以持仓时间长度为10日为例,画出数据的频率分布直方图:

{w:100}

特征变量与响应变量的相关性分析

为了说明4个特征变量与响应变量之间的相关性,在对输入特征进行了标准化的前提下,可以利用逻辑回归模型的coef_方法输出模型参数,即权重向量。对于权重向量,它的每一个维度的值,代表了这个维度的特征对于最终分类结果的贡献大小。假如这个维度是正,说明这个特征对于结果是有正向的贡献,那么它的值越大,说明这个特征对于分类为正起到的作用越大。因此,权重向量绝对值的大小可以在一定程度上说明各个输入特征对股票涨跌趋势的影响程度。我们这里以数据划分训练方式为例说明建立的逻辑回归模型的权重值如表3所示。

{w:100}由上述分析可知,这里选取的逻辑回归的特征变量与沪深300股票收益情况和涨跌趋势关系较为密切,可以利用这些变量建立逻辑回归模型实现沪深300股价涨跌情况的预测。从表2可以看出持仓收益率与收益结果预测的相关性最强,其次是5日平均收益率,它们直接反映了股票在持仓周期内的收益情况。权重值最小的是持仓期间夏普比率,说明它对股票涨跌趋势的影响程度较小。

3:2的数据划分训练模式分析

3:2的数据划分训练模式是在拆分数据集(由2005年1月到2021年7月的沪深300标的计算出的4个特征变量值)时,将60%的数据作为训练数据,剩余的40%的数据作为测试数据。这里通过对模型预测性能的调节,我们将逻辑回归阈值修改为0.45。从表3可以看出,这种训练方式可以获得较高的夏普比率,较低的最大回撤率,较高的收益率和交易胜率。

{w:100}

2.4.3.窗长窗移滚动训练模式分析

窗长窗移滚动训练模式的实现过程是第1-30天的数据用来训练,第31天的数据用来测试,然后将2-31天数据用来训练,第32天数据用来测试,以此类推。这里通过对模型预测性能的调节,我们将逻辑回归阈值修改为0.657。从表3可以看出这种训练方式的实现结果的夏普比率和最大回撤率都是在较大程度上好于基准的,且具有较高的交易胜率。

{w:100}将特征变量(持仓时间长度平均收益率,5日平均收益率,持仓期间夏普比率,和5日成交量和持仓期平均成交量之比)和响应变量(1代表股价上涨,0代表股价下跌)代入逻辑回归模型,通过3:2的数据划分模式和窗长窗移滚动模式两种方法对模型进行训练,然后利用测试阶段的预测结果判定股票的买入和卖出,实现交易回测。这里通过修改逻辑回归模型阈值对股票涨跌趋势做出预测,并根据预测结果来判定股票的交易形式。如表4所示,以窗长窗移的训练方式为例,把阈值确定为0.657可以获得较高的夏普率和较低的最大回撤率。

逻辑回归模型预测方法

{w:100}我们把逻辑回归看做是对分类概率的直接拟合,所以模型的输出即响应变量的结果值可以看作是将样本分为正例的概率,一般我们会将这个概率值与一个阈值进行比较,输出的概率值大于阈值被判断为正例,反之被判断为反例。显然,阙值的选取对模型预测精度影响很大,一般选择0.5。这里结合逻辑回归模型是被用来预测股票的涨跌,根据涨跌趋势决定股票买入卖出的时机来模拟具体的交易过程,我们把这个阈值做了调整,从而对沪深300标的进行回测。通过表4可以看出表明逻辑回归模型具有高收益,高夏普比率,低回撤率,高胜率的优点。

择时策略讨论

基于逻辑回归模型的择时策略主要是通过股票市场的涨跌情况得到这样的结论:预测趋势为0时,意味着市场的“负向”波动占主体直到变为正的为止;预测趋势为1时,意味着市场的“正向”波动占主体,直到变为负的为止。

回测的目的在于尽可能真实地还原股票交易过程,进而检测择时策略的表现。这里我们构建一个择时策略:flag变量作为一个交易信号,当模型预测股票涨跌趋势为1时,若flag为0则开仓买入,flag为0将继续持有;当模型预测股票涨跌趋势为0时,若flag为0则继续空仓,flag为1选择平多仓。回测结果证明该策略结合逻辑回归模型可以获得较高的夏普率和较低的最大回撤率,证明该策略具备一定的有效性。

总结

本篇报告我们提出了一个具有4个技术指标的逻辑回归模型预测沪深300股价的涨跌趋势,采用两种训练方式对模型进行训练和然后确定参数进行测试并且进行了交易回测。我们介绍了逻辑回归模型关键参数的选择,对于选择的4个特征变量研究了其与股票涨跌趋势的相关性。在回测的过程中通过调整逻辑回归模型的阈值,结合提出的择时策略来尽可能真实地还原股票交易过程,结果证明了逻辑回归模型具有高收益,高夏普比率,低回撤率的优点。

总结来看逻辑回归模型具有以下特点:

  1. 模型训练速度快,计算量仅仅只和特征的数目相关,在计算效率上比其他算法表现更优,并且能够以更少的样本进行训练;
  2. 模型非常适用于处理二分类问题,它的预测结果介于0到1之间,具有概率的意义;
  3. 模型可以同时具有高收益,高胜率,高夏普比率,低回撤率等优点,这是由于其可以比较真实地还原股票交易过程;
  4. 模型依赖于前期特征工程的贡献,对数据的要求较高。即只有做出好的特征,提高数据质量,才能最大程度上提高最终效果。

风险提示

模型基于对历史数据统计,仅作为投资参考。

标签

机器学习量化交易策略量化择时