be9542cf9d85726a6cd6bde90f1a2e2d22dd9eaf
- 添加 feature_list.json: 6个功能,5个已完成 - 添加 PROGRESS.md: 进度跟踪文件 - 添加 init.sh: 一键启动开发环境 - 添加 scripts/health-check.sh: 健康检查脚本 - 添加 scripts/e2e-test.sh: 端到端测试脚本 - 添加 .gitignore: 忽略不需要的文件 - 更新 README.md: 添加 PERDAS 增强版使用说明 核心特点: - 强制增量开发(每次一个功能) - 强制端到端测试 - 强制截图证据 - 状态持久化 - 清晰的交接机制 遵循 Anthropic 长期运行代理研究最佳实践
📈 股票数据分析工具
一个基于 Go + SQLite + 免费API的股票数据分析工具,内置网页界面。
🎯 开发模式 (PERDAS 增强版)
本项目采用 PERDAS (Permanently Executing Development Agent System) 增强版架构进行开发。
核心特点
✅ 增量开发 - 每次只实现一个功能 ✅ 强制测试 - 所有功能必须通过端到端测试 ✅ 可追溯 - 所有修改都有 Git 历史 ✅ 状态持久化 - 会话间保持工作连贯
工作流程
- 初始化 - 运行
init.sh启动环境 - 健康检查 - 运行
scripts/health-check.sh验证环境 - 选择功能 - 查看
feature_list.json了解任务 - 开发功能 - 按照步骤实现功能
- 端到端测试 - 运行
scripts/e2e-test.sh验证 - 截图证据 - 保存测试截图到
tests/screenshots/ - 提交代码 - Git commit 并更新
feature_list.json
强约束指令
绝对禁止删除或修改测试用例
- ❌ 不允许删除或修改测试用例
- ❌ 不允许删除或修改其他功能的代码
- ❌ 不允许修改
feature_list.json中除passes字段外的内容 - ❌ 不允许未通过端到端测试就标记完成
- ❌ 不允许未保存截图证据就标记完成
开发工作流
每次会话开始时:
# 1. 确认工作目录
pwd # 应该是 /root/.openclaw/workspace/stock-tool
# 2. 启动开发环境
./init.sh
# 3. 验证环境健康状态
./scripts/health-check.sh
# 4. 运行端到端测试
./scripts/e2e-test.sh
# 5. 查看功能清单
cat feature_list.json
# 6. 查看进度
cat PROGRESS.md
每次开发完成时:
# 1. 更新进度文件
vim PROGRESS.md
# 2. 更新 feature_list.json(仅修改 passes 字段)
jq '.features[] | select(.id=="feat-001") | .passes = true' feature_list.json > tmp.json && mv tmp.json feature_list.json
# 3. Git commit
git add .
git commit -m "feat: 完成 feat-001 股票列表展示功能"
# 4. 查看提交历史
git log --oneline -5
🚀 快速开始(标准模式)
环境要求
- Go 1.21+
- SQLite3
安装依赖
cd stock-tool
go mod download
运行程序
go run main.go
访问网页
打开浏览器访问: http://localhost:8080
📊 功能特性
1. 股票列表展示
- 展示所有已添加的股票
- 实时价格、涨跌幅
- 基本面指标(市值、PE、ROE、负债率)
2. 股票搜索
- 支持按股票代码搜索
- 支持按公司名称搜索
3. 股票详情
- K线图:展示100天历史走势
- 技术指标:RSI、MACD、均线系统
- 基本面数据:收入、利润、ROE等
4. 数据刷新
- 一键刷新股票数据
- 自动更新数据库
🗄️ 数据库结构
stocks 表
CREATE TABLE stocks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
symbol TEXT UNIQUE,
name TEXT,
current_price REAL,
change REAL,
change_percent REAL,
market_cap TEXT,
pe_ratio REAL,
roe REAL,
debt_ratio REAL,
update_time TEXT
);
klines 表
CREATE TABLE klines (
id INTEGER PRIMARY KEY AUTOINCREMENT,
symbol TEXT,
date TEXT,
open REAL,
high REAL,
low REAL,
close REAL,
volume INTEGER,
FOREIGN KEY(symbol) REFERENCES stocks(symbol)
);
indicators 表
CREATE TABLE indicators (
id INTEGER PRIMARY KEY AUTOINCREMENT,
symbol TEXT,
date TEXT,
rsi REAL,
macd REAL,
macd_signal REAL,
ma5 REAL,
ma10 REAL,
ma20 REAL,
update_time TEXT,
FOREIGN KEY(symbol) REFERENCES stocks(symbol)
);
financials 表
CREATE TABLE financials (
id INTEGER PRIMARY KEY AUTOINCREMENT,
symbol TEXT UNIQUE,
revenue REAL,
profit REAL,
roe REAL,
debt_to_equity REAL,
update_time TEXT
);
📡 API接口
获取股票列表
GET /api/stocks
获取股票详情
GET /api/stock/:symbol
获取K线数据
GET /api/stock/:symbol/kline
获取技术指标
GET /api/stock/:symbol/indicators
获取财务数据
GET /api/stock/:symbol/financials
搜索股票
GET /api/search?q=关键词
刷新股票数据
GET /api/refresh/:symbol
🔌 支持的API
1. Yahoo Finance (yfinance)
- 免费额度: 无限制
- 数据: 历史K线、实时报价、财务报表
- 使用: 直接通过yfinance库获取
2. Alpha Vantage
- 免费额度: 25次请求/天
- 数据: 技术指标、实时数据
- 使用: 补充技术分析数据
3. Finnhub
- 免费额度: 60次请求/月
- 数据: 基本面、新闻、经济指标
- 使用: 财报数据分析
🎯 选股策略示例
技术分析选股
# 筛选条件示例
1. MACD金叉(短线上穿长线)
2. RSI < 30(超卖)
3. MA5 > MA10 > MA20(多头排列)
4. 换手率 > 5%
基本面选股
# 筛选条件示例
1. ROE > 15%
2. 负债率 < 60%
3. PE < 30
4. 利润增长率 > 10%
📝 使用建议
初学者
- 先使用模拟数据体验界面
- 学习如何读取和展示数据
- 理解基本的API调用
进阶用户
- 集成真实的yfinance API
- 添加更多技术指标计算
- 实现选股策略自动化
专业用户
- 接入真实的历史数据源
- 添加回测功能
- 实现实盘交易接口
⚠️ 风险提示
股市有风险,投资需谨慎
本工具仅用于技术学习和数据分析,不构成任何投资建议。 所有数据均为模拟数据,实际使用时请接入真实API源。
🛠️ 开发计划
- 集成真实的yfinance API
- 添加更多技术指标(布林带、KDJ等)
- 实现选股策略自动化
- 添加回测功能
- 支持更多数据源
- 移动端适配
- 深色/浅色主题切换
📄 许可证
MIT License
🤝 贡献
欢迎提交 Issue 和 Pull Request!
开发者: Geliebte 更新时间: 2026-02-18
Description
Languages
Go
49.6%
HTML
42.9%
Shell
7.5%