用Python分析微博股市热度和A股走势的关联

摘要

俗话说:牛市在静悄悄中开启,在狂热中结束。在牛市开始时往往已经经过了数年的熊市,市场内大部分股票跌跌不休,市场投资者逐渐不在关注股市,在股市无人问津的时候,股票的估值达到了很低的水平,出现了投资价值,一些聪明的资金开始慢慢建仓,当这些资金建仓到一定程度,为了出货就会快速拉伸并舆论造势。到这个时候后知后觉的投资者才关注股市,并在一路上涨的走势中上车,成为新一轮的韭菜。本文就对这个 现象进行定性分析,分析表明,当股市走到半山腰时,股市相关的微博热度才起来,待到股市已经走完了牛市,舆论才达到顶点。
在这里插入图片描述

介绍

根据之前写的爬取微博的博文,爬取微博上具有代表性的10位博主的微博,并对其进行数据处理,得到每天每位博主发布的微博条数、平均每条微博点赞、平均每条微博评论数和平均每条微博转发数,并以此作为股市热度。并对比股市走势和股市热度的走势,分析之间的联系。

具体实现

具体代码如下:
首先,导入需要的模块

import talib as ta#技术分析模块
import pandas as pd

talib是进行技术分析使用很广的模块,pandas就不说了

def weibo_hot(name):#name是读取的微博博主名字f = open('D:\\python_project\\crawl\\weibo\\base_data_%s.txt'%name,'r+',encoding='utf-8')#读取数据dic = eval(f.read())#读取数据转化为字典f.close()data_date = {}#储存每个日期对应的微博数据for item in dic.values():date = item['created_at']if date in data_date:#data_date按点赞数、评论数、转发数来存储数据data_date[date].append([item['attitudes'],item['comments'],item['reposts']])else:data_date[date] = [[item['attitudes'],item['comments'],item['reposts']]]date_all = sorted(data_date)[500:]#将data_date中的微博数据按日期排列,排列顺序为日期最早的在最前面,且只取开通微博500天后的数据used_data = {}#存储用得到的数据for date in date_all:number = len(data_date[date])attitudes_sum = 0comments_sum = 0reposts_sum = 0for i in range(0,len(data_date[date])):attitudes_sum  += data_date[date][i][0]#该日期所有微博总点赞数comments_sum  += data_date[date][i][1]#该日期所有微博总评论数reposts_sum  += data_date[date][i][2]#该日期所有微博总转发数attitudes = (attitudes_sum/len(data_date[date]))#求平均comments = (comments_sum/len(data_date[date]))reposts = (reposts_sum/len(data_date[date]))used_data[date] = [number,attitudes,comments,reposts]return used_data#返回的是字典

以上代码是用来读取单个博主微博信息的代码,返回的是一个记录每天发博数、平均点赞数、平均评论数、平均转发数的一个字典。接下来需要将所有的博主的微博数据读取,代码如下;

def outcome():all_person = ['李大霄','花荣','上海徐晓峰','天津股侠','微博股票','天狼50陈浩','雪球','云财经','宇辉战舰','港股通AiH']#所有人的微博名outcome_data = pd.DataFrame(columns=('number','attitudes','comments','reposts'))#新建一个空DataFrameeach_num = {}for person in all_person:data = pd.DataFrame(weibo_hot(name = person)).T#返回的是字典for each in data.index.values:#index是日期if each not in outcome_data.index.values:each_num[each] = 1outcome_data.loc[each] = {'number':data.loc[each][0],'attitudes':data.loc[each][1],'comments':data.loc[each][2],'reposts':data.loc[each][3]}else:each_num[each] += 1outcome_data.loc[each]['number'] += data.loc[each][0]outcome_data.loc[each]['attitudes'] += data.loc[each][1]outcome_data.loc[each]['comments'] += data.loc[each][2]outcome_data.loc[each]['reposts'] += data.loc[each][3]for each in outcome_data.index.values:outcome_data.loc[each]['number'] /= each_num[each]#取每个博主的日平均发博outcome_data.loc[each]['attitudes'] /= each_num[each]#取每个博主的日平均点赞数outcome_data.loc[each]['comments'] /= each_num[each]#取每个博主的日平均评论数outcome_data.loc[each]['reposts'] /= each_num[each]#取每个博主的日平均转发数outcome_data = outcome_data.sort_index(inplace = False)return outcome_data

对得到的微博热度进行平滑化处理。

