搜索数据泄露天机?——舆情指数与期货行情关联性分析思路

论坛 期权论坛 期权     
真格量化   2019-8-30 08:31   5005   0


一、概述


随着国内期货市场规模的不断扩大,价格分析作为经济决策和风险管理的重要手段,得到市场管理者与市场参与者的广泛关注。传统的分析方法将历史行情与现时行情进行拟合来判断未来行情的发展趋势。这种方法认为现时行情的发展趋势将与历史上类似行情的发展过程相吻合。然而,行情的发展并非历史的简单重复,对期货市场而言,不同时期的市场环境各不相同,判断行情趋势需要考虑多种环境因素对行情发展的影响。增强多种市场环境因素的综合分析能力,能够帮助投资者快速应对市场的动向,也帮助市场管理者及时掌握市场环境变化情况,提高市场监管能力。







  近年,随着网络的快速发展,互联网逐渐取代传统媒体,成为期货投资者获取信息、感知市场环境变化的主要途径。搜索引擎作为查询信息的主要手段,被人们广泛用于检索各自关注的关键信息。基于搜索引擎数据制定的舆情指数,能够很好的反映一定时期人们对不同概念的关注程度。例如,2004年世界最大的搜索引擎公司,谷歌公司推出谷歌趋势(Google Trends)产品,其提供了对某一关键词在特定时间段内通过Google搜索引擎被查询的频率。随后百度、搜狗、360等国内搜索引擎公司也相继推出了功能相类似的搜索指数产品。由于投资者对特定市场的舆情关注程度往往与市场行情有关,许多研究者开始关注舆情指数对预测市场行情趋势所发挥的作用。T. Preis等研究发现利用谷歌趋势可以对金融市场的交易行为进行量化。Hamid等利用谷歌趋势预测股票行情的走势。洪涛利用百度指数对住房价格的预期与实际价格的波动进行了分析。孟祥兰等通过百度指数分析投资者的情绪对市场行情走势的影响。





  然而,当前的舆情指数产品主要依赖特定关键字查询相关指数,对期货市场来说,单一品种涉及的上下游商品种类繁多,供需关系复杂,只依靠简单的关键字检索,很难获得与市场行情相关度高的舆情指数。为此,如何获取舆情指数所需的关键字组合,以及对多个舆情指数的进行整合,成为亟待解决的问题。


  为解决上述问题,大商所针对期货市场提出了基于舆情指数的行情趋势分析模型。模型采用基于TF-IDF的舆情关键字提取方法,根据不同舆情指数与行情的关联关系,定义舆情指数特征,并采用特定机器学习算法对相关品种行情趋势与舆情进行关联分析。实验中,本文以百度指数为舆情指数来源,以国内大豆期货品种为例,对2018年1月至6月大连商品交易所黄大豆1号主力合约进行分析。分析结果表明,本文模型得到的次日行情趋势分析结果与实际行情具有较高吻合度。




(一)舆情关键词提取



  本文采用了TF-IDF关键字提取方法,对大量互联网文本数据进行分析,提取与特定品种关联性较高的关键字,并以此关键字为基础,采集舆情指数信息。实验中,本文使用了新浪财经、中国证券网、全景网、国际金融报、和讯网、中国粮油网、期货日报、金融界、新华网等70家金融期货相关网站采集的期货类新闻为处理对象,提取黄大豆1号合约相关的关键字信息。TF-IDF计算方法如下:






  TF表示关键词w在文档Di中出现的频率。其中,Ni为关键词w的在文档Di出现次数,|Di|为文档Di中所有词的数量。

  逆文档频率(Inverse Document Frequency,IDF):










  IDF反映关键词的在不同文本中的分布程度,如果一个词在越多的文本中出现,则IDF值越低;反之,则IDF值越高。其中,ND为文档总数,I(w,Di)表示文档Di是否包含关键词,若包含则为1,若不包含则为0。
  则,关键词w的TF-IDF值为:












  在实际使用中,本文首先根据期货品种名称对文本集中的品种相关文章进行筛选,在经过筛选的文章中,计算各词语的TF-IDF值,选取TF-IDF值最高的50个词作为舆情指数的查询关键词。


