MarketPulse
综合介绍
MarketPulse是一个轻量级的金融资讯分析服务。这个工具的核心是使用Google Gemini AI模型,自动获取并分析最新的金融新闻。它不是简单地推送新闻标题,而是对每条资讯进行深度分析,然后生成非常具体的投资建议、市场影响评估、信心指数以及新闻来源的可靠度评分。分析完成後,结果会通过多种渠道,例如Bark或PushPlus,实时推送到用户的手机或其他设备上。这个过程是全自动的,它会自己去除重复的新闻,避免对用户造成干扰。对于需要7x24小时持续运行的用户,MarketPulse提供了完整的后台守护进程管理功能,可以稳定地在服务器上运行,确保用户不会错过任何重要的市场动态。
功能列表
- 智能分析: 基于Google Gemini AI模型,对金融新闻进行分析,并提供具体的市场影响评估、投资建议、信心指数和来源可靠度(以百分比形式显示)。
- 实时推送: 支持通过Bark(苹果设备)和PushPlus(微信)等多种渠道,将分析结果实时推送到用户的多个设备上。
- 多新闻源: 默认通过Finnhub获取高质量的金融新闻,同时也支持配置其他新闻来源。
- 自动去重: 内置状态管理机制,记录已处理的新闻ID,有效避免重复分析和推送相同的新闻。
- 安全配置: 使用
.env
文件管理API密钥等敏感信息,将配置与代码分离,增强了安全性。 - 后台运行: 提供完整的守护进程管理脚本,支持在后台启动、停止、重启服务和查看状态,适合在服务器上长期运行。
- API频率控制: 能够自动处理API的调用频率限制,确保服务的稳定运行。
- 高度可定制: 用户可以在
config.py
文件中轻松配置自己关心的股票代码、信任的新闻来源以及新闻获取的频率。
使用帮助
MarketPulse的安装和使用流程非常直接。下面将详细介绍如何从零开始部署并运行这项服务。
第一步:准备环境
在开始之前,请确保你的系统已经安装了Python 3.8
或更高版本。官方推荐使用uv
来管理Python虚拟环境和依赖包,因为它的速度更快。
如果你没有安装uv
,可以运行以下命令进行安装(此步骤可选,但推荐):
curl -LsSf https://astral.sh/uv/install.sh | sh
第二步:获取项目代码
使用git
工具将MarketPulse的项目代码克隆到你的本地电脑或服务器上。
git clone https://github.com/T1mn/MarketPulse.git
然后,进入项目所在的目录:
cd MarketPulse
第三步:创建虚拟环境并安装依赖
为了保持项目依赖的纯净,不与其他Python项目冲突,我们需要创建一个独立的虚拟环境。
使用uv
创建虚拟环境:
uv venv```
激活虚拟环境。在Linux或macOS系统上,运行:
```shell
source .venv/bin/activate
在Windows系统上,运行:
.venv\Scripts\activate
激活后,你会看到命令行前面出现了(.venv)
的标识。接下来,安装项目所需的所有依赖包:
uv pip install -r requirements.txt
uv pip install -e .
第四步:配置API密钥
MarketPulse需要用到几个第三方服务的API密钥才能正常工作。项目提供了一个配置模板文件.env.example
,我们需要复制它并填入自己的密钥。
复制文件:
cp .env.example .env
然后,用文本编辑器打开这个新创建的.env
文件,你会看到以下内容:
# API Keys
FINNHUB_API_KEY=your_finnhub_api_key
GEMINI_API_KEY=your_gemini_api_key
# Bark Keys (至少填一个)
BARK_KEY_1=your_first_bark_key
# BARK_KEY_2=your_second_bark_key
# PushPlus Token (可选)
PUSHPLUS_TOKEN=your_pushplus_token
# PushPlus 推送群组 (可选, 留空则推送到个人)
PUSHPLUS_TOPIC=your_topic_code
请将your_..._key
替换成你自己的实际密钥:
FINNHUB_API_KEY
: 从Finnhub官网注册获取,用于抓取金融新闻。GEMINI_API_KEY
: 从Google AI Studio获取,用于AI分析。BARK_KEY_1
: 如果你使用苹果设备,需要安装Bark应用,并将应用内提供的URL密钥填入此处。可以配置多个Bark Key,向不同设备推送。PUSHPLUS_TOKEN
: 如果你使用微信接收推送,需要到PushPlus官网获取Token。PUSHPLUS_TOPIC
是可选的,用于推送到群组。
注意:你至少需要配置一个推送渠道(Bark或PushPlus)的密钥。
第五步:自定义配置(可选)
你可以根据自己的需求,修改config.py
文件来定制化服务。
- 修改关注的股票:找到
US_MARKET_SYMBOLS
列表,在里面添加或删除你关心的美股股票代码。
US_MARKET_SYMBOLS = [
"SPY", "QQQ", "TSLA", "AAPL", "MSFT"
]
- 修改新闻获取间隔:默认是每30分钟检查一次新闻,你可以修改
NEWS_FETCH_INTERVAL
的值(单位是分钟)。
NEWS_FETCH_INTERVAL = 30 # 分钟
- 配置信任的新闻来源:
TRUSTED_SOURCES
列表定义了AI分析时会认为哪些新闻来源更可靠。
TRUSTED_SOURCES = [
"Reuters", "Bloomberg", "The Wall Street Journal"
]
第六步:运行服务
MarketPulse提供了两种运行方式:
- 前台运行(用于调试):这种方式会直接在当前终端窗口中运行程序,并实时打印日志,方便你查看程序是否正常工作。
python -m MarketPulse.main
首次运行时,它会立即执行一次新闻获取和分析任务。
- 后台守护进程运行(推荐用于生产环境):这种方式会将服务作为一个守护进程在后台运行,即使你关闭了终端窗口,服务也会继续工作。
- 启动服务:
python -m MarketPulse.daemon_manager start ``` - **查看服务状态**: ```shell python -m MarketPulse.daemon_manager status
- 停止服务:
python -m MarketPulse.daemon_manager stop
- 重启服务:
python -m MarketPulse.daemon_manager restart
- 启动服务:
服务运行后,相关的日志会保存在logs
目录下,你可以使用tail -f logs/market_pulse.log
命令实时查看主程序日志。
应用场景
- 个人投资者对于忙于本职工作但又希望及时了解市场动态的个人投资者,MarketPulse可以将经过AI提炼后的高价值信息直接推送到手机。用户无需再耗费大量时间浏览和筛选新闻,而是可以直接获取到明确的投资建议和市场影响分析,帮助做出更及时的投资决策。
- 量化交易开发者对于从事自动化交易策略开发的个人或团队,MarketPulse可以作为一个可靠的实时新闻事件信号源。开发者可以利用其推送的结构化数据(如信心指数、投资建议),将其整合进自己的交易模型中,作为判断市场情绪或触发交易的因子之一,从而丰富策略维度。
- 金融分析师或研究员金融专业人士每天需要处理海量的信息。MarketPulse可以作为他们的智能助手,自动监控全球金融新闻,并对信息进行初筛和分析。这可以帮助他们快速识别出可能对特定行业或公司产生重大影响的事件,将更多精力投入到更深度的研究分析中。
QA
- 这个项目需要哪些API密钥才能运行?最少需要三个API密钥:用于获取新闻的
FINNHUB_API_KEY
,用于AI分析的GEMINI_API_KEY
,以及至少一个用于推送通知的密钥(BARK_KEY
或PUSHPLUS_TOKEN
)。 - 我可以在一台云服务器上长期运行这个服务吗?可以。这个项目提供了守护进程管理功能(
daemon_manager
),就是为了在服务器上实现稳定可靠的后台运行。你可以使用start
命令启动服务,然后就可以安全地关闭SSH连接了。 - 如何让我关注的股票新闻被分析?你需要编辑
config.py
文件,在US_MARKET_SYMBOLS
这个Python列表中加入你关心的股票代码。例如,如果你想关注英伟达,就可以在列表中加入"NVDA"
。 - 如果我不想用Finnhub作为新闻来源,可以更换吗?可以。项目的核心逻辑是模块化的,你可以参考
MarketPulse/news_fetcher.py
的实现方式,编写自己的新闻获取模块来对接其他新闻源API,然后在主程序中调用即可。