# Grid Trading 本项目是一个本地运行的 Python GUI 网格交易管理工具,第一阶段聚焦 A股/ETF 的账户、标的、手工成交、持仓成本、网格收益和回本价计算。 ## 第一阶段功能 - 创建/编辑本地账户和初始资金。 - 添加 A股/ETF 标的,维护交易单位。 - 配置默认网格策略模板。 - 手动录入、编辑、删除买入/卖出成交。 - 自动计算持仓数量、T+1 可用数量、持仓成本、已实现盈亏、累计网格利润、持仓回本价、账户回本价。 - 点击“刷新行情”从腾讯接口获取实时价格,并用实时价更新持仓市值和账户摘要。 - 根据刷新后的现价和默认网格策略,生成选中标的的网格档位建议。 - 使用 SQLite 本地保存数据,默认路径为 `data/grid_trading.db`。 ## 行情说明 行情刷新使用腾讯接口: ```text http://qt.gtimg.cn/q= ``` 例如 `000001` 会自动转换为 `sz000001`,`600000` 会自动转换为 `sh600000`。 实时行情只保存在当前程序内存中,用于显示现价、持仓市值、浮动盈亏、总资产和资金使用率;不会写入 SQLite。成交录入里的价格只作为成交价保存,不会作为现价兜底。关闭软件后再次打开,需要重新点击“刷新行情”。 ## 网格档位说明 选中标的后,底部“网格档位”表会根据腾讯现价和默认策略模板生成建议: - 买入价按 `现价 * (1 - 网格间距)` 逐档向下递减。 - 卖出价按 `买入价 * (1 + 网格间距)` 计算。 - 建议买入股数按标的交易单位向下取整。 - 预计单轮毛利润不扣手续费,生成结果只用于展示,不会写入成交记录或 SQLite。 ## 待卖网格说明 底部“待卖网格”表会展示尚未被网格卖出抵消的网格买入批次,包括买入价、剩余股数、建议卖出价、预计毛利润、当前价和状态。网格卖出按时间顺序 FIFO 抵消最早的网格买入;建议卖出价按 `买入价 * (1 + 网格间距)` 计算。 ## 开发环境 ```powershell python -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install -e ".[dev]" pytest ``` ## 启动 ```powershell python -m grid_trading.app ``` 也可以指定数据库路径: ```powershell python -m grid_trading.app --db data/dev.db ``` ## 验证 ```powershell pytest -v python -m grid_trading.app --help ``` 如果只想确认 GUI 能构造起来,不打开真实窗口,可以运行测试里的 offscreen smoke: ```powershell pytest tests/test_ui.py -v ```