(二)舆情指数特征


  品种的不同舆情关键字获得的舆情指数与行情趋势的关系各不相同。例如,对黄大豆1号而言,直观地看,关键词“大豆”和“豆粕”与豆一行情的关联度显然高于“农业”和“经济”等关键词。但是,大多数关键词与行情趋势的关系很难人为界定,因此,需要定义一种方法来确定每个关键词在行情分析中发挥的作用。

  本文采用皮尔森相关系数判断关单个键字与行情的一致性。皮尔森相关系数是用来反映两个变量线性相关程度的统计量。具体计算如下:









  其中,皮尔森相关系数r的值为样本点集合X与Y的协方差和标准差的商。考虑到各关键词舆情指数波动与行情变化可能存在先后关系,本文采用滑动窗口方式考察关键字舆情指数与行情变化的先后关系。具体方法是,本文将关键词w的T日舆情指数与T+NTw日行情分别计算皮尔森相关系数,得到关键词w舆情指数与延迟〖NT〗_w天的行情相关度,其中,NTw为大于等于1的值。实验中,本文选取NTw∈[1,10],并对每个关键词取得相关性最高的延迟天数的舆情指数作为下一步机器学习算法的特征值。




(三)机器学习模型



  本文最终目标是根据相关舆情指数,分析品种未来价格趋势的变化。根据单个关键字所取得的舆情指数虽然能够在短期内与行情保持较高相关性,然而因为影响品种价格的因素并非唯一,单个关键字的舆情指数波动很难与行情保持长期一致。为此,本文提出采用机器学习方法融合多个关键词的舆情指数用于分析行情变化趋势。

  在上一节中,本文介绍了计算关键词的相关系数和选取舆情指数的时间偏移量的方法。在使用机器学习算法时,本文选取K个与品种行情相关度最高的关键词舆情指数组成每日舆情指数特征值向量,本文的优化目标是通过机器学习算法确定不同特征值权重,最终使得价格分析误差最小:












  其中,m为样本个数,MSE为分析值与实际值的均方误差,最小化MSE可获得各个舆情指数的权重值。

  实验中,本文使用经典的机器学习算法对模型参数进行求解,其中包括线性回归NT、SVR、Boosting和随机森林算法。


三、实证分析



(一)数据来源


(1) 搜索引擎数据

目前百度搜索引擎在全网、PC端及移动端均占据70%以上的市场份额,因此本文利用百度公司推出的百度指数产品作为分析研究关键词搜索量的数据源。



  百度指数提供3种维度的搜索量数据,分别是全网搜索量、PC端搜索量、移动端搜索量。不同关键词在PC端和移动端搜索量比例不尽相同,本文只针对全网搜索量进行分析研究。


读者未来也可以自己尝试其他搜索引擎、社交媒体的数据。

(2) 行情数据

  国内大豆期货于2003年在大连商品交易所(简称DCE)挂牌上市,分为黄大豆1号和黄大豆2号(品种代号a、b),其中a品种代表非转基因大豆、b品种代表转基因大豆。我国主要生产非转基因大豆,而转基因大豆更多依赖进口。本文主要分析研究国内短期大豆期货价格的趋势,因此选择黄大豆1号作为本文的研究对象,时间区间选择了2018.01.19-2018.06.21的100个交易日黄大豆1号主力合约结算价数据。

(3) 数据预处理


  百度指数统计的时间区间是所有自然日,而行情数据的时间区间是所有交易日。在将百度指数数据与行情数据导入模型前需要将自然日与交易日进行时间对齐。自然日是交易日与节假日的合集,如果直接剔除自然日中的节假日部分会将节假日期间网络搜索量对行情的影响一并剔除,这样做显然降低了模型的整体准确度。通过观察百度指数发现,大部分关键词对应的百度指数周末搜索量小于交易日搜索量,而在一些特殊的周末,搜索量的剧增也会体现在下一交易日的行情中,因此本文的时间对齐方式使用周末及节假日搜索量与前一交易日搜索量进行比较并取较大者作为前一交易日的搜索量数据。

  不同关键词对应的百度指数搜索量可能有数量级之间的差别,一些热门关键词的日均搜索量可以达到10000+,而一些行业内关键词的日均搜索量只有100+。这种数量级之间差别会影响模型的稳定性与准确性。为了提高模型的稳定性,在数据进入模型前需要对搜索量数据与行情数据进行归一化处理,即对原始数据进行线性变换,即对于任意x∈X,经归一化变换得:




