AI驱动的新闻交易信号生成器
我如何使用LangGraph和GPT-4创建一个每日市场情报系统,以分析AI新闻并在市场开盘前发送投资建议
一键发币: Aptos | X Layer | SUI | SOL | BNB | ETH | BASE | ARB | OP | Polygon | Avalanche | 用AI学区块链开发

每天早上东部时间凌晨5点,当我还在睡觉时,我的AI代理已经在辛勤工作。它正在扫描前一天的数十篇AI新闻文章,分析哪些可能影响股票价格,并准备一份详细的的投资分析,比市场开盘早几小时就发送到我的邮箱中。
这个周末项目最初是为了自动化我的早晨市场研究,现在已经变成了一个出人意料有效的交易伙伴。作为一名关注AI发展和金融市场的投资者,我每天早上花费太多时间在浏览新闻文章上,试图确定哪些AI突破、合作伙伴关系或监管变化可能真正影响股价。
解决方案?建立一个能为我进行这种分析的AI代理。
使用LangGraph和GPT-4,我创建了一个系统,可以获取昨天的AI新闻,识别最相关的新闻故事,分析它们对特定股票的潜在影响,并直接通过电子邮件发送买入/卖出/持有建议。最棒的是?这一切都在凌晨5点自动完成,让我在市场开盘前有4.5小时的领先优势。
在这篇文章中,我将逐步介绍我是如何构建这个自动市场情报系统的,从LangGraph的工作流设计到日常调度设置。无论你对AI代理、算法交易感兴趣,还是只是想自动化自己的市场研究,这个项目结合了多种强大的技术来创造真正有用的东西。
让我们深入了解,几百行Python代码如何改变你的早晨交易习惯。
1、问题:AI新闻中的信息过载
AI行业发展迅速。每天都会带来新的产品发布、融资活动、监管更新和突破性公告。作为一名对AI股票感兴趣的投资者,我发现每天早上都要花30到45分钟尝试回答同样的问题:
- 哪些昨天的AI新闻故事实际上会影响股价?
- 在那个新芯片发布后,我应该购买NVIDIA吗?
- OpenAI的最新合作伙伴关系会如何影响微软的股票?
- 关于AI安全的监管新闻会对整个行业产生什么影响?
手动分析变得不可持续。我需要一个能够处理噪音并突出信号的系统。
2、解决方案:一个像交易员一样思考的AI代理
我决定构建一个AI代理,它可以:
- 从前一天获取相关的AI新闻
- 分析每篇文章的潜在市场影响
- 生成具体的交易建议,包括股票代码
- 在市场开盘前将分析发送到我的邮箱
关键的见解是使用LangGraph来创建一个结构化的工作流程,而不是仅仅把所有内容扔给一次LLM调用。
3、架构概览
以下是系统的工作方式:
def create_graph():
graph = StateGraph(State)
# 添加节点
graph.add_node("llm", llm_node)
graph.add_node("send_message", send_message_node)
# 定义流程
graph.add_edge(START, "llm")
graph.add_edge("llm", "send_message")
graph.add_edge("send_message", END)
return graph.compile()
该工作流有意保持简单:获取 → 分析 → 发送。有时最好的解决方案就是最简单的。
替代想法:将新闻获取器写成一个工具,并将其绑定到模型上,这样代理可以相应地循环。我没有这样做,因为没有必要将其作为ReAct代理。
3.1 构建新闻获取器
第一个挑战是获取高质量的相关新闻数据。我使用了newsapi.ai并进行了特定过滤:
def get_ai_news_articles() -> str:
"""获取昨天的AI相关新闻"""
yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')
params = {
'apiKey': os.getenv('NEWS_API_KEY'),
'q': 'AI OR "artificial intelligence" OR "machine learning" OR ChatGPT OR OpenAI OR "large language model"',
'category': 'technology',
'date': yesterday,
'sortBy': 'rank',
'language': 'en'
}
response = httpx.get('https://newsapi.ai/api/v1/article/getArticles', params=params)
这里的关键决策是:
- 昨天的新闻:市场对夜间发展做出反应
- 相关性 + 情绪评分:API提供这些指标
- 前20篇文章:足够的内容而不让LLM感到压力
- 多个AI关键词:捕捉各种AI相关的故事
3.2 分析引擎
这就是魔法发生的地方。我设计了一个详细的提示,将GPT-4转变为财务分析师:
def llm_node(state: State):
system_prompt = """你是一个专注于AI/科技股票的财务分析师。
...
以适合电子邮件的清晰、可操作的格式返回你的分析。
优先考虑最相关的前10篇新闻文章。"""
# 获取新闻文章
articles = get_ai_news_articles()
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": f"分析这些AI新闻文章: {articles}"}
]
response = llm.invoke(messages)
return {"messages": [response]}
3.3 邮件发送系统
最后一部分使用Mailgun通过电子邮件发送分析:
from mailgun.client import Client
client: Client = Client(auth=("api", mail_key))
def send_email(content: str) -> None:
yesterday = get_yesterday()
data = {
"from": f'Market Analyzer <analysis@{mailgun_domain}>',
"to": recipients.split(","),
"subject": f"Market News - {yesterday.strftime('%B %d, %Y')}",
"text": content
}
req = client.messages.create(data=data, domain=mail_domain)
3.4 调度:凌晨5点的奇迹
该系统每天早上东部时间5点运行,使用langgraph cloud上的cron作业。对于plus客户,已启用cron功能。

3.4 输出效果
这是我邮箱中收到的内容示例:

4、技术栈
这是推动这个系统的技术:
- LangGraph:工作流编排和状态管理
- OpenAI GPT-4:财务分析和推理
- newsapi.ai:带有情感分析的高质量新闻数据
- Mailgun:可靠的电子邮件传递
- Python:核心实现语言
5、总结和计划
构建这个AI代理让我学到了几个重要的教训:
- 简单的流程通常效果最好:线性的LangGraph流程易于调试和修改
- 提示工程很重要:分析的质量高度依赖于系统提示
- 时机至关重要:凌晨5点的执行提供了最大价值
- 自动化带来回报:节省的时间每天都在累积
我正在考虑的一些未来改进:
- 投资组合集成:分析对我实际持仓的影响
- 历史回测:跟踪推荐的准确性随时间的变化
- 多模型分析:比较GPT-4与Claude等其他模型
- 实时警报:推送通知用于突发新闻
这个系统的优势在于其模块化。每个组件都可以独立改进,而LangGraph结构使其易于添加新的分析节点或数据源。
6、结束语
这个简单的周末项目已经成为了我交易程序中不可或缺的一部分。通过结合AI新闻分析和自动交付,我创建了一个节省时间同时可能改善投资决策的系统。
关键的见解是,AI代理不需要复杂才能有价值。有时候最有力量的应用是那些能非常有效地解决特定个人问题的。
如果你有兴趣构建类似的系统,代码是直接的,组件是模块化的。无论你是分析AI新闻、加密货币发展,还是任何其他市场动向的信息,这种获取 → 分析 → 交付的模式可以适应几乎任何领域。
个人金融的未来可能就是拥有一个在你睡觉时工作的AI代理。
原文链接:Building an AI Agent That Turns News into Trading Signals
DefiPlot翻译整理,转载请标明出处
免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。