APP下载

基于百度指数“债务”关键词舆情数据量化交易策略探析

2021-09-10张冉

商业2.0-市场与监管 2021年7期
关键词:机器学习债务

摘要:基于舆情数据的行为金融交易策略,可以为经济行为主体在市场波动起伏中的投资决策提供一个新的研究视角。本文运用Python对百度指数关键词搜索量的变化趋势进行数据分析,进而挖掘交易信号的触发条件及规律,并结合股票市场金融交易数据进行策略收益对比分析,探究舆情交易策略的可行性及有效性。进一步地,为使构建的交易策略具有泛化能力,本文搭建了舆情策略交易信号预测模型,希望能够通过机器学习算法总结出更高维度的规律,对股票市场涨跌做出预测,辅助人们进行合理的交易决策。

关键词:百度指数;舆情数据;量化交易;机器学习;Python

1.引言

在正式开始正文之前,我们先谈谈行为金融交易策略,所谓“行为”金融,在于其取自心理学中的行为主义,它与传统金融交易策略所不同的是,行为金融更注重投资实践,更贴近人的实际行为,它所要探究的不是长期的趋势和规律,也不需要设定过多的理论假设,而是从人的行为作为出发点来探究问题。在金融市场上,买什么、卖什么的决策都是由人做出的,与交易有关的市场数据,往往都蕴含着一些复杂的人类决策行为。因此,人类在与互联网交互过程中所产生的大量輿情数据,可以为市场参与者在市场波动起伏中的投资决策提供一个新的研究视角。例如通过谷歌趋势(Google Trends)可以获取不同搜索词的查询量以及这些查询量随时间变化的聚合信息,国外通过对谷歌趋势数据进行研究发现,其不仅能够反映股票市场当前的状态,而且还能够预测未来的某些趋势。基于此,本文旨在通过分析与金融相关的百度指数查询量的变化,来构建一个大数据舆情交易策略,并尝试运用逻辑回归(Logistic Regression)和支持向量机(Support Vector Machine)两种机器学习模型对股票指数的涨跌进行预测,也希望能够发现行为数据集在金融交易策略中运用的巨大潜力。

2.策略逻辑及数据分析

我们会发现这样一个现象,在金融市场出现剧烈波动之后,投资者往往会经历一段时间的恐慌和焦虑,在进行最终的交易执行之前,他们可能会搜索更多关于市场的信息来印证自己的想法,遵循这一逻辑,再考虑到国内的使用习惯,为了使查询量数据与国内金融市场关联程度更大,我决定使用百度指数的查询量数据来构建交易策略。

2.1研究区间及标的选取

2020年由于受新冠疫情的影响,对经济领域造成全方位破坏态势,诱发全球资本市场大幅动荡,使该段时期的数据与以往数据相比表现出显著的差异性和异常,故我将策略研究区间选定在2018-2020年一季度,该段区间主要受中美贸易战影响,国内的金融市场波动较大,通过搜索债务、危机、违约、冲突、信贷、盈利、成长、房地产、利率、贸易战等与股票市场相关的词汇发现其查询量在此期间也存在比较明显的变化,因此比较适合采用行为金融交易策略,同时为了更好的体现交易策略的有效性,我选取沪深300指数作为本次策略的交易标的,由于市场上存在沪深300股指期货这一交易品种,其遵循日内交易的双向交易制度,既可做多亦可做空,可以放大策略的收益率,同时,基于市场真实的交易品种进行探究也有其合理的一面。

2.2策略思想

通过对一系列相关词汇的分析发现,在所选取的区间段,“债务”作为百度指数的目标词汇无论在策略的稳定性以及收益率的表现上都有着更加令人满意的表现,因此本次策略将基于“债务”来展开研究。我将每5天定为一个交易信号判断周期,通过日交易数据进行策略分析。如果第5日的百度指数“债务”搜索量大于过去4日的百度指数“债务”平均搜索量,则产生买入交易信号,并在下一个交易日做多沪深300指数;如果第5日的百度指数“债务”搜索量小于过去4日的百度指数“债务”平均搜索量,则产生卖出交易信号,并在下一个交易日做空沪深300指数。每一交易均只持仓一天,并于每日日终进行平仓。可能有人会认为“债务”作为一个偏负面的词汇,第5日搜索量大于过去4日平均搜索量却产生做多交易信号与人们所理解的交易逻辑不符,这主要是因为考虑到舆情数据的变动往往滞后于股票市场,当股票市场发生波动后人们出于对风险及交易执行方面的考虑会加大对其变动原因的研判进而加大对相关信息的搜索,而当相关消息基本被市场所吸收后,由于超额调整或者过度反应造成的价格影响则可能会迎来反弹或者重新调整,正是出于上述考虑采取了上文所提到的策略逻辑。

