舆情分析介绍
本篇文章主要结合雪球数据以及Tushare财经数据包的使用、
随着各种社交平台的发展,越来越多的牛逼哄哄的公司开始考虑利用文本数据挖掘有效的因子,第一个公开搞得比较好的同志当属美国一名教授,利用twitter数据构建了一个与标普500之间的模型,点燃了人们的激情。
在A股割韭菜越来越难之后,国内很多机构,比如光大证券,广发证券都各自撸起袖子干起了情绪分析因子研究。其中,光大证券在2011年开源了中文云项目,有兴趣的筐友可以了解一下。
由于文本数据为非结构化数据,在数据获取以及数据预处理的上,与一般的交易数据、财务数据相比,难度颇大。 这也导致社区中关于文本舆情分析的帖子比较少,在此,楼主利用米筐平台仅有的舆情分析数据——雪球舆论数据,进行一些探索。
雪球舆论数据查询
雪球作为一个XXX的社区,吸引了大量股民在雪球交流,并且,每个在雪球的用户可以选择关注自己感兴趣的股票,或者去评论一番。 如图所示:
基于每天雪球都会有大量讨论这一个事实,我们考虑,雪球社区的同志们是走心还是套路呢?
我们基于以下思路对雪球热度排行榜的数据进行测试:
① 选取前一天新增评论最高的20支股票,每天开盘买入,第二天调仓
让我们来看看如何利用米筐平台实现这个简单的想法呢? 打开数据,找到舆论数据 ,我们发现米筐提高了两个关于雪球舆论数据的API:
此处需要注意,米筐平台上关于这几个函数的文档说明已经过期,请以如下实际说明为准。
另外,数据最早可以追溯到2015年4月23日
雪球舆论数据查询:
研究:xueqiu.top_stocks(field, date, frequency='1d', count=5, country='cn')
交易:xueqiu.top_stocks(field, date, frequency='1d', count=5, country='cn')
雪球股票历史信息查询(研究专用):
xueqiu.history(id_or_symbol, start_date='2015-05-21', end_date='2016-05-21', frequency='1d', fields=None, country='cn')
雪球舆论数据: xueqiu.top_stocks 参数说明:
field: 必选参数,参数类型:str,表示需要获取的数据类型,有如下几种选择:
新增评论 'new_comments'
新增关注人数 'new_followers'
总评论数 'total_comments'
总关注人数 'total_followers'
卖出行为 'sell_actions'
买入行为 'buy_actions'
date: 必选参数,传入需要获取的日期
frequency: 可选参数,默认为'1d',可选择 '1d','1w','1M'(大写),分别对应频率为天、周,月
count:可选参数,默认为5,表示需要返回排名前count个数据。
可以看到,其实每日新增评论里含有大量的异常点,这里面的信息值得我们深入挖掘。
比如:2016-12-29,2017-01-05,新增评论大增,对应到盘面上我们可以看到一个十字星的出现。
根据新增评论构建
回到我们的策略回测上,结果如图所示:
哎、都是套路、
② 将频率换到周频率试试? 结果如图所示:
MD,都是套路。
可以看到,跟着雪球热榜走,基本上是稳亏不赚的。良好的反向选股指标!
其实这也不代表雪球热榜没有意义,如果我们能够做空热股榜股票, 那该多好!! 关于这个,还是洗洗睡吧、、、
根据新增关注人数构建
我们尝试一下,将新增评论换为新增关注人数试试?
周频回测结果如下:
尝试3
策略思路:
获取月度数据,月度调仓
选取上月新增评论最高的20支股票为股票池1;
选取累计最高的20支股票作为股票池2;
选取股票池1 与股票池2 的交集
回测结果如图:
可以看到,经过简单的优化,策略效果大大提升【虽然还是很烂】,值得注意的是,本策略在市场反弹的时候,基本弹得比较快,也比较高。有兴趣的筐友可以进一步深入研究。
经过如上几个测试之后,我们可以发现,仅利用雪球热度数据其实很难做出一个比较好的因子,但这可以启示我们用更多的信息去帮助我们做决定,例如:2016-12-29中国平安新增评论当中,究竟是正向评论多还是负向情绪多? 这就需要进一步的数据支持了。
米筐量化交易平台:http://www.ricequant.com
量化炒股QQ群:484490463 群内大神每日在线讲解代码,用Python自动赚钱!