# solo_copper **Repository Path**: zzhou7676/solo_copper ## Basic Information - **Project Name**: solo_copper - **Description**: 市面上的股票工具要么是纯看盘软件(同花顺/东财),要么是全自动量化机器人(门槛高、黑盒)。一个小目标走的是中间路线: 你做决策,系统做分析,AI 做补充。 不替你交易,不替你选股——而是把你每天该做的功课(查行情、看指标、定止损、记交易、写复盘)整合到一个操作台里。双模式并存:一键规则分析秒出买卖建议,也可手动追问外部 AI 深度研判。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 2 - **Created**: 2026-07-06 - **Last Updated**: 2026-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: AI, 投资决策, AI投资, AI决策 ## README
--- ## 为什么做这个 市面上的股票工具要么是纯看盘软件(同花顺/东财),要么是全自动量化机器人(门槛高、黑盒)。**一个小目标**走的是中间路线: > **你做决策,系统做分析,AI 做补充。** 不替你交易,不替你选股——而是把你每天该做的功课(查行情、看指标、定止损、记交易、写复盘)整合到一个操作台里。**双模式并存**:一键规则分析秒出买卖建议,也可手动追问外部 AI 深度研判。 --- ## ✨ 核心特性 | 特性 | 说明 | | ------------------------------- | ------------------------------------------------------------------------------------------------------- | | 🔗**交易驱动持仓** | 只需录入买卖交易,持仓、成本、现金余额全部自动推导,杜绝手动维护不一致 | | 🤖**一键规则分析** | 9 项技术指标(RSI/MACD/KDJ/BOLL/ATR/MA/量比/支撑阻力/EMA)→ 14 条买卖规则 → 秒出决策报告,无需外部 AI | | 💬**手动 AI 问答** | 一条合并提示词覆盖全部持仓 + 备选股 → 粘贴千问整段回答 → 自动按个股拆分归档(作为规则分析的深度补充) | | 🎯**操作建议提取** | 自动检测 🤖规则分析 / 💬AI问答 来源,解析"减仓/持有/买入/观望" + 止损价 + 目标价 | | 🛡️**硬性风控引擎** | 单票止损、最大仓位、总回撤三道红线自动检查,触发即预警,参数 UI 可调 | | 📊**收益曲线 + 基准对比** | 账户每日收益率 vs 沪深 300,持仓卡片 + 迷你走势图 + 信号徽章,红涨绿跌(A 股惯例) | | ⚡**智能刷新** | 交易时段每 30 秒自动拉行情,非交易时段 5 分钟一次,不打断表单操作 | | 📦**一键安装包** | Windows 用户双击 exe 安装,无需配置 Python 环境 | --- ## 🚀 快速开始 ### 方式一:安装包(推荐,零门槛) 1. 前往 [Releases](https://gitee.com/zzhou7676/solo_copper/releases) 下载 `一个小目标_Setup_v1.0.0.exe`(约 79MB) 2. 双击安装(无需管理员权限,安装到用户目录) 3. 桌面快捷方式 → 双击启动 → 浏览器自动打开 `localhost:8501` ### 方式二:开发模式 ```bash git clone https://gitee.com/zzhou7676/solo_copper.git cd solo_copper pip install -r requirements.txt # streamlit pandas pyyaml akshare plotly streamlit run app.py ``` > ⚠️ **必须在项目根目录执行**:`app.py` 全程使用相对路径(`Path(".")`)。 首次运行自动注入 **10 只热门龙头股**到备选池(贵州茅台、宁德时代、中国平安、招商银行、比亚迪、五粮液、隆基绿能、立讯精密、长江电力、紫金矿业),无需手动添加即可体验。 --- ## 🔄 每日工作流 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 每日 3 步循环 │ │ │ │ ① 录入交易 ② 分析研判 ③ 查看建议 │ │ ─────────── ──────────── ────────── │ │ 买入/卖出/分红 → 🔘 一键规则分析(推荐) → 操作建议 Tab │ │ 自动推导持仓 9项指标秒出报告 减仓/持有/买入 │ │ 自动计算现金 ─ 或 ─ 止损价/目标价 │ │ 💬 手动批量问AI │ │ 复制→千问→粘贴 │ │ 自动拆分归档 │ │ ↓ │ │ 风控引擎自动检查 │ │ 触发止损 → 次日清仓 │ └──────────────────────────────────────────────────────────────────┘ ``` **双模式分析**:一键规则分析纯本地运算(RSI/MACD/KDJ/BOLL等9项指标 + 14条买卖规则),秒出决策报告无需外部 AI。手动 AI 问答作为深度补充,可选。 **核心原则**:持仓从交易记录推导(`derive_holdings`),不再手动维护。所有下游模块(盈亏、风控、日报)都消费同一个数据源——`transactions.csv` 是唯一真相。 --- ## 📱 十大功能 Tab | Tab | 功能 | 关键交互 | | ---------------------- | ------------------------------------------------- | ----------------------------- | | 📊**总览仪表盘** | 总资产/盈亏/现金/仓位饼图/收益曲线 + 持仓信号徽章 | 一键日报 · 行情自动刷新 | | 💼**持仓管理** | 持仓明细表(盈亏/仓位)+ 板块集中度分析 | 快速卖出表单 | | 📝**交易记录** | 买入/卖出/分红录入 + FIFO 平仓统计 + 复盘日志 | 金额自动计算 · 撤销最后一笔 | | 👁️**备选股池** | 观察股 CRUD + 实时行情 | 自动创建归档文件夹 | | 📈**行情看板** | 四大指数 + 全部股票实时行情 | 手动刷新 · 自动标记持仓/备选 | | 💬**个股问答** | 🔘一键规则分析(9项指标秒出报告)+ 手动批量问答 | 自动拆分千问回答按个股归档 | | 🎯**操作建议** | 自动检测 🤖规则分析 / 💬AI问答 来源,提取买卖建议 | 持仓/备选分组 · 四色标签 | | 🛡️**风控管理** | 项目设置 + 5 个风控参数滑块 + 实时预警 | 参数可编辑 · 预警自动归档 | | 📅**决策日历** | 月历视图,每日交易/问答标记 | 今日高亮 · 本月统计 | | 📋**文件状态** | 问答完成度 + 文件清单 + 月度报表导出 | CSV 下载 | --- ## 🏗️ 架构 ### 技术栈 | 层 | 技术 | 用途 | | ------ | --------------------------------- | ---------------------------------- | | 前端 | **Streamlit** | Web 操作台,深色科技风主题 | | 数据 | **pandas** | DataFrame 驱动的持仓/盈亏计算 | | 行情 | **akshare** + 新浪/腾讯接口 | 实时报价、历史收盘、迷你走势 | | 可视化 | **Plotly** | 收益曲线、仓位饼图、迷你 sparkline | | 配置 | **YAML** | 风控参数、组合规则、AI 设置 | ### 数据流 ``` transactions.csv (唯一真相源) │ ├──→ trading.derive_holdings() → 持仓表(加权平均成本) │ → holdings.calculate_pnl() → 盈亏/仓位 │ → risk_engine.check_risk() → 预警 │ ├──→ trading.calculate_cash_balance() → 现金余额 │ └──→ portfolio_history.save_snapshot() → 每日快照 → 收益曲线 vs 沪深300 ``` ### 项目结构 ``` solo_copper/ ├── app.py # 主入口(10 Tab 路由 + 智能刷新 + 种子数据) ├── config.yaml # 全局配置(风控参数 · 组合规则 · AI 设置 · 分析引擎参数) ├── requirements.txt # 依赖清单 ├── .streamlit/config.toml # 深色主题 │ ├── utils/ # 工具模块(纯逻辑,无 Streamlit 依赖) │ ├── trading.py # 交易簿 + 持仓推导 + 现金计算 + FIFO 平仓 │ ├── holdings.py # 盈亏计算 + 仓位占比 │ ├── market_data.py # akshare 行情(实时/历史/迷你走势/大盘指数)+ 新浪备用源 │ ├── indicators.py # 技术指标引擎(RSI/ATR/支撑阻力/MA/量比/EMA/MACD/KDJ/BOLL) │ ├── analysis_engine.py # 规则分析引擎(9项指标 → 14条规则 → 买卖/持有/观望决策) │ ├── risk_engine.py # 风控引擎(三条硬规则检查) │ ├── qa_manager.py # 问答工作流(生成/拆分/提取操作建议) │ ├── watchlist.py # 备选股池 CRUD │ ├── portfolio_history.py # 每日快照 + 收益曲线 + 沪深300基准 │ ├── report_generator.py # 日报生成(聚合全链路数据) │ └── theme.py # 深色科技风 CSS + 红涨绿跌配色 │ ├── views/ # 视图模块(每个 Tab 一个 render 函数) │ ├── dashboard.py # 📊 总览仪表盘 │ ├── holdings.py # 💼 持仓管理 │ ├── trading.py # 📝 交易记录 │ ├── watchlist.py # 👁️ 备选股池 │ ├── market.py # 📈 行情看板 │ ├── qa.py # 💬 个股问答 │ ├── action.py # 🎯 操作建议 │ ├── risk.py # 🛡️ 风控管理 │ ├── calendar.py # 📅 决策日历 │ └── files.py # 📋 文件状态 │ ├── data/ # 运行时数据(gitignore) │ ├── transactions.csv # 交易记录簿(持仓源头) │ ├── watchlist.csv # 备选股池 │ └── portfolio_snapshots.csv # 每日资产快照 │ ├── inbox_RawData/ # 每日热点文件 ├── knowledge_Base/By_Stock/ # 按股票归档的问答({代码}_{名称}) ├── market_Quotes/ # 收盘价 CSV + 持仓快照 ├── decision_Logs/ # 交易决策日志 + 日报 + 风控预警 │ └── installer/ # Windows 安装包打包(Inno Setup) ├── build.ps1 # 构建脚本(Python embeddable + 依赖) ├── setup.iss # Inno Setup 编译脚本 ├── launcher.vbs # 无窗口启动模板 └── stop.bat # 停止脚本模板 ``` --- ## ⚙️ 配置 编辑 `config.yaml` 或在应用内「🛡️ 风控管理」Tab 用滑块调整: ```yaml project: name: 一个小目标 initial_capital: 10000.0 # 初始本金(元) risk_management: # ⚠️ 硬性风控,AI 无权修改 stop_loss_single: 0.08 # 单票止损线 -8% trailing_stop_pct: 0.06 # 止盈回撤线 -6% max_total_drawdown: 0.15 # 总账户最大回撤 -15% max_single_position_pct: 0.15 # 单票最大仓位 15% min_cash_reserve_pct: 0.05 # 最低现金留存 5% ai_settings: model: qwen-max # 通义千问 temperature: 0.15 # 低温度 = 偏保守 mandatory_checks: # 每次提问必带的强制检查 - 当前该股估值处于历史什么分位? - 近期热点是短期炒作还是基本面反转? - 若明天下跌5%,我的应对计划是什么? analysis: # 规则分析引擎参数 rsi_period: 14 # RSI 计算周期 rsi_overbought: 70 # RSI 超买线 rsi_oversold: 30 # RSI 超卖线 macd_fast: 12 # MACD 快线 macd_slow: 26 # MACD 慢线 macd_signal: 9 # MACD 信号线 kdj_period: 9 # KDJ 周期 boll_period: 20 # 布林带周期 boll_std: 2.0 # 布林带标准差倍数 ``` --- ## 🔧 安装包构建(开发者) 如需自行编译安装包: ```powershell # 1. 构建(下载 Python embeddable + 安装依赖 + 复制项目文件) .\installer\build.ps1 # 2. 编译(需要 Inno Setup 6) & "$env:LOCALAPPDATA\Programs\Inno Setup 6\ISCC.exe" .\installer\setup.iss # 产出:installer/output/一个小目标_Setup_v1.0.0.exe(约 79MB) ``` --- ## ❓ 常见问题
持仓数据怎么来的?能手动改吗? 持仓从交易记录(`data/transactions.csv`)自动推导,不能直接编辑。如需修正:在「交易记录」Tab 撤销最后一笔并重新录入,或用 Excel 编辑 CSV 文件。
akshare 拉取行情失败? 1. 检查网络连接和代理设置 2. 非交易时段数据可能延迟 3. 运行 `pip install --upgrade akshare`
收益曲线什么时候显示? 需要至少 2 天的快照数据。系统每次刷新行情时自动保存当日快照到 `portfolio_snapshots.csv`,多日积累后曲线自动出现。
自动刷新会打断操作吗? 不会。刷新逻辑在 `@st.fragment` 中运行,不触发 `st.rerun()`,不影响你正在填写的表单。
安装版和数据在哪?卸载会丢吗? 安装到 `%LOCALAPPDATA%\一个小目标\`,数据目录卸载时保留(`uninsneveruninstall`)。如需彻底清理,手动删除安装目录。
--- ## 📄 License 个人项目,仅供学习交流,不构成任何投资建议。据此操作,风险自负。