2.3数据整理及交易信号产生

为了对上述策略进行量化分析,首先需要获取沪深300指数日线行情数据及百度指数“债务”关键词搜索频次加权指数。本文中策略结果验证所用沪深300指数日数据均通过Python中Tushare库调取获得,百度指数搜索频次加权指数则通过关键词搜索趋势图获得,如图2-3-1所示即为“债务”搜索趋势图。在数据分析及及机器学习模型预测我也将通过Python来实现。

获取沪深300指数基础数据及“债务”搜索频次数据后,还需要根据基本变量生成衍生变量,并在此基础上按照策略逻辑产生交易信号。首先通过百度指数“债务”搜索频次计算出4日的“债务”指数均线数据,然后将其均值与第5日的“债务”搜索频次进行比较,当前4日搜索频次均值小于当日“债务”搜索频次则产生“1”的交易信号,即为做多,做出这样的设定主要是便于后续策略收益率的计算,反之,则将交易信号设置为“-1”,至于策略逻辑在前文策略思想中已对此作出解释,此处不再赘述。由于4日的均线数据至少需要4个数据才可获得,故最开始4天的均值数据无法计算存在缺失,如表2-3-1所示为前10天的数据,其中前4天的交易信号直接设置为“0”。

2.4收益率计算及可视化

为了验证策略的有效性,我以买入并持有沪深300指数策略作为对照组,来判断基于百度指数的投资策略累计收益表现是否可以“跑赢”沪深300指数。

在本文中,我假设每日的交易均可以以当日的开盘价开仓,以当日的收盘价进行平仓。策略的每日收益率是通过当日的开盘价与当日的收盘价并考虑上一交易日产生的交易信号计算获得,这里特别需要强调的是由于当日取得的交易信号是一个事后数据,并不能在当天即开仓交易,故在进行策略收益率计算时需要使用上一交易日的交易信号,其计算方法为:

而买入并持有沪深300指数由于并不需要频繁交易,故其收益率计算方法为:

最终可以获得累计收益率,如表2-4-1所示为部分收益率数据计算结果。

我以日期為横坐标,累计收益率为纵坐标,绘制出了基于百度指数“债务”作为关键词的舆情交易策略累积收益率与买入并持有沪深300指数累计收益率趋势对比图,如图2-4-1所示,可以明显的看出,在所选取的研究区间内策略的表现是远远优于沪深300指数收益率的,在对收益率数据进一步的分析发现,百度指数舆情策略的最大累计收益率达到了1.6342,其最大回撤为17.36%;而沪深300指数的最大累计收益率仅为1.0740,但其最大回撤却达到了32.46%,无论从风险还是收益的角度上看,该策略都有比较明显的优势,也表明金融市场在受到舆情信息影响而产生较大波动时,基于舆情数据来构建交易策略有其积极的意义,也可以从这一角度展开更加深入的探索。

3.预测模型搭建

为了使上述策略具有泛化能力,希望在前文经验数据的基础上,能够通过机器学习算法总结出更高维度的规律,对指数涨跌做出预测,辅助人们进行合理的交易决策。

3.1模型方法

为了验证百度指数“债务”舆情数据对于预测沪深300指数涨跌的有效性,我们选取了以下两种经过检验的经典分类模型进行实验:

Logistic Regression(LR)——逻辑回归是线性回归模型为了解决分类问题的一种改进方法,是对广义线性回归分析模型的对数表示。受制于其对目标变量的线性可分性要求,LR常常被用作分类模型的基准。

Support Vector Machine(SVM)——支持向量机模型由简单到复杂分为线性可分支持向量机、线性支持向量机和非线性支持向量机,其主体思想为针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。

3.2确定特征变量和目标变量

前文策略以5日为一交易信号判断周期,通过比较前4日百度指数“债务”搜索频次均值与当日“债务”搜索频次来确定交易信号,并由此取得了不错的策略表现。鉴于此,为了使预测模型有着相似的交易信号判断周期,我将当日的搜索频次与前4日的搜索频次作为其特征变量,将交易信号作为预测模型的目标变量。为了获得预测模型的目标变量,需要将下一交易日的收益率作为当日所预测交易信号的判断依据,这一点在整个预测模型中尤为重要,我依然假设每日的交易均可以以当日的开盘价开仓,以当日的收盘价进行平仓,由此计算每日收益率,当下一交易日取得正收益时,交易信号为“1”,若下一交易日取得负收益时,则交易信号记为“-1”,如表3-2-1记录了部分特征变量及目标变量数据。

3.3模型训练及搭建

