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