初始化ETF监控项目
- 创建项目目录结构 - 添加README.md项目说明 - 添加需求文档REQUIREMENTS.md - 添加技术调研计划RESEARCH_PLAN.md - 项目准备进入技术调研阶段
This commit is contained in:
80
README.md
Normal file
80
README.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
# ETF监控服务 (ETF Monitor Service)
|
||||||
|
|
||||||
|
## 项目概述
|
||||||
|
|
||||||
|
一个智能的ETF监控系统,用于监控指定ETF的价格变化,分析技术指标,并在关键节点提供买卖点提醒。
|
||||||
|
|
||||||
|
## 核心功能
|
||||||
|
|
||||||
|
### 已规划功能
|
||||||
|
- [ ] ETF列表管理(添加/删除/修改)
|
||||||
|
- [ ] 多数据源支持(A股、港股、美股ETF)
|
||||||
|
- [ ] 实时/定时数据获取
|
||||||
|
- [ ] 技术指标分析(MA、RSI、MACD、布林带等)
|
||||||
|
- [ ] 买卖信号生成
|
||||||
|
- [ ] 多渠道提醒(邮件、消息等)
|
||||||
|
- [ ] 历史数据回测
|
||||||
|
- [ ] Web管理界面
|
||||||
|
|
||||||
|
### 第一阶段目标 (MVP)
|
||||||
|
1. 单个ETF的每日数据获取
|
||||||
|
2. 基础技术指标计算(移动平均线)
|
||||||
|
3. 邮件提醒功能
|
||||||
|
4. 命令行配置界面
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
etf-monitor/
|
||||||
|
├── docs/ # 项目文档
|
||||||
|
├── research/ # 研究资料和评估报告
|
||||||
|
├── src/ # 源代码
|
||||||
|
├── tests/ # 测试代码
|
||||||
|
├── data/ # 数据文件
|
||||||
|
└── README.md # 项目说明
|
||||||
|
```
|
||||||
|
|
||||||
|
## 技术栈考虑
|
||||||
|
|
||||||
|
### 后端选项
|
||||||
|
- **Python**: 数据分析优势,丰富的金融库(pandas, numpy, ta-lib)
|
||||||
|
- **Node.js**: 异步IO优势,适合实时数据获取
|
||||||
|
|
||||||
|
### 数据源
|
||||||
|
- 新浪财经API
|
||||||
|
- 腾讯财经API
|
||||||
|
- Yahoo Finance API
|
||||||
|
- Alpha Vantage API
|
||||||
|
|
||||||
|
### 数据库
|
||||||
|
- SQLite (轻量级,适合初期)
|
||||||
|
- PostgreSQL (功能完整,适合后期)
|
||||||
|
|
||||||
|
## 开发计划
|
||||||
|
|
||||||
|
### 阶段1: 需求调研和技术评估 (当前阶段)
|
||||||
|
- 收集相关开源项目参考
|
||||||
|
- 评估不同预测算法
|
||||||
|
- 确定技术栈和数据源
|
||||||
|
|
||||||
|
### 阶段2: MVP开发 (2-3周)
|
||||||
|
- 基础数据获取和存储
|
||||||
|
- 简单技术指标计算
|
||||||
|
- 邮件提醒功能
|
||||||
|
|
||||||
|
### 阶段3: 功能完善 (3-4周)
|
||||||
|
- 更多技术指标
|
||||||
|
- Web管理界面
|
||||||
|
- 多ETF支持
|
||||||
|
|
||||||
|
## 使用说明
|
||||||
|
|
||||||
|
(待补充)
|
||||||
|
|
||||||
|
## 贡献指南
|
||||||
|
|
||||||
|
(待补充)
|
||||||
|
|
||||||
|
## 许可证
|
||||||
|
|
||||||
|
(待补充)
|
||||||
178
docs/REQUIREMENTS.md
Normal file
178
docs/REQUIREMENTS.md
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
# ETF监控服务 - 需求文档
|
||||||
|
|
||||||
|
## 1. 项目背景
|
||||||
|
|
||||||
|
用户需要一款ETF监控工具,能够:
|
||||||
|
1. 监控关注的ETF
|
||||||
|
2. 每天自动分析
|
||||||
|
3. 在关键节点提供买卖点提醒
|
||||||
|
4. 通过邮件或消息通知
|
||||||
|
|
||||||
|
## 2. 用户需求
|
||||||
|
|
||||||
|
### 2.1 功能需求
|
||||||
|
|
||||||
|
#### 核心功能
|
||||||
|
1. **ETF管理**
|
||||||
|
- 添加/删除关注的ETF
|
||||||
|
- 设置监控参数(如提醒阈值)
|
||||||
|
- 查看ETF基本信息
|
||||||
|
|
||||||
|
2. **数据监控**
|
||||||
|
- 定时获取ETF数据(价格、成交量等)
|
||||||
|
- 支持多个数据源
|
||||||
|
- 数据质量验证
|
||||||
|
|
||||||
|
3. **技术分析**
|
||||||
|
- 计算常用技术指标
|
||||||
|
- 识别趋势和关键点位
|
||||||
|
- 生成买卖信号
|
||||||
|
|
||||||
|
4. **提醒通知**
|
||||||
|
- 邮件提醒(主要渠道)
|
||||||
|
- 可扩展其他通知方式
|
||||||
|
- 提醒内容定制
|
||||||
|
|
||||||
|
#### 扩展功能
|
||||||
|
1. **历史回测** - 测试策略有效性
|
||||||
|
2. **多策略支持** - 不同投资策略
|
||||||
|
3. **报表生成** - 定期投资报告
|
||||||
|
4. **移动端适配** - 手机查看
|
||||||
|
|
||||||
|
### 2.2 非功能需求
|
||||||
|
|
||||||
|
1. **性能要求**
|
||||||
|
- 数据获取延迟 < 5秒
|
||||||
|
- 每日分析时间 < 10分钟
|
||||||
|
- 支持同时监控50+个ETF
|
||||||
|
|
||||||
|
2. **可靠性**
|
||||||
|
- 系统可用性 > 99%
|
||||||
|
- 数据准确性 > 95%
|
||||||
|
- 错误自动恢复
|
||||||
|
|
||||||
|
3. **安全性**
|
||||||
|
- 用户数据加密存储
|
||||||
|
- API密钥安全管理
|
||||||
|
- 操作日志记录
|
||||||
|
|
||||||
|
4. **易用性**
|
||||||
|
- 简单配置界面
|
||||||
|
- 清晰的提醒内容
|
||||||
|
- 详细的帮助文档
|
||||||
|
|
||||||
|
## 3. 用户场景
|
||||||
|
|
||||||
|
### 场景1: 日常监控
|
||||||
|
```
|
||||||
|
用户:设置关注5个ETF
|
||||||
|
系统:每天收盘后自动分析
|
||||||
|
输出:邮件提醒,包含:
|
||||||
|
- 今日价格变化
|
||||||
|
- 技术指标状态
|
||||||
|
- 买卖建议(如有)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景2: 关键点位提醒
|
||||||
|
```
|
||||||
|
条件:ETF价格突破关键阻力位
|
||||||
|
系统:实时检测并发送提醒
|
||||||
|
输出:紧急邮件,包含:
|
||||||
|
- 突破的具体点位
|
||||||
|
- 建议操作
|
||||||
|
- 历史参考数据
|
||||||
|
```
|
||||||
|
|
||||||
|
### 场景3: 策略回测
|
||||||
|
```
|
||||||
|
用户:想测试新的交易策略
|
||||||
|
系统:使用历史数据模拟
|
||||||
|
输出:回测报告,包含:
|
||||||
|
- 收益率曲线
|
||||||
|
- 最大回撤
|
||||||
|
- 胜率统计
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4. 数据需求
|
||||||
|
|
||||||
|
### 4.1 数据内容
|
||||||
|
1. **基础数据**
|
||||||
|
- 实时价格
|
||||||
|
- 成交量
|
||||||
|
- 涨跌幅
|
||||||
|
- 市值
|
||||||
|
|
||||||
|
2. **历史数据**
|
||||||
|
- 日K线数据(开盘、收盘、最高、最低)
|
||||||
|
- 分钟级数据(可选)
|
||||||
|
- 财务指标(PE、PB等)
|
||||||
|
|
||||||
|
3. **衍生数据**
|
||||||
|
- 技术指标值
|
||||||
|
- 趋势判断结果
|
||||||
|
- 风险评分
|
||||||
|
|
||||||
|
### 4.2 数据频率
|
||||||
|
- 实时数据:交易时间每5-10分钟更新
|
||||||
|
- 日线数据:每天收盘后更新
|
||||||
|
- 历史数据:按需加载
|
||||||
|
|
||||||
|
## 5. 技术约束
|
||||||
|
|
||||||
|
### 5.1 开发约束
|
||||||
|
- 开发周期:3个月(分阶段)
|
||||||
|
- 团队规模:单人开发
|
||||||
|
- 技术栈:选择成熟稳定的技术
|
||||||
|
|
||||||
|
### 5.2 部署约束
|
||||||
|
- 运行环境:Linux服务器
|
||||||
|
- 存储需求:初期<10GB
|
||||||
|
- 网络要求:稳定的互联网连接
|
||||||
|
|
||||||
|
### 5.3 合规约束
|
||||||
|
- 免责声明:所有建议仅供参考
|
||||||
|
- 数据使用:遵守数据源API条款
|
||||||
|
- 用户隐私:保护用户配置信息
|
||||||
|
|
||||||
|
## 6. 成功标准
|
||||||
|
|
||||||
|
### 第一阶段成功标准
|
||||||
|
1. ✓ 能够监控1个ETF
|
||||||
|
2. ✓ 每天自动发送邮件报告
|
||||||
|
3. ✓ 包含基础技术分析
|
||||||
|
4. ✓ 系统稳定运行1周
|
||||||
|
|
||||||
|
### 最终成功标准
|
||||||
|
1. ✓ 支持50+个ETF同时监控
|
||||||
|
2. ✓ 提供准确的买卖点提醒
|
||||||
|
3. ✓ 用户满意度 > 80%
|
||||||
|
4. ✓ 系统无故障运行1个月
|
||||||
|
|
||||||
|
## 7. 风险评估
|
||||||
|
|
||||||
|
### 技术风险
|
||||||
|
1. **数据源不稳定** - 多数据源备份
|
||||||
|
2. **分析算法不准确** - 持续优化和验证
|
||||||
|
3. **系统性能问题** - 压力测试和优化
|
||||||
|
|
||||||
|
### 业务风险
|
||||||
|
1. **投资建议风险** - 明确免责声明
|
||||||
|
2. **用户期望管理** - 明确功能边界
|
||||||
|
3. **市场变化风险** - 策略需要适应市场
|
||||||
|
|
||||||
|
## 8. 后续计划
|
||||||
|
|
||||||
|
### 短期计划 (1-2周)
|
||||||
|
- 技术调研和选型
|
||||||
|
- 原型设计
|
||||||
|
- 数据源测试
|
||||||
|
|
||||||
|
### 中期计划 (3-8周)
|
||||||
|
- MVP开发
|
||||||
|
- 基础功能实现
|
||||||
|
- 初步测试
|
||||||
|
|
||||||
|
### 长期计划 (9-12周)
|
||||||
|
- 功能完善
|
||||||
|
- 性能优化
|
||||||
|
- 用户反馈迭代
|
||||||
114
research/RESEARCH_PLAN.md
Normal file
114
research/RESEARCH_PLAN.md
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
# ETF监控服务 - 技术调研计划
|
||||||
|
|
||||||
|
## 调研目标
|
||||||
|
|
||||||
|
1. 了解现有开源股票/ETF监控项目
|
||||||
|
2. 评估不同的预测和分析算法
|
||||||
|
3. 确定适合的技术栈和数据源
|
||||||
|
4. 收集可复用的代码和思路
|
||||||
|
|
||||||
|
## 调研方向
|
||||||
|
|
||||||
|
### 1. 开源项目调研
|
||||||
|
- GitHub上的相关项目
|
||||||
|
- 技术架构分析
|
||||||
|
- 功能特点比较
|
||||||
|
- 可复用组件识别
|
||||||
|
|
||||||
|
### 2. 算法调研
|
||||||
|
- 技术指标算法(TA-Lib等)
|
||||||
|
- 机器学习预测算法
|
||||||
|
- 时间序列分析
|
||||||
|
- 风险管理算法
|
||||||
|
|
||||||
|
### 3. 数据源调研
|
||||||
|
- 免费金融数据API
|
||||||
|
- 数据质量和稳定性
|
||||||
|
- 访问频率限制
|
||||||
|
- 数据格式和接口
|
||||||
|
|
||||||
|
### 4. 技术栈调研
|
||||||
|
- 后端框架选择
|
||||||
|
- 数据库选择
|
||||||
|
- 任务调度方案
|
||||||
|
- 消息通知方案
|
||||||
|
|
||||||
|
## 调研方法
|
||||||
|
|
||||||
|
### 1. GitHub搜索关键词
|
||||||
|
```
|
||||||
|
- stock monitor
|
||||||
|
- etf tracker
|
||||||
|
- financial analysis
|
||||||
|
- trading bot
|
||||||
|
- quantitative finance
|
||||||
|
- technical analysis
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 算法库评估
|
||||||
|
```
|
||||||
|
- TA-Lib (技术分析库)
|
||||||
|
- pandas (数据分析)
|
||||||
|
- scikit-learn (机器学习)
|
||||||
|
- statsmodels (统计模型)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 数据源测试
|
||||||
|
```
|
||||||
|
- 新浪财经API
|
||||||
|
- 腾讯财经API
|
||||||
|
- Yahoo Finance
|
||||||
|
- Alpha Vantage
|
||||||
|
- 聚宽/JQData
|
||||||
|
```
|
||||||
|
|
||||||
|
## 输出文档
|
||||||
|
|
||||||
|
### 1. 开源项目分析报告
|
||||||
|
- 项目列表和特点
|
||||||
|
- 技术架构对比
|
||||||
|
- 优缺点分析
|
||||||
|
- 可借鉴点
|
||||||
|
|
||||||
|
### 2. 算法评估报告
|
||||||
|
- 算法原理说明
|
||||||
|
- 适用场景分析
|
||||||
|
- 实现复杂度评估
|
||||||
|
- 准确性测试结果
|
||||||
|
|
||||||
|
### 3. 技术选型建议
|
||||||
|
- 推荐技术栈
|
||||||
|
- 架构设计建议
|
||||||
|
- 开发路线图
|
||||||
|
- 风险评估
|
||||||
|
|
||||||
|
## 时间安排
|
||||||
|
|
||||||
|
### 第1天:开源项目调研
|
||||||
|
- 搜索和收集相关项目
|
||||||
|
- 初步分析和分类
|
||||||
|
|
||||||
|
### 第2天:深度分析
|
||||||
|
- 选择3-5个重点项目深度分析
|
||||||
|
- 记录技术细节
|
||||||
|
|
||||||
|
### 第3天:算法调研
|
||||||
|
- 收集常用预测算法
|
||||||
|
- 评估算法适用性
|
||||||
|
|
||||||
|
### 第4天:数据源测试
|
||||||
|
- 测试不同数据源API
|
||||||
|
- 评估数据质量
|
||||||
|
|
||||||
|
### 第5天:综合报告
|
||||||
|
- 整理调研结果
|
||||||
|
- 给出技术选型建议
|
||||||
|
- 制定开发计划
|
||||||
|
|
||||||
|
## 成功标准
|
||||||
|
|
||||||
|
1. ✓ 收集至少10个相关开源项目
|
||||||
|
2. ✓ 深度分析3个以上项目
|
||||||
|
3. ✓ 测试2个以上数据源
|
||||||
|
4. ✓ 完成完整的技术选型报告
|
||||||
|
5. ✓ 给出明确的开发建议
|
||||||
Reference in New Issue
Block a user