作者:老余捞鱼
原创不易,转载请标明出处及原作者。
写在前面的话:我近期开发了一款AI驱动的股市情绪分析工具。它能够自动抓取股票新闻,并通过AI技术对新闻进行情绪分类和排序,同时利用VADER算法计算情绪得分。这款工具让我能迅速把握市场对特定股票的普遍看法,从而辅助我做出更加明智的投资选择。若您希望在股市中抢占先机,那么AI情绪分析绝对是一项不容忽视的关键工具。
我聪明的读者们,大家好!你是否曾想从新闻头条中解读市场情绪,却因信息太繁杂而感到感到无从下手?今天你很幸运,因为AI时代为你带来了一种改变颠覆传统的全新方式……
一、AI股票情绪分析应用体验
试想一下,如果你能实时获取最关注股票的最新新闻,自动为每条新闻打上情绪分数,并按积极或消极程度进行排序。更棒的是,你还可以得到一个总体情绪评分,精准把握市场对这只股票的情绪动向!感兴趣吗?现在就让我们一起来用一用这个基于AI的股票情绪分析工具。
这是一款全面整合技术指标、基本面数据与新闻情绪分析工具,体验地址:https://rsssentiment-laoyulaoyu.streamlit.app/
如果你需要在日内交易中使用,可以试试这个版本,体验地址:
https://rsssentiment-laoyulaoyutwo.streamlit.app/
二、技术实现
import streamlit as st
import yfinance as yf
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import pandas as pd
import feedparser
from nltk.sentiment import SentimentIntensityAnalyzer
import nltk
# Download VADER lexicon if not already done
nltk.download('vader_lexicon', quiet=True)
# 由于篇幅限制,此处省略部分代码。如需完整代码,请关注老余捞鱼微信公众号,并在后台输入“股票情绪分析代码”即可获取。
# Display total sentiment score
st.sidebar.markdown(f"<h3 style='color: {'green' if total_sentiment_score >= 0 else 'red'}'>总情绪得分: {total_sentiment_score:.2f}</h3>", unsafe_allow_html=True)
# Display news items
for item in news_items:
st.sidebar.markdown(f"**{item['title']}**")
st.sidebar.markdown(f"[Read more]({item['link']})")
st.sidebar.markdown(f"*发布时间: {item['published']}*")
st.sidebar.markdown(f"情绪: <span style='color:{item['color']}'>{item['sentiment_category']}</span> (Score: {item['compound_score']:.2f})", unsafe_allow_html=True)
st.sidebar.markdown("---")
else:
st.sidebar.write("对不起,暂未找该股票代码的新闻.")
if __name__ == "__main__":
main()
上面是代码示例片段,完成该功能只需四步即可。
步骤 1:获取最新股票新闻
首先,我们的应用会通过 RSS 源获取您关注股票的最新10篇新闻报道。无论是Apple、Meta,还是Google,我们都能实时从网络上抓取相关新闻。
该片段代码实现的核心为:
获取新闻:使用 fetch_rss_feed(ticker)
获取指定股票(股票代码)的最新消息。它会检索与该股票相关的新闻文章列表。
步骤 2: 利用 AI 进行情绪分析
获取新闻后,我们会使用一个名为 VADER 的情感分析工具。这个由人工智能驱动的工具会扫描每篇新闻文章的基调,并给出每篇新闻的数值区间情绪评价分:
- 正向情绪:Positive (+1.0 to +0.1)
- 中性情绪:Neutral (0)
- 负面情绪:Negative (-0.1 to -1.0)
给每篇文章都会标注一个分数,可以表示为看涨或看跌的情绪。
该片段代码实现核心为:
分析情绪:对于每个新闻标题,我都会使用 get_vader_sentiment(entry.title) 来判断文章标题是积极、消极还是中性。这是基于 "复合得分"算法,一个衡量文本情感的数字。
步骤 3:按情绪得分对新闻进行排序
为了简化操作,这款应用会将新闻从最积极到最消极排序。无需像传统股票软件那样逐条浏览数十篇文章。当您输入股票代码后,应用会在几秒内呈现最新的头条新闻,整齐排列,让您轻松分辨哪些新闻在为这只股票助威,哪些新闻在提示潜在风险。
该片段代码实现核心为:
新闻排序:应用程序首先按最新文章(by date)对新闻进行排序,然后选取前 10 篇文章,再按情感分数(from most positive to least positive)进行排序。
情感总分:情绪总分是将前 10 篇文章的情绪得分相加计算得出的。该分数可以全面反映该股票的情绪。
第 4 步: 股票情绪总分
我们通过将所有文章的分数相加,计算出总情感分数。这样您就能了解全局:
如果总分是正数(接近 +10),则表示市场看涨,市场情绪乐观。
如果分数为负数(接近-10),则情况可能看跌,您应谨慎行事。
我们为 Streamlit 应用添加了一个侧边栏,该侧边栏会获取有关某只股票的近期新闻(使用其股票代码),并使用 VADER(情感分析工具)分析每个新闻标题的情感,而侧边栏顶部用红色显示总情感分数。
源代码相关
完整代码请在“老余捞鱼”微信公众号后台输入“股票情绪分析”即可获得地址。
三、观点总结
对于任何交易员或投资者来说,情绪分析都是一项强大的工具。这款应用程序不仅为您提供新闻,更为您带来深刻的洞察力!
- 市场情绪分析对投资者至关重要:通过分析股票新闻的情绪,投资者可以更准确地把握市场动向和情绪变化。
- 自动化工具提高效率:本应用自动获取新闻并进行情感分析,大大提高了信息处理的效率。
- 情感分析的准确性:使用AI工具进行情感分析,能够准确地识别新闻标题的基调,并给出量化的情绪得分。
- 情绪得分的实用性:通过情绪得分,投资者可以快速判断新闻对股票的看涨或看跌影响。
- 总情绪得分的全局视角:总情绪得分为投资者提供了一个整体的市场情绪视角,帮助他们做出更有信息支持的投资决策。
- 用户友好的界面设计:应用程序的设计使得投资者能够轻松地获取和理解所需的信息。
- 实时分析的优势:提供实时分析的能力,让投资者能够及时做出反应,抓住市场机会。
感谢您阅读到最后,希望这篇文章为您带来了新的启发和实用的知识!如果觉得有帮助,请不吝点赞和分享,您的支持是我持续创作的动力。祝您投资顺利,收益长虹!如果对文中内容有任何疑问,欢迎留言,我会尽快回复!
本文内容仅限技术探讨和学习,不构成任何投资建议。