# Spiffy Trader：基于 LLM 和 RSS 新闻的 Kalshi 预测市场模拟交易助手

> Spiffy Trader 是一个本地运行的 Kalshi 预测市场模拟交易助手。它从 RSS 源获取财经和政治新闻，使用嵌入模型匹配相关开放市场，并通过 LLM 做出模拟交易决策。系统支持 Ollama 本地推理和可选的 Gemini 备份，提供完整的模拟投资组合跟踪和可视化仪表板。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-03T22:12:23.000Z
- 最近活动: 2026-04-03T22:21:05.295Z
- 热度: 0.0
- 关键词: Kalshi, 预测市场, LLM, RSS, 模拟交易, Ollama, 新闻分析, 量化交易
- 页面链接: https://www.zingnex.cn/forum/thread/spiffy-trader-llm-rss-kalshi
- Canonical: https://www.zingnex.cn/forum/thread/spiffy-trader-llm-rss-kalshi
- Markdown 来源: ingested_event

---

# Spiffy Trader：基于 LLM 和 RSS 新闻的 Kalshi 预测市场模拟交易助手

## 项目概述

**Spiffy Trader** 是一个本地运行的 Kalshi 预测市场模拟交易助手。它通过 RSS 源持续获取财经和政治新闻，利用大语言模型（LLM）分析新闻与预测市场的关联性，并做出模拟交易决策。该系统完全在本地运行，不执行真实交易，也不需要 Kalshi 交易凭证，是一个理想的市场预测实验和学习工具。

项目的核心创新在于将实时新闻流与预测市场相结合，利用 LLM 的理解能力来评估新闻事件对市场结果的影响，为预测市场参与者提供数据驱动的决策参考。

## 核心功能

### 1. RSS 新闻管道

系统实现了完整的新闻获取和处理流程：

- **多源 RSS 聚合**：支持配置多个 RSS 源（内置种子列表 + 模型可能发现的新源）
- **本地数据库存储**：所有新闻条目存储在本地 CouchDB 中
- **去重和过滤**：自动处理重复新闻和噪声内容

### 2. 智能市场匹配

系统使用语义匹配技术将新闻与相关预测市场关联：

- **嵌入模型匹配**：当 Ollama 可用时，使用嵌入向量计算新闻与市场的语义相似度
- **词重叠回退**：在没有嵌入模型时，使用关键词重叠作为匹配依据
- **相关性评分**：为每个新闻-市场组合计算相关度分数

### 3. LLM 交易决策

系统使用结构化提示引导 LLM 做出交易决策：

#### 主要推理路径（Ollama）

LLM 返回结构化的 JSON 决策，包含：

- **草稿板（Scratchpad）**：新闻与市场匹配度的分析
- **费用和现金考量**：评估交易成本和资金状况
- **相关性和优势评分**：0-100 分的量化评估
  - 相关性（Relevance）：新闻与市场主题的匹配程度
  - 优势（Edge）：新闻是否提供市场未充分定价的信息
- **叙事标签**：识别是同一叙事延续还是新事实
- **交易决策**：交易/观望 + 情绪倾向 + 推理过程

#### 决策逻辑

系统提示强调资本保全和费用考量，LLM 需要权衡：
- 新闻的实质性和时效性
- 市场是否已经消化该信息
- 交易费用对预期收益的影响
- 当前资金状况和风险敞口

#### 备用推理路径（Gemini）

可选配置 Gemini API 作为 Ollama 的备份，在主路径不可用时接管推理任务。

### 4. 模拟交易执行

系统实现了完整的模拟交易环境：

- **价格获取**：从 Kalshi 公开 API 获取当前 YES 合约的中间价
- **费用模拟**：应用估算的 taker 风格费用
- **盈亏跟踪**：实时计算持仓盈亏和已结算收益
- **资金管理**：模拟投资组合价值和现金余额
- **熔断机制**：当组合价值接近归零时自动暂停交易

### 5. 实时数据流（可选）

如果配置 Kalshi 凭证，系统可以：

- 订阅开放持仓和关注市场的 WebSocket 行情
- 实时获取价格更新用于模拟成交
- **注意**：这仅用于获取行情数据，不执行真实交易

## 技术架构

### 系统组件

| 组件 | 技术选型 | 用途 |
|------|----------|------|
| 前端 | React + TypeScript | 用户界面和仪表板 |
| 后端 | Node.js | API 服务和业务逻辑 |
| 数据库 | CouchDB | 本地数据持久化 |
| LLM | Ollama / Gemini | 推理和决策生成 |
| 嵌入 | Ollama | 新闻-市场语义匹配 |
| 行情 | Kalshi API | 市场数据和价格 |

### 数据模型

CouchDB 存储的数据包括：

- 交易记录
- 新闻条目
- 机器人状态
- RSS 源配置
- 缓存的 Kalshi 开放市场
- 市场关注列表

### 参考配置

项目提供了 CouchDB 布局和实体设计的参考 JSON：

- `src/db/local-db-config.json`
- `src/db/local-db-blueprint.json`

## 用户界面

### 仪表板功能

Spiffy Trader 提供了功能丰富的 Web 仪表板：

#### 投资组合概览
- 组合总价值
- 现金余额
- 开放 YES 持仓（按中间价标记）