实验中,本文分别对各个关键字的百度舆情指数及交易时间区间内的行情数据进行归一化变换。




(二)关键词提取


  从70家金融期货相关网站采集了96273篇新闻,其中大豆相关新闻1248篇。对这些新闻文章进行分词处理,并利用TF-IDF方式提取出大豆相关的关键词。


TF-IDF结合筛选后前40关键词


结合宏观因素及百度指数所提供的关键词的日内平均搜索量(日搜索量>500),最终选择了22个关键词:大豆、黄大豆、大豆期货、大豆价格、期权、转基因、饲料、豆油、豆粕、蛋白质、玉米、玉米价格、水稻、高粱、棕榈油、中粮、农村、农民、美国、巴西、阿根廷、关税。

  通过滑动窗口计算关键词与行情间的皮尔森相关系数,下表中列出了关键词、延迟天数、相关系数最大绝对值及相关性方向。

(四)行情分析效果


本文采用五折交叉验证法,对各机器学习模型进行训练,训练使用的数据为2018.01.19至2018.06.21期间百度指数与黄大豆1号行情,对不同组的训练数据分别进行线性回归、SVR、Boosting、随机森林进行模型训练,并统计了测试集的平均MSE。如下表所示,实验结果表明,除SVR算法之外,其它算法结果随舆情指数特征向量的变化不大,其中线性回归和Boosting算法MSE较小;SVR算法结果随舆情指数特征长度不断缩小,说明当特征向量较大时,SVR算法分辨有用特征的能力较弱。





本文同时检验了模型利用舆情指数判断行情趋势的能力。本文使用T日的舆情指数数据对T+1日的行情结算价相比T日结算价涨跌进行判断,如果T+1日结算价大于T日结算价,则为上涨,否则为下跌。实验结果如图2所示,采用Boosting算法对行情分析判断的准确率最高,最高判断准确率达88.6%。值得注意的是,随着使用的舆情指数个数的增长,Boosting算法的准确率不断提高,然而当舆情指数个数增长超过15时,算法的准确率达到稳定。原因之一是尽管本文使用了20%的测试数据,但是因为样本数量有限,算法每分析正确一个样本要求准确率提升较为明显;更多的是由于Boosting算法整合多个弱分类器,能够较好的分辨舆情指数中的有用特征与干扰,当增加的舆情指数相关性与品种相关性较低时,对模型的影响十分有限。



四、研究结论


  舆情信息作为期货市场投资者决策的重要依据,能够对其投资行为产生直接的影响。网络舆情指数作为搜索引擎公司基于大数据统计发布的量化指标,反映了一段时期内互联网用户对特定概念的关注程度。理解舆情指数与期货行情之间的联系,有助于投资机构设计策略,以及监管部门针对重大舆情事件及时采取措施,防范系统性风险的发生。

  本文针对期货市场提出了基于舆情指数的价格分析模型。首先,采用基于TF-IDF的舆情关键字提取方法提取期货类新闻关键词;其次,以提取的关键词为基础,借助搜索引擎提供的舆情指数构建针对单一期货品种的舆情指数特征;最后,本文采用多种经典机器学习模型结合舆情指数特征对期货行情趋势进行分析。实验结果表明,使用舆情指数在研究样本时间段内对大豆1号T+1交易日的结算价进行分析判断,分析吻合度可以达到80%以上。读者可以尝试使用类似方法,在不同的品种标的,利用不同的搜索引擎、社交媒体数据在不同的时间段试试效果如何。


