社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

不到50行Python代码,就能让您开盘前看懂市场情绪(附源码)

老余捞鱼 • 9 月前 • 263 次点击  
图片
 点击上方蓝字 | 关注更多好文
写在前面的话


写了一个不到50行代码的情绪小助手,它能读取新闻和推特消息,分析出市场的情绪有可能是看涨、看跌还是中性。每次开盘前运行一下,让交易决策更有底气。代码已备好,手把手教你用!
① 为什么要在意市场情绪


 What is it ?
01

每天早上打开微信或者X,你总会看到:比特币要涨了,经济要衰退了,这只股票要飞上天了!这些声音中,有的兴奋,有的害怕,但大多数都是噪音。不过,在这些噪音中,其实隐藏着市场的情绪。

市场首先是情绪的产物,然后才是基本面的反映。

  • 看涨情绪 → 交易者做多,动量延续。
  • 看跌情绪 → 恐惧导致抛压。
  • 中性情绪 → 震荡、犹豫、假突破。
价格走势本质是大众心理的脚印。作为交易者,如果能在开盘前捕捉到这种情绪,结果可能天差地别:
  • 大家贪婪时,跟进突破;
  • 人人恐惧时,保持谨慎;
  • 情绪极端时,反向操作。

大机构用机器学习分析海量新闻,但我们不需要那么复杂:一个小脚本+一点好奇心就够了。这个不到50行代码的Python小机器人,它能读取新闻和推特,然后用大白话告诉我:

👉 今天市场看涨 🟢、看跌 🔴,还是中性 ⚪。

我查了最新资料,情绪分析现在更加流行,用在股市和加密货币上,能提高胜率20%以上。

② 手把手教学


Hands-on Teaching
02
🤖 小机器人怎么工作的?

这个机器人小助手只包含三个简单部分:

1. 获取数据

  • 从NewsAPI获取全球新闻头条。
  • 用TwitterAPI抓取热门推文。

2. 分析情绪

  • 使用VADER(情绪词典),专门针对短文如推文。
  • 每条消息打分,-1(负面)到+1(正面)。

3. 总结输出

  • 计算平均分。
  • 输出市场情绪,相关数值如下表:
▶️ 准备工作

首先,安装必要的库:

pip install tweepy requests vaderSentiment python-dotenv

然后,申请两个API密钥:

  • NewsAPI:免费注册。
  • Twitter API:申请Bearer Token。

在项目目录下创建.env文件,填入你的密钥:

NEWS_API_KEY=你的NewsAPI密钥TWITTER_BEARER=你的Twitter密钥

📈 完整代码

下面是完整的代码,你可以直接保存为sentiment_bot.py文件:

# 市场情绪分析机器人
import osimport requestsimport tweepyfrom vaderSentiment.vaderSentiment import SentimentIntensityAnalyzerfrom dotenv import load_dotenv
# 加载API密钥load_dotenv()NEWS_API_KEY = os.getenv("NEWS_API_KEY")TWITTER_BEARER = os.getenv("TWITTER_BEARER")
# 初始化情绪分析器analyzer = SentimentIntensityAnalyzer()
# 获取新闻头条def fetch_news(query="股票 OR 加密货币 OR 全球市场", max_results=20):    url = f"https://newsapi.org/v2/everything?q={query}&language=en&sortBy=publishedAt&pageSize={max_results}&apiKey={NEWS_API_KEY}"    response = requests.get(url)    articles = response.json().get("articles", [])    return [a["title"for a in articles if "title" in a]
# 获取推文def fetch_tweet(query="股票 OR 加密货币 OR 比特币", max_results=20):    client = tweepy.Client(bearer_token=TWITTER_BEARER)    tweets = client.search_recent_tweets(query=query, max_results=max_results, tweet_fields=["text""lang"])    return [t.text for t in  tweets.data if t.lang == "en"if tweets.data else []
# 分析情绪def analyze_sentiment(texts):    scores = []    for text in texts:        vs = analyzer.polarity_scores(text)        scores.append(vs["compound"])    return scores
# 获取市场情绪def get_market_sentiment():    news = fetch_news()    tweets = fetch_tweet()    all_texts = news + tweets    scores = analyze_sentiment(all_texts)
    if not scores:        return "没有获取到数据"
    avg_score = sum(scores) / len(scores)
    if avg_score > 0.05:        mood = "🟢 看涨"    elif avg_score < -0.05:        mood = "🔴 看跌"    else:        mood = "⚪ 中性"     print("\n🌍 获取全球市场情绪")    print(f"📊 平均情绪得分: {avg_score:.3f}")    print(f"📌 全球市场情绪: {mood}")    print("🕒 有效期: 当日全球交易时段")    print(f"📰 分析新闻数: {len(news)} | 🐦 分析推文数: {len(tweets)}")
if __name__ == "__main__":    get_market_sentiment()
🔁 运行效果

在终端运行:

python sentiment_bot.py

你会看到类似这样的输出:

🌍 获取全球市场情绪  
📊 平均情绪得分: 0.234 📌 全球市场情绪: 🟢 看涨 🕒 有效期: 当日全球交易时段 📰 分析新闻数:28 | 🐦 分析推文数:47

几秒钟内,我就知道市场整体偏向看涨。如果我的图表显示突破形态,这就增加了交易信心。

③ 实战应用指南


 Practical Cases
03

根据不同的交易风格,可以这样使用这个工具:

🚀 进阶玩法

这只是个开始,你还可以:

    • 每日记录:将情绪数据保存到Excel/CSV,用于回测。

    • 技术指标结合:将情绪分析与技术指标结合,打造完整交易系统。

    • 实时价格联动:将情绪数据与实时价格动作结合。

    现在,我们不用再猜测市场情绪,因为市场自己告诉你它的心情。

    ④ 观点总结


     Summary of Views
    04

    交易不只是数字博弈,更是人性游戏。而人们在推文和新闻中留下了情感的痕迹。本文介绍了一个用Python编写的小机器人助手,它能帮助交易者捕捉市场情绪,从而做出更明智的交易决策。

        • 使用Python小助手可以快速了解市场情绪。
        • 小助手通过分析新闻和推特来得出情绪结论。
        • 交易者可以根据情绪来调整交易策略。
        • 设置和使用小助手非常简单。
        • 你可以进一步扩展和完善这个工具。


        #Python交易 #市场情绪 #交易策略 #量化交易 #金融科技 #X推文抓取 #股市牛熊 #加密货币心得 #AI金融工具 #简单代码教学 #交易机器人


        感谢阅读!愿本文为您带来新启发与实用知识。若觉有益,请点赞分享,您的支持是我创作的动力,欢迎留言必复。祝投资顺利,收益丰厚!
        图片


        微信号 | 老余捞鱼


        www.LaoYuLaoyu.com
        本文内容仅限技术探讨和学习,不构成任何投资建议。
        图片
        财神都在点赞
        请用您发财的手:分享、在看和赞一下,谢谢!
        图片

        Python社区是高质量的Python/Django开发社区
        本文地址:http://www.python88.com/topic/187375