An AI-powered investing assistant for everyday investors
AI helps you stay rational. Decisions are still yours.
通知效果: ./docs/notfication_demo.mp4
对话效果: ./docs/chat_demo.mp4
InvestAI 是一个面向 普通投资者 的 AI 投资辅助分析工具。
它不自动下单,也不替你做投资决策。 InvestAI 只做两件事:
- 基于成熟的交易规则进行分析
- 在关键时刻提醒你可能需要关注的信号
最终是否买入、卖出、继续持有,完全由人来决定。
这个项目的初衷并不是“提高胜率”,而是帮助投资者在真实市场中 更稳定地执行一套长期有效的投资纪律。
很多投资问题,并不是因为“不会选股”,而是因为:
- 买入时太冲动
- 下跌时扛不住
- 盈利时拿不住
- 事后才发现“其实当时已经偏离了原本的计划”
规则本身并不复杂,难的是长期、冷静、一致地执行。
InvestAI 的角色,是在你情绪最容易介入的时候, 把规则摆在你面前,提醒你现在发生了什么。
InvestAI 参考并吸收了如 《海龟交易法则》 等成熟的交易思想,但做了一个关键取舍:
规则交给 AI 执行,决策权留给人。
核心理念包括:
- 不追求每一次判断都正确
- 接受小亏损作为正常成本
- 严格区分「信号」和「决策」
- 所有分析结果必须可解释、可回溯
AI 负责 提醒你规则是否被触发, 而不是告诉你“现在一定要买 / 一定要卖”。
对用户关注的股票,InvestAI 会基于既定规则进行持续分析,并输出:
- 是否出现买入参考信号
- 是否触发止损或风险提醒
- 当前趋势是否仍然有效
- 是否更适合继续观望
这些结果本质上都是在回答一个问题:
如果严格按这套规则,现在该怎么“看”这只股票?
为了避免误解,InvestAI 刻意不提供:
- ❌ 自动交易或代下单
- ❌ “必涨股”“强烈买入建议”
- ❌ 短线预测或高频信号
- ❌ 黑盒评分或不可解释结论
它不是一个“荐股工具”, 而是一个 规则执行与提醒工具。
很多投资者已经会看指标,但问题在于:
- 指标太多,不知道该信谁
- 不同周期给出相互矛盾的信号
- 情绪介入后,选择性忽略不利信息
InvestAI 的作用是:
- 把多条规则统一为一套可解释的分析流程
- 始终按同一逻辑输出结论
- 在你最容易忽略风险或过度乐观时,给出提醒
它更像一个冷静、不会和你吵架的投资提醒助手。
InvestAI 并不是随意“感觉分析”,而是围绕一套明确、可配置的交易规则运行。
下面是一个示例趋势策略,用于说明 InvestAI 是如何生成买入 / 卖出参考信号的。
⚠️ 这是示例策略规则,并非唯一或最优方案 所有参数都可以根据个人风格调整
在分析任何个股之前,InvestAI 会先判断整体市场环境。
因为在多数情况下:
大盘决定成功率,个股决定收益空间。
market:
index: "沪深300" # 使用的市场指数
trend_ma_window: 50 # 大盘趋势判断均线
pullback_threshold: 0.02 # 大盘允许的回调幅度(2%)
market_rsi:
min: 45
max: 70策略含义:
- 使用核心市场指数(如沪深 300)判断整体趋势方向
- 当指数运行在中期趋势之上,视为「顺风环境」
- 小幅回调(≤2%)仍允许个股策略生效
- 若大盘跌破趋势结构或 RSI 过低,则进入谨慎状态
👉 AI 会先给出一个背景判断:
当前市场是在顺风、震荡,还是风险偏高的阶段?
trend:
pullback_threshold: 0.03 # 回调幅度(3%)
resistance_window: 20 # 阻力位计算窗口
breakout_buffer: 0.005 # 突破缓冲(0.5%)策略含义:
- 基于 ma20 和 ma60 分析股票的趋势
- 等待价格出现 可控幅度的回调(约 3%),避免追高
- 使用最近 20 个交易日的价格区间来判断关键阻力位
- 只有当价格 有效突破阻力位(并留出缓冲)时,才认为趋势可能继续
👉 AI 会判断:
这是趋势中的正常回调, 还是在大盘走弱背景下的“被动下跌”?
volume:
ma_window: 20
min_ratio: 1.0策略含义:
- 使用 20 日平均成交量作为参考
- 突破或反弹时,成交量需 不低于均量水平
- 在大盘偏弱时,对成交量要求会更加严格
👉 AI 会提醒你:
在当前市场环境下, 这次上涨是否真的有资金愿意参与?
rsi:
min: 40
max: 65策略含义:
- 不在情绪极端区间操作
- RSI 过低:趋势可能已经转弱
- RSI 过高:在弱市中尤其容易回撤
👉 AI 会结合大盘状态判断:
这是健康的趋势动量, 还是市场情绪推动下的短期波动?
cci:
min: -100
max: 100策略含义:
- 判断价格是否严重偏离均值
- 过滤掉短期过热或恐慌的阶段
- 在市场不稳定时,更倾向于保守解读信号
👉 AI 会告诉你:
在当前市场背景下, 这个位置更像是机会,还是情绪噪音?
当你把一只股票加入关注列表后,InvestAI 会:
- 先判断大盘所处的市场环境
- 再评估个股是否满足趋势与量价条件
- 结合市场环境调整信号可信度
- 生成可解释、带风险提示的分析结果
- 在关键节点提醒你关注
示例提醒可能是:
-「个股趋势结构仍在,但大盘处于震荡期,成功率低于顺风阶段」 -「价格回调至策略区间,量能达标,但市场风险偏高,建议谨慎观察」 -「趋势与市场环境共振,属于相对有利的结构」
📌 InvestAI 提供的是“规则 + 环境下的参考判断”,不是操作指令。
- ✔ 长期投资或趋势交易的普通投资者
- ✔ 希望减少情绪化操作的人
- ✔ 已有基本投资认知,但执行不稳定的人
不适合:
- ❌ 寻找“快进快出”信号的人
- ❌ 希望完全交给程序交易的人
- ❌ 专业量化或高频交易场景
InvestAI 可以通过 Docker 一键部署,无需复杂环境配置。 启动后,它会以两种方式协助你执行投资规则:
- 后台定时监控:替你持续盯规则、发提醒
- 实时对话分析:通过 AI 对话随时查看状态、调整策略
适合「不想盯盘,但希望规则持续执行」的场景。
- 按设定周期,自动分析关注的股票列表
- 基于既定规则判断趋势、回调、风险状态
- 通过 Slack / 飞书 / 企业微信 推送提醒
- 即使你不在线,也能在关键节点收到提示
你只需要维护规则和关注列表,剩下的交给系统。
适合「想随时看看现在规则怎么想」的场景。
通过 Cherry Studio + MCP,你可以用自然语言:
- 查看当前关注的股票列表
- 分析某一只股票的当前规则状态
- 解释当前使用的策略逻辑
- 根据你的投资风格,调整策略参数
所有交互都围绕规则的解释与状态描述展开,而不是操作指令。
请确保已安装:
- Docker
- Cherry Studio(提供 GUI 界面)
git clone https://github.com/flingjie/InvestAI.git
cd InvestAIcp .env.example .env编辑 .env:
- 配置你使用的大模型 API Key(用于对话与策略解读)
-
invest_ai.yaml- 定时任务执行周期
- 通知渠道配置(Slack / 飞书 / 企业微信)
-
watchlist.json- 维护你关注的股票列表(code + name)
进入 docker 目录并启动:
cd docker
docker-compose up -d检查运行状态:
docker ps正常情况下可以看到 InvestAI 服务正在运行:
通知示例(Slack):
打开 Cherry Studio:
- 点击 设置 → MCP → 添加
- 填写信息:
- 名称:
InvestAI(可自定义) - 类型:可流式传输的 HTTP
- URL:
http://127.0.0.1:8888/mcp - 请求头:
Content-Type=application/json
Accept=application/json, text/event-stream
- 返回首页 → 左侧点击 添加助手
- 选择 默认助手
- 添加后,右键助手 → 编辑助手
- 名称示例:
投资伴(可自定义) - 提示词如下(建议原样使用):
👉 点击展开提示词
你是 **InvestAI 助手**,像一个**经验丰富、冷静理性的老手投资伙伴**。
你的任务是:
> 告诉用户规则系统现在看到的市场和个股状态,用自然、易懂的语言。
> 你不会下单,不会预测涨跌,也不提供投资建议,只是用你的经验和规则观察帮用户理清当前情况。
你必须通过 **MCP 工具** 获取信息,尤其是股票分析类或关注列表操作,**不允许大模型凭自身知识或经验自行判断**。
输出风格应像在跟一个普通投资者讲解:
* 语气冷静、客观,但带点经验老手的口吻
* 用自然语言解释规则触发、趋势、回调、突破、量能和动量情况
* 让用户明白:规则在说什么、市场在走哪一步,而决策权永远在用户手中
### 输入校验要求
1. **分析股票**:必须提供股票 code,例如 “分析 000001”,并调用 MCP `analyze` 工具获取结果。
* 如果用户没有输入 code,直接返回提示:
> “请提供股票代码,才能进行分析。”
2. **添加到关注列表**:必须提供股票 code,并调用 MCP `add_watchlist` 工具。
* 如果用户没有输入 code,直接返回提示:
> “请提供股票代码,才能添加到关注列表。”
3. **显示关注列表**:调用 MCP `get_watchlist` 工具,并列出每只股票的 **名称和 code**
4. **获取或解释策略**:调用`explain_strategy_tool`取结果, 按工具返回内容进行输出。
5. **调整或编辑策略**:调用`edit_strategy_tool`取更新建议,按工具返回内容进行输出。
### 输出规范
* 输出返回的文本内容即可
* 每条信息用自然语言描述,不出现价格、指标或买卖建议
* 当用户意图不明确时,可澄清需要分析、关注、获取列表或调整策略
### 风格示例
* “分析 000001” →
> “老实说,这只股票趋势还不算完全明朗,量能和动量也没完全配合,目前像是在消化阶段。”
* “分析” →
> “请提供股票代码,才能进行分析。”
* “添加关注列表 000001” →
> “平安银行 (000001) 已添加到你的关注列表。”
* “添加关注列表” →
> “请提供股票代码,才能添加到关注列表。”
* “显示关注列表” →
> “你目前关注的几只股票,我帮你列出来了:平安银行 (000001)、贵州茅台 (600519)、海康威视 (002415)。”
* “解释策略” →
> “这套策略偏中周期,主要看趋势和回调突破,并结合量价动量过滤,提醒你当前规则触发情况。”
填写完成后点击 保存。
- 切换到 MCP 页面
- 启用 InvestAI
- 点击右上角关闭接口窗口
选择刚创建的助手即可开始对话。 当前测试模型为 qwen-plus,效果稳定,其他模型可自行尝试。
输入:
当前关注列表
输入:
分析 000001
输入:
解释策略
输入:
我是一个激进的交易者,该如何调整策略
InvestAI 仅提供基于规则的投资分析与提醒,不构成任何投资建议。 所有交易决策均由用户自行判断并承担风险。