if __name__ == '__main__':outcome_data = outcome()number_ema = ta.EMA(outcome_data.number,timeperiod = 30)attitudes_ema = ta.EMA(outcome_data.attitudes,timeperiod = 30)comments_ema = ta.EMA(outcome_data.comments,timeperiod = 30)reposts_ema = ta.EMA(outcome_data.reposts,timeperiod = 30)

结果

由于上证指数易受到GJD的调控而产生指数失真的情况,所以这里对比的是中小板指和微博热度的关系。
在这里插入图片描述
可以看到在2014年这波牛市初期,热度缓慢上涨,而到了热度疯狂上涨的时候,股市已经迎来2015年中的股灾了。最终在股灾导致的股市快速下跌后,热度逐步回到正常区间(考虑到这几年微博的用户和股市投资者的增长)。在17年到18年的白马股上涨中虽然指数在涨,但是热度不增反减,说明散户参与少,白马股的上涨是机构报团取暖的结果。而最近热度又开始逐步上涨,说明最近的股市上涨是有一些散户参与的,或许在2020年会有一波牛市也不一定(不构成任何建议,不承担任何责任)。

讨论

分析结果和经验较符合,但是微博的数据不专业,也许雪球会是一个较好的数据来源。此类社交平台的舆论监控也可集成到量化交易系统中作为一个模块,用来分析股市的点数位置,确定风险系数。

本人中部某基科在读研究生,欢迎对量化交易和python或研究生生活感兴趣的同学关注我的个人微信公众号。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/72759.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu输入密码登陆不了仍跳回到登录界面

现象:在Ubuntu登陆界面输入密码之后,黑屏一闪并且出现了check battery state之类的文字之后,又跳转到登录界面。 原因:主目录下的.Xauthority文件拥有者变成了root,从而以用户登陆的时候无法都取.Xauthority文件。 说…

管理后台,登录后回到登陆前的页面(比如地址栏输入页面地址但是还没登录会回到登录页面,登录后回到这个页面)