#### 性能图表
- 可配置时间窗口的回放式性能曲线
- 盈亏趋势可视化

#### 执行历史
- 所有模拟交易记录
- 链接到 Kalshi 网站进行对照

#### 新闻侧边栏
- 情绪分析
- 影响评分（70% 相关性 + 30% 优势的混合）
- 相关性和优势的详细分解

#### 操作按钮
- **强制分析**：立即运行监控扫描
- **全部卖出**：以中间价或结算价关闭所有模拟持仓

### 文档集成

应用内集成了完整的文档，涵盖：
- 费用说明
- 风险提示
- 系统限制

## 安装与配置

### 前提条件

- Node.js
- 运行的 CouchDB 实例
- Ollama（拉取所需的聊天模型）
- 可选：Gemini API 密钥

### 快速开始

```bash
# 安装依赖
npm install

# 复制环境配置
cp .env.example .env.local

# 编辑 .env.local 配置：
# - CouchDB URL 和凭证
# - OLLAMA_MODEL（留空使用自动选择的 Gemma 4）
# - 嵌入模型配置
# - GEMINI_API_KEY（可选）

# 启动应用
npm run dev
```

### 模型自动选择

如果未指定 `OLLAMA_MODEL`，系统会自动选择 Gemma 4 模型：

```
硬件检测 → 内存评估 → 模型选择
```

考虑因素：
- 总内存大小
- NVIDIA 显存（如可用）
- Apple Silicon vs Intel/AMD

运行时检查：
```http
GET /api/system/llm-capacity
```

返回有效模型、硬件快照、推荐和完整的 Gemma 4 分级表。

## Docker 部署

项目提供了完整的 Docker 支持：

### 默认配置（Linux/WSL + NVIDIA）

```bash
# Bash / Git Bash / macOS / Linux
chmod +x docker-compose.sh
./docker-compose.sh --env-file .env.local up --build

# PowerShell
.\docker-compose.ps1 --env-file .env.local up --build
```

### Apple Silicon 配置

使用 `docker-compose.apple.yml`（不支持 GPU）：

```bash
DOCKER_COMPOSE_FILE=docker-compose.apple.yml ./docker-compose.sh up --build
```

### 数据持久化

CouchDB 数据存储在 Docker 命名卷中（非主机绑定挂载），避免 Windows 路径绑定导致的同步问题。

### 备份（可选）

```bash
# 创建备份
docker run --rm -v spiffy-trader_couchdb_data:/data -v "${PWD}:/out" alpine tar czf /out/couchdb-backup.tgz -C /data .
```

## 质量保证

### 验证套件

| 验证项 | 命令 | 通过标准 |
|--------|------|----------|
| TypeScript 编译 | `npm run lint` | `tsc --noEmit` 退出码 0 |
| Vitest 测试 | `npm run test` | 测试文件和用例全部通过 |
| 覆盖率测试 | `npm run test:coverage` | 覆盖率报告生成，退出码 0 |
| 完整验证 | `npm run verify` | 上述全部通过 |

### CI/CD

GitHub Actions 工作流在每次 push 和 PR 时自动运行验证套件。

## 使用场景与价值

### 1. 预测市场学习
对于想要了解预测市场运作机制的新手，Spiffy Trader 提供了一个零风险的学习环境。

### 2. 新闻影响分析
研究人员可以使用该系统分析特定类型的新闻如何影响不同类别的预测市场。

### 3. LLM 决策能力评估
开发者可以评估不同 LLM 模型在金融决策任务上的表现差异。

### 4. 策略回测
通过历史 RSS 数据（需自行导入），可以回测不同配置下的策略表现。

### 5. 本地 AI 实验
展示了如何构建一个完整的、基于本地 LLM 的自动化决策系统。

## 风险与限制

项目文档明确指出了以下重要限制：

1. **模拟交易**：系统不执行真实交易，所有盈亏都是模拟的
2. **模型可能出错**：LLM 的决策并不保证盈利
3. **非金融建议**：UI 仅用于实验和学习，不构成投资建议
4. **费用估算**：实际 Kalshi 费用可能与模拟不同

## 技术亮点

### 结构化 LLM 输出
通过精心设计的提示，强制 LLM 返回结构化的 JSON 决策，便于程序化处理和审计。

### 语义匹配
使用嵌入模型实现新闻与市场的语义匹配，而非简单的关键词匹配。

### 混合评分机制
采用相关性和优势的加权组合（70/30）作为最终影响评分，平衡了新闻匹配度和信息价值。

### 模块化架构
清晰的组件划分（RSS 管道、市场匹配、LLM 决策、模拟执行）便于测试和扩展。

## 总结

Spiffy Trader 是一个设计精良的预测市场实验平台，展示了如何将实时新闻流、LLM 推理和模拟交易相结合。它不仅是一个功能完整的应用，更是一个学习预测市场、实验 LLM 决策能力和构建本地 AI 系统的优秀参考项目。

对于对预测市场、算法交易或 LLM 应用开发感兴趣的开发者和研究人员来说，Spiffy Trader 提供了一个低门槛的实验环境。

---

**项目地址**：https://github.com/MichaelJ43/spiffy-trader

**相关服务**：
- Kalshi：https://kalshi.com
- Ollama：https://ollama.com
