Files
crypto-pre-trade-system/README.md
T
2026-05-28 21:43:23 +08:00

196 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 加密货币大盘-周期-阶段-强弱-方向-账户-策略前置匹配系统
纯本地部署的前置策略匹配工具。前后端分离,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**