— — — — — — E N D — — — — — —



真格量化可访问:
https://quant.pobo.net.cn


真格量化微信公众号,长按关注:

遇到了技术问题?欢迎加入真格量化Python技术交流QQ群  726895887






往期文章:
Numpy处理tick级别数据技巧
真正赚钱的期权策略曲线是这样的
多品种历史波动率计算
如何实现全市场自动盯盘
AI是怎样看懂研报的
真格量化策略debug秘籍
真格量化对接实盘交易
常见高频交易策略简介

如何用撤单函数改进套利成交

Deque提高处理队列效率

策略编程选Python还是C++

如何用Python继承机制节约代码量

十大机器学习算法
如何调用策略附件数据

如何使用智能单

如何扫描全市场跨月价差

如何筛选策略最适合的品种

活用订单类型规避频繁撤单风险

真格量化回测撮合机制简介

如何调用外部数据

如何处理回测与实盘差别

如何利用趋势必然终结获利

常见量化策略介绍

期权交易“七宗罪”

波动率交易介绍

推高波动率的因素

波动率的预测之道

趋势交易面临挑战
如何构建知识图谱
机器学习就是现代统计学

AI技术在金融行业的应用

如何避免模型过拟合

低延迟交易介绍

架构设计中的编程范式

交易所视角下的套利指令撮合

距离概念与特征识别

气象风险与天气衍生品

设计量化策略的七个“大坑”

云计算在金融行业的应用

机器学习模型评估方法
真格量化制作期权HV-IV价差
另类数据介绍

TensorFlow中的Tensor是什么?

机器学习的经验之谈

用yfinance调用雅虎财经数据

容器技术如何改进交易系统
Python调用C++
如何选择数据库代理
统计套利揭秘

[h1]一个Call搅动市场?让我们温习一下波动率策略[/h1][h1]如何用真格量化设计持仓排名跟踪策略[/h1][h1]还不理解真格量化API设计?我们不妨参考一下CTP平台[/h1][h1]理解同步、异步、阻塞与非阻塞[/h1][h1]隐波相关系数和偏度——高维风险的守望者[/h1]Delta中性还不够?——看看如何设计Gamma中性期权策略

[h1]Python的多线程和多进程——从一个爬虫任务谈起[/h1]线程与进程的区别
皮尔逊相关系数与历史K线匹配

Python2和Python3的兼容写法
Python代码优化技巧

理解Python的上下文管理器

如何写出更好的Python代码?这是Python软件基金会的建议
评估程序化模型时我们容易忽视的指标

看看如何定位Python程序性能瓶颈

什么是Python的GIL

投资研究中的大数据分析趋势及应用

理解CTP中的回调函数

如何围绕隐含波动率设计期权交易策略                    
看看如何用Python进行英文文本的情感分析
算法交易的分类

Python编码的最佳实践总结

什么是波动率锥?如何用波动率锥设计期权策略?
期权的波动率策略与时间价值收集策略对比

期权用于套期保值和无风险套利

隐含波动率对期权策略的影响

卖出期权交易的风险管理原则和技巧
期权交易中的“大头针”风险
期权做市商策略简介

精细化您的交易——交易成本评估与交易执行策略
海外市场交易执行策略的实践
设计期权套期保值方案时应注意的问题
美式期权、欧式期权比较分析——定价与风险管理
构建您的AI时代武器库——常用的机器学习相关Python库
期权波动率“微笑曲线”之谜
运算任务愈发繁重,如何加速Python程序运行?
证券市场微观结构理论模型是什么

是瞬间成交还是漫长等待?——如何衡量市场流动性
波动率指数及其衍生品介绍

Python的异常处理技巧

Python中的阻塞、异步与协程

"香草"之外的更多选择——几种常见的路径依赖奇异期权
什么是CTP?——了解上期所CTP快速交易系统
了解季节性——以谷物和油籽为例
是前因还是后果?——在真格量化中进行格兰杰因果检验

Python导入模块的技巧
Python程序员常犯的十个错误





























分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:870
帖子:180
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP