Skip to content

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

作 者:老余捞鱼

原创不易,转载请标明出处及原作者。

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

一、为什么要在意市场情绪

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

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

  • 看涨情绪 → 交易者做多,动量延续。
  • 看跌情绪 → 恐惧导致抛压。
  • 中性情绪 → 震荡、犹豫、假突破。

价格走势本质是大众心理的脚印。作为交易者,如果能在开盘前捕捉到这种情绪,结果可能天差地别:

  • 大家贪婪时,跟进突破;
  • 人人恐惧时,保持谨慎;
  • 情绪极端时,反向操作。

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

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

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

二、手把手教学

2.1 小机器人怎么工作

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

1. 获取数据

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

2. 分析情绪

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

3. 总结输出

  • 计算平均分。
  • 输出市场情绪相关数值如下表:
分数范围市场心情建议行动
> 0.05🟢 牛市追买突破
< -0.05🔴 熊市小心卖出
-0.05 到 0.05⚪ 中性观望或小仓


2.2 准备工作

首先,安装必要的库:

pip install tweepy requests vaderSentiment python-dotenv

然后,申请两个API密钥:

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

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

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

2.3 完整代码

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

# 市场情绪分析机器人

import os
import requests
import tweepy
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer
from 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()

2.4 运行效果

在终端运行:

python sentiment_bot.py

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

🌍 获取全球市场情绪

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

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

三、实战应用指南

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

交易风格使用建议情绪阈值
短线交易只在看涨时交易突破> 0.05
波段交易跟随每周情绪趋势持续监控
风险管理中性情绪时减少仓位-0.05 到 0.05
反向交易极端情绪时反向操作> 0.9 或 < -0.9

🚀 进阶玩法

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

  • 每日记录:将情绪数据保存到Excel/CSV,用于回测。
  • 技术指标结合:将情绪分析与技术指标结合,打造完整交易系统。
  • 实时价格联动:将情绪数据与实时价格动作结合。

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

四、观点总结

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

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

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

希望这篇文章为您带来了新的启发和实用的知识!如果觉得有帮助,请不吝点赞和分享,您的支持是我持续创作的动力。祝您投资顺利,收益长虹!如果对文中内容有任何疑问,欢迎留言,我会尽快回复!


本文内容仅限技术探讨和学习,不构成任何投资建议。

Published inAI&Invest专栏

Be First to Comment

发表回复