我写了一个不到50行代码的情绪小助手,它能读取新闻和推特消息,分析出市场的情绪有可能是看涨、看跌还是中性。每次开盘前运行一下,让交易决策更有底气。代码已备好,手把手教你用!每天早上打开微信或者X,你总会看到:比特币要涨了,经济要衰退了,这只股票要飞上天了!这些声音中,有的兴奋,有的害怕,但大多数都是噪音。不过,在这些噪音中,其实隐藏着市场的情绪。
市场首先是情绪的产物,然后才是基本面的反映。
价格走势本质是大众心理的脚印。作为交易者,如果能在开盘前捕捉到这种情绪,结果可能天差地别:大机构用机器学习分析海量新闻,但我们不需要那么复杂:一个小脚本+一点好奇心就够了。这个不到50行代码的Python小机器人,它能读取新闻和推特,然后用大白话告诉我:
我查了最新资料,情绪分析现在更加流行,用在股市和加密货币上,能提高胜率20%以上。
这个机器人小助手只包含三个简单部分:
1. 获取数据
2. 分析情绪
3. 总结输出
首先,安装必要的库:
pip install tweepy requests vaderSentiment python-dotenv
然后,申请两个API密钥:
- 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
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()
🔁 运行效果在终端运行:
你会看到类似这样的输出:
🌍 获取全球市场情绪
📊 平均情绪得分: 0.234 📌 全球市场情绪: 🟢 看涨 🕒 有效期: 当日全球交易时段 📰 分析新闻数:28 | 🐦 分析推文数:47
几秒钟内,我就知道市场整体偏向看涨。如果我的图表显示突破形态,这就增加了交易信心。
根据不同的交易风格,可以这样使用这个工具:
🚀 进阶玩法
这只是个开始,你还可以:
现在,我们不用再猜测市场情绪,因为市场自己告诉你它的心情。
交易不只是数字博弈,更是人性游戏。而人们在推文和新闻中留下了情感的痕迹。本文介绍了一个用Python编写的小机器人助手,它能帮助交易者捕捉市场情绪,从而做出更明智的交易决策。
感谢阅读!愿本文为您带来新启发与实用知识。若觉有益,请点赞分享,您的支持是我创作的动力,欢迎留言必复。祝投资顺利,收益丰厚!