首先应该在路由守卫那里应该把这个地址存起来。 我在项目中用的是在路由守卫那里把地址用localstorage存起来。 详细代码如下: router.beforeEach((to, from, next) > { let permission {} let role JSON.parse(localStorage.getItem(‘role’)); for (let k…

登录页面成功

1.首先我们把跳转到页面登录成功的js链接拉进来,然后建立个外部CSS我们用来写页面样式,并且拉进我们的页面当中。 2.然后开始搭建页面我们需要到的有登录页面名称,用户名文本框以及密码文本框,还有一个登录按钮,每个文…

谷歌 Alpha 家族再添“猛将”:AlphaDev 重磅亮相,打破多年计算瓶颈,新排序算法提速 70%!...

整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 本周四,DeepMind 在著名学术刊物 Nature 上,发表了其最新研究成果:一个名为 AlphaDev 的 AI 系统。 从名字上便可以看出,AlphaDev 与 AlphaGo、AlphaFo…

【Pytorch基础教程36】基于Ernie预训练模型和Bert的新闻分类

文章目录 一、新闻分类任务1.1 中文数据集1.2 数据特点1.3 跑起代码 二、 预训练语言模型ERNIE2.1 ERNIE模型结构2.2 bert模型结构 三、项目代码1. bert模型2. ERNIE预训练模型 Reference 一、新闻分类任务 1.1 中文数据集 从THUCNews中抽取了20万条新闻标题,已上…

马斯克入驻推特造成大恐慌!这俩戏精还冒充被裁员工,外媒全被耍了

【导读】马斯克进驻推特后,又是审查代码,又是疑似将灭霸式裁员,人心惶惶之际,这两位戏精也出动了。 最近,马院士进驻推特的事儿可是闹得人仰马翻,鸡犬不宁。 上周四,马斯克抱着水槽走进大楼&a…

为什么程序员很难找到合适的另一半?

虽然现在社会很多人说程序员收入高,是体制外是最好的男友,可是程序员不是总被说成情商低、不懂浪漫吗? 找到合适的另一半,这个难度超过西天取经。指不定你要和九九八十一个妹子错过去,当然对于女生也没那么容易&#x…

佳缘男的计算机软件出差,交友我在世纪佳缘认识了一个男人,今年32岁,通信接近一个月,觉得 爱问知识人...

2006-06-29 16:46:27 见一面也好,见了你就断了对他的念头。也就不用这么高分问我们这个无聊的问题了。 哈哈 全部 2006-06-29 16:46:27 2006-06-29 16:04:28 外表是一方面的内容。但是要有深层次的了解才知道你们是否会适合在一起。 全部 2006-06-29 16:04:28 2006-…

有一种男人叫“程序员”,遇到就嫁了吧!

都说程序改变世界,那程序又是出自谁手呢,自然是程序员了。 全民编程时代,家里没有个会写程序的人,可怎么办啊?所以,今天就给妹纸们推荐一款性价比极高的老公候选人—程序员。 首先,程序员收入高…

当你爱上一个程序员……

点击上方“程序员大咖”,选择“置顶公众号” 关键时刻,第一时间送达! 1.当你爱上一个程序员…… 2.程序员家的孩子 3.调试使我开心 4.程序员的类型 5.Java & C 语言程序员 6.程序员自学完一个新框架后 来源:菜鸟教程程序员大咖…

雅思练习和考试平台市场现状研究分析报告 -

辰宇信息咨询市场调研公司最近发布-《2022-2028中国雅思练习和考试平台市场现状研究分析与发展前景预测报告 》 内容摘要 本文研究中国市场雅思练习和考试平台现状及未来发展趋势,侧重分析在中国市场扮演重要角色的企业,重点呈现这些企业在中国市场的雅思练习和考试平台收…

雅思阅读错题分析

目录 C-15TEST4Passage1 (9/13)Passage2(11/13)Passage3(8/14) TEST3Passage1(10/13)Passage2(11/13)Passage3(8/13) TEST2Passage1(9/13)Passage2(4/13)Passage3(10/14) Test1Passage1(11/13)Passage2(11/13) C-15 TEST4 Passage1 (9/13) …

雅思考试和PET考试哪个更容易通过?

雅思PTE的“自我介绍”: 雅思:全称为国际英语测试系统(International English Language Testing System)简称雅思(IELTS),是著名的国际性英语标准化水平测试之一。雅思考试于1989年设立&#xf…

大连雅思培训百家国际雅思考试词汇量要求与记忆方法是什么

雅思考试词汇量要求与记忆方法是什么 一、雅思考试词汇量要求 雅思考试词汇量要求与记忆方法是什么 1.雅思5.5分所需的词汇量 雅思5.5分水平估计词汇量至少要到3000,口语听力词汇要有800,写作词汇要有500,阅读词汇要有1000,一…

雅思阅读真经总纲_大神名师炸翻现场,2019学为贵全国教育展引爆雅思圈!

9月28日,学为贵全国教育展圆满落幕。此次活动以“万变不离真经”为主题,学为贵联合“当当”、“爱奇艺知识”,跨越北京、长沙、广州、成都、重庆、哈尔滨、南京、西安等全国12个城市,多位大神名师亲临现场,深度分析雅思…

雅思考试自己的复习进度以及方法使用【日更版】

雅思第几套听力阅读 写作口语IELTS 5 听力: 1.何琼网课(腾讯课堂) 2.雅思王听力真题语料库:只刷第三章名词(每天半小时到一小时听写,半小时到一小时改错),电话号码,姓名地址拼写 3.剑桥雅思真题: ①从后…

【雅思阅读】王希伟阅读P3(Heading)

List of Heading 段意题 特点 1. 出题位置特殊:文章前出现 2. 主旨题 3. 难度大(时间,出错连续) 4.无复选 解题根本思路: 找段落主旨与选项搭配 80%段落有主旨句 做题步骤 一 审选项 1、 读例子并去掉例子已经…

FashionAI服装属性标签图像识别Top1-5方案分享

向AI转型的程序员都关注了这个号👇👇👇 机器学习AI算法工程 公众号: datayx 服饰属性标签是构成服饰知识体系的重要根基,内部庞大复杂。我们对服饰属性进行了专业的整理和抽象,构建了一个符合认知过程&…

这波服装设计作品对女性美的诠释,十分到位

女性是温柔的、美丽的,多样的,莱佛士学生Xu Xinyi作品《Femininity&Softness》便是围绕女性展开创作。而Xinyi的作品想要传达的是:女性不应该被物化,她们是美丽且具有多样性的。 莱佛士服装设计专业学生作品 在设计中&#xf…

绘图软件Tecplot如何保存调用自己的绘图风格style

1、保存 点击上方菜单栏“Frame”; 点击“Save frame style” ,选择位置保存即可。 2、调用 点击上方菜单栏“Frame”; 点击“Load frame style” ,选择style位置调用即可。