# BaseMoneyPlus **Repository Path**: CloudsSeas/BaseMoneyPlus ## Basic Information - **Project Name**: BaseMoneyPlus - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-14 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基金管家系统 一个自动化的基金收益管理系统,能够每日监控你的基金持仓,计算收益,分析趋势,预测未来走势,并通过微信、企业微信或钉钉发送报告。 ## ⚡ 快速开始 **重要提示:** 在 Windows 上,请使用 `py` 命令而不是 `python` 命令运行脚本。 ```bash # 运行测试脚本 py test.py # 运行主程序 py main.py # 或直接双击 run.bat ``` ## 功能特性 ✨ **核心功能** - 📊 实时获取基金净值数据 - 💰 自动计算收益和涨跌幅 - 📈 技术分析(移动平均、趋势判断) - 🔮 未来趋势预测(机器学习算法) - 📱 多平台消息推送(微信、企业微信、钉钉) - ⏰ 定时任务自动发送报告 🆕 **v2.4 重大更新!🎉** - ⚡ **批量添加超简单** - 支持空格/逗号混合,从文件导入,格式自动识别 - 📊 **报告自动显示** - 分析完成即可查看,无需额外点击,一键复制 - 🎨 **界面全新优化** - 主要功能突出,快捷操作区,一目了然 - ❓ **帮助和免责** - 完整的帮助系统,风险提示,安全可靠 **v2.3.1 优化** - 🎯 **位置分析优化** - 中文描述+具体数值,一目了然 - 💸 **资金流向分析** - 规模变化趋势,资金流入流出 - 🔥 **板块热点分析** - 市场热度判断,板块识别 - 📊 **更通俗的表述** - 不再有 `medium`,全是人话 **v2.3 功能** - 📊 **完整分析报告** - 集成 main.py 完整功能到 GUI - 📱 **可选微信推送** - 分析完成自动推送到微信 - 💾 **自动保存报告** - 保存文本报告,保留历史记录 - 🔄 **实时进度显示** - 可视化分析进度,实时日志输出 - 🎯 **灵活配置选项** - 自由选择分析内容和输出方式 **v2.2 重大更新** - 🎨 **图形化界面(GUI)** - 全新可视化管理体验 - 📦 **批量操作功能** - 批量添加/删除基金,效率提升 - 🗑️ **清除配置功能** - 快速清空数据,重新开始 - 📊 **集成所有功能** - 配置管理 + 均线分析 + 报告导出 **均线分析系统(v2.1)** - 📉 多周期均线分析(月线/季线/年线/长期均线) - 🎯 智能买卖建议(基于偏离度分析) - 📅 精确收益计算(支持设置投入日期) - 👀 观察基金功能(未投入基金的跟踪分析) - 📊 多格式报告导出(HTML/TXT/Markdown/JSON) - 🔧 配置管理工具(命令行) - 🔄 多API备用(增强数据获取稳定性) ## 基金列表 系统默认监控以下基金: - 017811 - 002963 - 020640 - 002112 - 021095 ## 安装 ### 1. 克隆项目 ```bash git clone cd BaseMoneyPlus ``` ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` ### 3. 配置 编辑 `config.py` 文件,配置以下内容: - **基金代码和持仓信息**:修改 `FUND_CODES` 和持仓金额 - **定时任务时间**:修改 `SCHEDULE_TIME` - **消息推送配置**:配置推送服务的KEY 或者创建 `.env` 文件: ```env # 服务器酱(微信推送) SERVER_CHAN_KEY=your_server_chan_key # 企业微信Webhook WECHAT_WEBHOOK=your_wechat_webhook # 钉钉Webhook DINGTALK_WEBHOOK=your_dingtalk_webhook ``` ### 4. 配置消息推送 #### 微信推送(Server酱) 1. 访问 http://sc.ftqq.com/3.version 2. 使用GitHub账号登录 3. 获取SCKEY 4. 在 `.env` 中配置 `SERVER_CHAN_KEY` #### 企业微信推送 1. 在企业微信中创建群聊 2. 添加群机器人 3. 获取Webhook地址 4. 在 `.env` 中配置 `WECHAT_WEBHOOK` #### 钉钉推送 1. 在钉钉中创建群聊 2. 添加自定义机器人 3. 获取Webhook地址 4. 在 `.env` 中配置 `DINGTALK_WEBHOOK` ## 使用方法 ### 运行测试 ```bash py test.py # 或者 python test.py # 如果在Linux/Mac上 ``` ### 🎨 图形化界面(v2.4 强烈推荐!) **🆕 全新优化!更简单、更直观、更安全!** ```bash # v2.4 新版本(推荐) run_gui_v2.4.bat # 或命令行运行 py gui_manager_v2.4.py ``` **v2.4 核心改进**: - ⚡ **批量添加超简单** - 空格/逗号都可以,支持文件导入 - 📊 **报告自动显示** - 分析完成即可查看,无需额外点击 - 🎨 **界面全新优化** - 主要功能突出,快捷操作区 - ❓ **帮助和免责** - 完整的帮助系统,风险提示 **功能特性**: - 📊 **可视化数据展示**(持仓表格 + 观察表格) - ➕ **快速添加基金**(单个/批量/文件导入) - 📈 **一键生成报告**(自动显示,实时进度) - 📦 **智能批量导入**(格式自动识别,成功率统计) - 🗑️ **清除数据**(持仓/观察/全部) - 🔄 **实时刷新**(自动同步数据) - ❓ **随时帮助**(详细说明,免责声明) **适合人群**: - ✅ 所有用户(新手5分钟上手) - ✅ 需要批量管理基金 - ✅ 偏好图形界面 - ✅ 日常投资管理 **快速开始**:[v2.4快速开始.md](v2.4快速开始.md) **详细说明**:[v2.4更新日志.md](v2.4更新日志.md) --- ### 📝 配置管理(命令行版) **方式1:图形化界面(推荐)** ```bash run_gui.bat ``` **方式2:命令行工具** ```bash py config_manager.py # 或直接双击 run_config_manager.bat ``` **命令行功能**: - 基本操作:添加/删除/修改基金配置 - 批量操作:批量添加/删除基金 - 清除功能:清空持仓/观察/全部配置 - 自动备份:每次修改自动备份 --- ### 📈 均线分析 **方式1:图形化界面(推荐)** ```bash # 1. 打开GUI run_gui.bat # 2. 点击"运行均线分析" # 3. 等待完成 # 4. 点击"打开报告目录" ``` **方式2:独立运行** ```bash py ma_analysis.py # 或直接双击 run_ma_analysis.bat ``` **方式3:集成在每日报告** ```bash py main.py # 选择选项 1 # 报告中会自动包含均线分析 ``` #### 报告导出 分析完成后可选择导出格式: - **HTML格式**(推荐):精美网页,带图表和样式 - **TXT格式**:纯文本,易于打印 - **Markdown格式**:适合GitHub和文档 - **JSON格式**:原始数据,便于程序处理 所有报告保存在 `reports` 目录。 --- ### 📚 文档导航 **最新文档** ✨ - [均线分析优化说明.md](均线分析优化说明.md) - v2.3.1优化详解 🆕🔥 - [v2.3更新日志.md](v2.3更新日志.md) - v2.3更新内容 - [v2.3功能使用指南.md](v2.3功能使用指南.md) - v2.3新功能详解 **GUI 文档** - [GUI使用指南.md](GUI使用指南.md) - 图形界面完整教程 - [立即开始使用.md](立即开始使用.md) - 1分钟快速体验 - [快速使用指南.md](快速使用指南.md) - 3分钟快速上手 **分析功能文档** - [均线分析说明.md](均线分析说明.md) - 完整功能文档 - [均线分析快速开始.md](均线分析快速开始.md) - 5分钟了解分析 **版本历史** - [v2.2更新日志.md](v2.2更新日志.md) - v2.2更新内容 - [更新日志.md](更新日志.md) - v2.1更新内容 ### 立即运行一次 ```bash py main.py # 选择选项 1 # 报告中会自动包含均线分析 ``` ### 启动定时任务(守护进程) **方式一:使用主程序** ```bash py main.py # 选择选项 2 ``` **方式二:使用守护进程管理脚本(推荐)** ```bash # 启动守护进程 py daemon.py start # 查看守护进程状态 py daemon.py status # 停止守护进程 py daemon.py stop # 重启守护进程 py daemon.py restart # 查看帮助 py daemon.py help ``` 程序将在后台运行,每天定时发送报告(默认 21:40)。 ## 报告内容 每日报告包含以下信息: - 📊 **当日涨跌**:今日净值涨跌幅 - 💰 **当日收益**:今日收益金额 - 📈 **累计收益**:总收益金额和收益率 - 📉 **趋势分析**:上涨/下跌/震荡趋势 - 🔮 **未来预测**:未来5天的净值预测 ## 项目结构 ``` BaseMoneyPlus/ ├── main.py # 主程序 ├── daemon.py # 守护进程管理脚本 ├── config.py # 配置文件 ├── fund_data.py # 基金数据获取模块 ├── fund_analyzer.py # 分析和预测模块 ├── moving_average_analyzer.py # 均线分析模块(v2.1增强) ├── ma_analysis.py # 均线分析独立运行脚本 ├── config_manager.py # 配置管理工具(v2.2增强) ├── report_generator.py # 报告生成器(v2.1新增) ├── gui_manager.py # 图形化界面(v2.2新增)✨ ├── message_sender.py # 消息推送模块 ├── test.py # 测试脚本 ├── requirements.txt # 依赖列表 ├── holdings_config.json # 基金配置文件(需自行创建) ├── holdings_config.example.json # 配置文件示例 ├── README.md # 说明文档 ├── 使用说明.md # 详细使用说明 ├── 均线分析说明.md # 均线分析详细说明 ├── 均线分析快速开始.md # 5分钟快速上手 ├── 快速使用指南.md # 3分钟快速上手 ├── GUI使用指南.md # GUI完整教程(v2.2新增)✨ ├── v2.2更新日志.md # v2.2版本更新记录(v2.2新增)✨ ├── 更新日志.md # v2.1版本更新记录 ├── run.bat # Windows启动脚本 ├── run_ma_analysis.bat # 均线分析启动脚本 ├── run_config_manager.bat # 配置管理启动脚本 ├── run_gui.bat # GUI启动脚本(v2.2新增)✨ ├── reports/ # 报告目录(自动生成) │ ├── *.html # HTML报告 │ ├── *.txt # TXT报告 │ ├── *.md # Markdown报告 │ └── *.json # JSON数据 ├── .env # 环境变量(需自行创建) └── fund_manager.pid # PID 文件(自动生成) ``` ## 配置说明 ### 方式1:使用配置文件(推荐,支持均线分析) 1. 复制示例配置文件: ```bash cp holdings_config.example.json holdings_config.json ``` 2. 编辑 `holdings_config.json`: ```json { "holdings": { "017811": { "name": "基金名称", "cost_basis": 1.0, "amount": 10000, "invested": true, "investment_start_date": "2024-01-01" } }, "watchlist": { "161725": { "name": "观察基金", "invested": false, "watch_start_date": "2024-01-01", "note": "等待低点买入" } } } ``` **重要**:必须设置 `investment_start_date`,否则收益计算不准确! ### 方式2:直接修改代码(传统方式) 在 `main.py` 中修改 `holdings` 字典: ```python self.holdings = { "017811": {"cost_basis": 1.0, "amount": 10000}, # cost_basis: 成本净值, amount: 投资金额 "002963": {"cost_basis": 1.5, "amount": 10000}, # ... } ``` ### 修改定时时间 在 `config.py` 中修改: ```python SCHEDULE_TIME = "21:40" # 每天21:40发送报告 ``` ## 守护进程管理 系统支持守护进程模式,可以后台运行并自动管理进程状态。 ### 功能特点 - ✅ **进程状态检测**:启动时自动检测守护进程是否已在运行 - ✅ **PID 文件管理**:自动创建和管理进程 PID 文件 - ✅ **优雅关闭**:支持 Ctrl+C 安全退出,自动清理 PID 文件 - ✅ **进程管理**:支持启动、停止、重启和状态查看 ### 使用示例 ```bash # 查看守护进程状态 py daemon.py status # 启动守护进程(如果已有进程运行会提示) py daemon.py start # 停止守护进程 py daemon.py stop # 重启守护进程(先停止再启动) py daemon.py restart ``` ### 在主程序中管理守护进程 运行 `main.py` 时,程序会自动显示守护进程状态: ``` ============================================================ 基金管家系统 ============================================================ 🟢 守护进程运行中 (PID: 12345) # 或 🔴 守护进程未运行 选择运行模式: 1. 立即运行一次(生成并发送报告) 2. 启动/重启定时任务(后台运行) 3. 停止守护进程 4. 退出 ============================================================ ``` ## 依赖说明 主要依赖: - `requests`:HTTP请求 - `pandas`:数据处理 - `numpy`:数值计算 - `scikit-learn`:机器学习 - `beautifulsoup4`:网页解析 - `schedule`:定时任务 ## 注意事项 ⚠️ **重要提示** 1. 基金数据来源于公开API,可能存在延迟 2. 预测结果仅供参考,不构成投资建议 3. 投资有风险,入市需谨慎 4. 建议将程序部署在服务器上24小时运行 ## 📚 文档导航 ### 🆕 v2.4 最新文档(推荐阅读) | 文档 | 说明 | 适合人群 | |------|------|----------| | [v2.4快速开始.md](v2.4快速开始.md) | 30秒了解核心改进,5分钟上手 | 所有用户 | | [v2.4更新日志.md](v2.4更新日志.md) | 完整的更新说明和使用指南 | 想深入了解 | | [v2.4完成总结.md](v2.4完成总结.md) | 开发总结和技术细节 | 开发者 | ### v2.3.1 文档 | 文档 | 说明 | 适合人群 | |------|------|----------| | [均线分析优化说明.md](均线分析优化说明.md) | 位置分析、资金流向、热点分析 | 所有用户 | | [v2.3.1快速体验.md](v2.3.1快速体验.md) | 快速了解新功能 | 所有用户 | | [v2.3.1更新日志.md](v2.3.1更新日志.md) | 详细更新内容 | 想深入了解 | ### 其他文档 | 文档 | 说明 | |------|------| | [GUI使用指南.md](GUI使用指南.md) | 图形界面完整使用指南 | | [v2.3功能使用指南.md](v2.3功能使用指南.md) | v2.3 完整功能说明 | | [均线分析说明.md](均线分析说明.md) | 均线分析详细文档 | | [DAEMON.md](DAEMON.md) | 守护进程使用说明 | --- ## 常见问题 ### v2.4 使用问题 **Q1: 批量导入失败怎么办?** A: v2.4 支持智能格式识别。检查格式: - 持仓基金:`代码 名称 成本 金额 日期`(5个字段) - 观察基金:`代码 名称`(2个字段) - 支持空格或逗号分隔 **Q2: 报告为什么没有自动弹出?** A: 检查: 1. 网络连接是否正常 2. 查看进度窗口的错误信息 3. 手动点击 [📁 查看报告] 查看已保存的报告 **Q3: 如何查看帮助?** A: 点击右上角 [❓ 帮助] 按钮,或阅读 [v2.4快速开始.md](v2.4快速开始.md) ### 基础问题 **Q: 为什么获取不到基金数据?** A: 检查网络连接,API可能有限流,建议添加延迟。 **Q: 预测准确吗?** A: 预测仅供参考,基于历史数据和简单的机器学习模型,不能保证准确。 **Q: 如何添加更多基金?** A: 使用 v2.4 GUI,点击 [➕ 快速添加基金] 或 [📦 批量导入]。 ## ⚠️ 免责声明 **请务必仔细阅读** 本软件仅供学习和参考使用,不构成任何投资建议。 - ⚠️ 本软件提供的所有分析和数据仅供参考 - ⚠️ 投资有风险,决策需谨慎 - ⚠️ 历史数据不代表未来表现 - ⚠️ 任何投资决策都应该基于您自己的独立判断 - ⚠️ 使用本软件产生的任何投资损失,作者不承担任何责任 **请理性投资,谨慎决策!** ## License MIT License