提取完特征变量后,需要将研究区间的537组完整数据拆分为训练集和测试集。顾名思义,训练集用于训练一个模型,而测试集则用于检验该模型的效果。通常会根据样本量的大小来划分训练集和测试集。当样本量大时,可以划分多一点比例的数据给训练集。由于现有样本只有537组,并不算多,所以按8:2的比例来划分训练集和测试集,即训练集数量为430组,测试集数量为107组。

划分了训练集和测试集之后,运用Python从Scikit-Learn库中分别引用线性回归模型中的Logistic Regression模型和支持向量机中的SVC分类模型,通过传入前面所获得的训练集数据进行模型的训练。之后就可以利用搭建完成的模型进行预测,此时前面划分的测试集就可以发挥作用了,即利用测试集进行预测并评估模型的预测效果。

3.4模型预测及评估

完成模型的训练及搭建后,通过把测试集中的数据导入到模型中来进行预测,最终可以获得交易信号的预测结果。表3-4-1展示了两种模型最后5组数据的预测结果。为了和实际目标交易信号进行比较分析,我对测试集预测的准确度进行了测算,可以发现LR模型在测试集上的预测准确度为57%,而SVC模型在在测试集上的预测准确度为55%。如图3-4-1,通过绘制两种模型在测试集期间的累计收益率与买入并持有沪深300指数累计收益率进行比较发现,虽然通过模型预测交易信号的准确度有待提升,搭建的模型仍存在优化改进的空间,但是从收益率的表现上看依然优于大盘的表现。

4.总结与展望

本文从行为金融的角度出发,以百度指数“债务”关键词作为研究对象展开舆情交易策略探析,通过对2018年1月至2020年3月的百度指数“债务”搜索量变化趋势进行分析,可以发现百度指数舆情数据不仅能够从某些方面反映当前的经济状况,而且还可以对经济行为主体未来的行为趋势提供预测方向。在金融市场处于震荡期间,短期反转趋势出现之前,投资者可能会有一段忧虑逐步加深的过程。当人们处于这种关注时期时,金融市场往往处在股票价格逐步走低的阶段,人们为了消除自己的疑虑会更加倾向于收集更多关于市场状态的信息,可以想象,这种行为的结果可能最终就反映在百度指数中对金融市场相关的关键词的搜索量的增加上。本文也正是基于此构建策略,设置交易操作的触发信号,并通过逻辑回归模型和支持向量机模型对交易信号做出预测,最终结果果表明:基于百度指数“债务”关键词的舆情交易策略取得了不错的收益效果,在收益的稳定性和风险的控制上都要优于同期的指数收益率。

但是本文也存在一些不足,在未来的研究中可以进一步做出改进:(1)本文选取的研究区间较短,且样本区间内受中美贸易战影响较大,样本的选取有其特殊性,可能无法代表大多数一般情况,若是采用以往样本外数据进行回测,可能无法取得文中稳定的收益,策略的适用性还有待检验。(2)由于国内百度指数相较于谷歌趋势指数发展较晚,在数据的获取、关键词的统计上仍有提升和改进的空间。(3)在对交易策略进行收益计算时没有考虑到因交易而产生的交易费用等因素,且交易假设过于强烈,未考虑到实际交易中可能无法达成交易的情况。

本文通过探析搜索量的变化和股票市场价格的变化关系,为人们提供了一个新的量化交易的思路。未来希望能够从行为金融的角度进一步对经济行为主体潜在的心理机制进行全面的探究,来解释究竟出于什么样的心理导致人们在做出交易执行前会搜索诸如债务之类的词语。当然,行为数据集(如金融交易数据)与搜索查询量数据相结合,可能为不同阶段的集体决策开辟新的视角,促使我们对社会中复杂集体行为做出更加深入的理解。

参考文献:

[1]Tobias Preis, Helen Susannah Moat & H. Eugene Stanley.Quantifying Trading Behavior in Financial Markets Using Google Trends[M].Scientific Reports volume 3,Article number: 1684 (2013) .

[2]冯玉茹.配对交易策略在我国A 股市场的研究——基于传统模型和GARCH模型[D].山东:山东大学,2019.

[3]张剑,王波.基于SVM的沪深300股指期货量化交易策略[J].数学理论与应用,2017,37(2) :112-121.

[4]王俊杰.量化交易在中国股市的应用[D].南京:南京大学,2013.

[5]王宇韬,房宇亮,肖金鑫.Python金融大数据挖掘与分析全流程详解[M].北京:机械工业出版社,2019.8.

作者简介:张冉(1991.8-),男,土家族,硕士研究生在读,对外经济贸易大学统计学院在职人员高级课程研修班学员,研究方向:量化金融,行为金融。

猜你喜欢

机器学习债务
不知情配偶是否应承担另一方因赌博等违法犯罪行为形成的所谓夫妻共同债务?
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究
债务危机离我们有多远?