# 加密货币大盘-周期-阶段-强弱-方向-账户-策略前置匹配系统 纯本地部署的前置策略匹配工具。前后端分离,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**