Files
qihuo/README.md
T
2026-06-15 11:29:12 +08:00

179 lines
5.1 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.
# 国内期货交易监控复盘系统
基于 Flask 的国内期货监控与复盘 Web 应用,支持开单计划、关键位监控、止盈止损自动跟踪、企业微信推送与统计分析。
## 功能模块
| 模块 | 说明 |
|------|------|
| **开单计划** | 品种、方向、决策区间、止损/止盈;价格进入区间后激活并推送 |
| **关键位监控** | 箱体/收敛突破、阻力/支撑位突破提醒(触发后去重) |
| **交易记录与复盘** | 自动记录止盈/止损结果 |
| **统计分析** | 总交易、胜率,按品种/类型/方向统计 |
| **系统设置** | 修改密码、配置企业微信 Webhook |
## 品种与合约代码(同花顺格式)
输入中文品种名(如「白银」「螺纹钢」)或同花顺合约代码(如 `ag2606``SR609``IF2606`),系统自动匹配**当前主力月份合约**。
| 交易所 | 同花顺示例 | 说明 |
|--------|-----------|------|
| 上期所 / 大商所 / 上期能源 | `ag2606``rb2605``m2609` | 小写品种 + 4 位年月 |
| 郑商所 | `SR609``MA606` | 大写品种 + 3 位年月 |
| 中金所 | `IF2606``IH2606` | 大写品种 + 4 位年月 |
界面展示**同花顺合约代码**(ag2608、IF2606),与看盘软件一致;**行情默认走新浪财经**(免费,普通用户无需 token)。
## 行情说明
| 项目 | 说明 |
|------|------|
| 合约代码 | 同花顺格式,输入中文自动匹配主力月份 |
| 价格数据 | 新浪财经 API(免费) |
| 同花顺 iFinD | 仅机构/付费数据接口用户可用,**普通期货通用户无 refresh_token** |
因此个人用户使用本系统:**看同花顺代码,价格走新浪**,两者在主力合约价格上基本一致,满足监控需求。
## 快速部署(Ubuntu root + /opt/qihuo
```bash
# root 登录后执行
cd /opt/qihuo # 或先 git clone 再 bash deploy.sh
bash deploy.sh
```
默认安装路径:`/opt/qihuo`,服务端口:`6600`
部署完成后访问:`http://服务器IP:6600`
## 环境要求
- Ubuntu 20.04+(推荐)
- **root 用户**运行(部署目录 `/opt/qihuo`
- Python 3.10+
- Node.js + PM2(进程守护)
- 网络可访问 `hq.sinajs.cn`(行情)及企业微信 API
## 手动部署
### 1. 安装系统依赖
```bash
apt update
apt install -y python3 python3-venv python3-pip git nodejs npm
npm install -g pm2
```
### 2. 克隆到 /opt/qihuo
```bash
git clone https://git.bz121.com/dekun/qihuo.git /opt/qihuo
cd /opt/qihuo
```
### 3. 虚拟环境与依赖
source venv/bin/activate
pip install -r requirements.txt
```
### 4. 配置环境变量
```bash
cp .env.example .env
# 编辑 .env,至少修改 SECRET_KEY 和 ADMIN_PASSWORD
nano .env
```
`.env` 主要字段:
```env
HOST=0.0.0.0
PORT=6600
SECRET_KEY=随机长字符串
ADMIN_USERNAME=admin
ADMIN_PASSWORD=你的密码
ADMIN_SYNC_FROM_ENV=false
WECHAT_WEBHOOK=企业微信机器人地址(可选)
QUOTE_SOURCE=sina
```
**改密码说明**:账号存在 `futures.db` 里,改 `.env` 后不会自动生效。
- **首次部署**:写好 `ADMIN_USERNAME` / `ADMIN_PASSWORD` 后启动即可。
- **已部署后**:在 `.env``ADMIN_SYNC_FROM_ENV=true`,改密码后 `pm2 restart qihuo`;或在网页「系统设置」改密。
- **忘记密码**`source venv/bin/activate && python reset_admin.py`
普通用户保持 `QUOTE_SOURCE=sina` 即可。
### 5. PM2 启动
```bash
pm2 start ecosystem.config.cjs
pm2 save
pm2 startup # 按提示执行生成的命令,实现开机自启
```
### 6. 常用 PM2 命令
```bash
pm2 status
pm2 logs qihuo
pm2 restart qihuo
pm2 stop qihuo
```
## 本地开发
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python app.py
```
## 目录结构
```
qihuo/
├── app.py # 主程序
├── market.py # 同花顺/新浪行情拉取
├── symbols.py # 期货品种与同花顺代码映射
├── requirements.txt
├── .env.example
├── deploy.sh # Ubuntu 一键部署
├── ecosystem.config.cjs # PM2 配置
├── static/js/symbol.js # 品种联想
├── templates/ # 页面模板
└── futures.db # SQLite 数据库(运行后生成)
```
## 监控逻辑说明
### 开单计划
1. **待触发**:当前价进入「决策区间 [下限, 上限]」→ 企业微信通知,状态变为「已激活」
2. **已激活**:监控止盈止损直至触发,写入交易记录,计划关闭
### 关键位监控
- 箱体/收敛:突破上沿或跌破下沿各推送一次
- 阻力/支撑:单向突破推送一次
后台线程每 3 秒轮询行情。
## 安全建议
- 部署后立即修改默认密码
- 勿将 `.env` 提交到仓库
- 生产环境建议用 Nginx 反代并配置 HTTPS
- 限制 6600 端口仅内网或 VPN 访问
## 仓库地址
https://git.bz121.com/dekun/qihuo.git
## License
Private / 个人使用