first commit

This commit is contained in:
dekun
2026-05-28 21:43:23 +08:00
commit 1d5c97904f
33 changed files with 5250 additions and 0 deletions
+195
View File
@@ -0,0 +1,195 @@
# 加密货币大盘-周期-阶段-强弱-方向-账户-策略前置匹配系统
纯本地部署的前置策略匹配工具。前后端分离,SQLite 持久化,黑色极简主题,无登录。
> **代码仓库**[https://git.bz121.com/dekun/crypto-pre-trade-system.git](https://git.bz121.com/dekun/crypto-pre-trade-system.git)
> **生产部署**:见 [DEPLOY.md](./DEPLOY.md)Ubuntu + PM2 一键部署)
> **本系统仅做前置策略匹配**,不处理币种、K线识别、箱体判断、点位计算、突破校验、自动下单或交易所对接。
> 所有箱体细节、触碰次数、突破确认条件、顺势/逆势箱体,全部由人工手动筛选输入。
---
## 技术栈
| 层级 | 技术 |
|------|------|
| 后端 | Python 3.10+ / FastAPI / SQLAlchemy / SQLite |
| 前端 | Vue 3 / Vite / TailwindCSS / Axios |
| 数据库 | SQLite`backend/data/pretrade.db` |
---
## 项目结构
```
crypto-pre-trade-system/
├── backend/
│ ├── app/
│ │ ├── main.py # FastAPI 入口
│ │ ├── database.py # 数据库连接 + 默认数据初始化
│ │ ├── models.py # ORM 模型
│ │ ├── schemas.py # Pydantic 模型
│ │ ├── crud.py # CRUD 操作
│ │ ├── matcher.py # 前置匹配核心逻辑
│ │ └── routes/ # API 路由
│ ├── init_db.sql # 建表 SQL(参考)
│ ├── requirements.txt
│ └── data/ # SQLite 数据库(自动创建)
├── frontend/
│ ├── src/
│ │ ├── views/
│ │ │ ├── DailyMatch.vue # 日常使用页(核心)
│ │ │ └── ConfigCenter.vue # 系统配置中心
│ │ ├── api/index.js # API 封装
│ │ └── ...
│ └── package.json
├── deploy/
│ └── install.sh # Ubuntu 一键部署脚本
├── ecosystem.config.cjs # PM2 进程配置
├── DEPLOY.md # 部署文档
└── README.md
```
---
## 快速启动
### 1. 启动后端
```bash
cd backend
# 创建虚拟环境(推荐)
python -m venv venv
# Windows:
venv\Scripts\activate
# macOS/Linux:
# source venv/bin/activate
pip install -r requirements.txt
# 启动 API 服务(首次启动自动建表 + 写入默认数据)
uvicorn app.main:app --reload --host 127.0.0.1 --port 8000
```
后端启动后访问:
- API 文档:http://127.0.0.1:8000/docs
- 健康检查:http://127.0.0.1:8000/api/health
### 2. 启动前端
```bash
cd frontend
npm install
npm run dev
```
前端访问:http://localhost:1125
---
## 使用流程
### 日常使用(核心页面)
1. **人工选择**大盘周期(日线 / 4H / 1H)
2. **人工选择**大盘阶段(8 个固定阶段)
3. **人工选择**趋势强弱(强 / 弱 / 震荡)
4. 点击「执行前置匹配」
5. 系统自动输出:
- 交易类型(顺势 / 反转 / 观望)
- 允许开仓方向
- 可用账户列表
- 可用策略列表(含规则文本,仅展示)
### 系统配置中心
- **大盘管理**:增删改 8 个大盘阶段及交易方向
- **账户管理**:动态管理账户(本金、周期、风险比)
- **策略管理**:增删改策略及规则文本
- **匹配配置**:绑定「大盘周期 + 阶段 + 强弱」→ 账户 + 策略 + 方向
---
## 匹配逻辑(默认规则)
| 大盘阶段 | 趋势强弱 | 匹配策略 | 方向 |
|---------|---------|---------|------|
| 上涨初期/中期 | 强 | 箱体顺势突破 | 做多 |
| 上涨初期/中期 | 弱 | 斐波回调 | 做多 |
| 上涨末期 | 强/弱 | 手工主观 | 做空 |
| 下跌初期/中期 | 强 | 箱体顺势突破 | 做空 |
| 下跌初期/中期 | 弱 | 斐波回调 | 做空 |
| 下跌末期 | 强/弱 | 手工主观 | 做多 |
| 宽幅震荡末期 | 强/弱 | 收敛结构突破 | 多空均可 |
| 宽幅震荡 | 任意 | **全部禁用** | 禁止 |
| 任意阶段 | 震荡 | **全部禁用** | 观望 |
---
## API 接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/regimes` | 获取大盘阶段列表 |
| POST/PUT/DELETE | `/api/regimes` | 增删改大盘阶段 |
| GET | `/api/accounts` | 获取账户列表 |
| POST/PUT/DELETE | `/api/accounts` | 增删改账户 |
| GET | `/api/strategies` | 获取策略列表 |
| POST/PUT/DELETE | `/api/strategies` | 增删改策略 |
| GET | `/api/matches` | 获取匹配配置 |
| POST/PUT/DELETE | `/api/matches` | 增删改匹配配置 |
| GET | `/api/match` | **前置匹配**(核心接口) |
匹配接口参数:
```
GET /api/match?market_cycle=日线&market_regime_id=1&trend_strength=强
```
---
## 数据库表
| 表名 | 说明 |
|------|------|
| `market_regime` | 大盘阶段(名称、交易类型、允许方向) |
| `account` | 账户(名称、本金、周期、风险比、启用状态) |
| `strategy` | 策略(名称、适用周期/强弱、规则文本) |
| `regime_match` | 匹配绑定(阶段+周期+强弱 → 账户+策略+方向) |
建表 SQL 见 `backend/init_db.sql`,也可通过后端启动自动创建。
---
## 约束说明
1. **黑色极简** UI,左右分栏布局
2. **SQLite 持久化**,重启不丢数据
3. **无登录**,纯本地部署
4. **账户/策略/匹配规则** 全部可动态增删改
5. **严格禁止**:自动 K 线识别、自动箱体判断、自动下单、交易所对接、币种输入、点位计算、突破条件校验
6. 策略规则文本**仅作展示**,系统不做任何自动校验
---
## 重置数据库
删除 `backend/data/pretrade.db` 后重启后端,系统将自动重建并写入默认数据。
---
## 生产部署
服务器部署(Ubuntu + PM2 + root + `/opt`)详见 **[DEPLOY.md](./DEPLOY.md)**。
一键部署:
```bash
git clone https://git.bz121.com/dekun/crypto-pre-trade-system.git /opt/crypto-pre-trade-system
cd /opt/crypto-pre-trade-system
bash deploy/install.sh
```
部署完成后访问:**http://\<服务器IP\>:1125**