- 前端:菜单父级「加密价差策略」,子项「策略配置」「实时监控」;i18n 与类型注释全部替换 - 后端:i18n、ErrorCode、DTO/实体/服务注释与日志「尾盘」→「加密价差策略」;TG 通知文案 - 文档:README、中英文用户指南、UI 规格、任务、流程、价差流程、市场数据、动态系数等全部更新 - 不修改 API 路径、路由、表名与类名,保持兼容 Co-authored-by: Cursor <cursoragent@cursor.com>
470 lines
16 KiB
Markdown
470 lines
16 KiB
Markdown
# 加密价差策略配置指南
|
||
|
||
## 一、什么是加密价差策略?
|
||
|
||
加密价差策略是一种自动化交易策略,专门用于 Polymarket 加密市场的 **5分钟** 或 **15分钟** "Up or Down" 市场。
|
||
|
||
**核心逻辑**:在指定时间窗口内,当市场价格进入您设定的价格区间时,系统会自动以固定价格(0.99)买入,无需手动操作。
|
||
|
||
**适用场景**:
|
||
- 您希望捕捉市场在周期末段的价格波动
|
||
- 您想自动化执行交易,避免手动盯盘
|
||
- 您对市场走势有一定判断,希望设置条件自动触发
|
||
|
||
---
|
||
|
||
## 二、策略工作原理
|
||
|
||
### 2.1 基本流程
|
||
|
||
```
|
||
周期开始 → 时间窗口内 → 价格进入区间 → 自动下单
|
||
```
|
||
|
||
1. **周期**:每个市场按固定周期运行(5分钟或15分钟)
|
||
- 5分钟市场:每5分钟为一个周期(如 10:00、10:05、10:10...)
|
||
- 15分钟市场:每15分钟为一个周期(如 10:00、10:15、10:30...)
|
||
|
||
2. **时间窗口**:您可以在周期内设置一个时间段
|
||
- 例如:15分钟市场,设置窗口为「3分钟~12分钟」
|
||
- 表示:从周期开始后第3分钟到第12分钟之间才会触发
|
||
|
||
3. **价格区间**:设置触发价格范围
|
||
- 例如:最低价 0.50,最高价 0.80
|
||
- 表示:当市场价格在 0.50~0.80 之间时才会触发
|
||
|
||
4. **自动下单**:满足条件后,系统自动以 0.99 的价格买入
|
||
|
||
### 2.2 重要限制
|
||
|
||
- **每周期最多触发一次**:同一个周期内,即使多次满足条件,也只下单一次
|
||
- **固定下单价格**:所有订单都以 0.99 的价格提交
|
||
- **需要单独钱包**:建议使用专门的钱包运行加密价差策略,避免与其他操作(手动交易、跟单等)冲突
|
||
|
||
---
|
||
|
||
## 三、参数详细说明
|
||
|
||
### 3.1 基础参数
|
||
|
||
| 参数 | 说明 | 必填 | 示例 |
|
||
|------|------|------|------|
|
||
| **账户** | 选择用于交易的钱包账户 | ✅ | 账户A |
|
||
| **策略名称** | 给策略起个名字,方便识别 | ❌ | "BTC 15分钟加密价差策略" |
|
||
| **市场** | 选择要交易的市场(5分钟或15分钟) | ✅ | btc-updown-15m |
|
||
|
||
### 3.2 周期设置
|
||
|
||
| 参数 | 说明 | 必填 | 示例 |
|
||
|------|------|------|------|
|
||
| **周期长度** | 由选择的市场自动确定 | ✅ | 15分钟(900秒) |
|
||
| **时间窗口开始** | 从周期起点算起,多少分钟后开始监听 | ✅ | 3分0秒 |
|
||
| **时间窗口结束** | 从周期起点算起,多少分钟后停止监听 | ✅ | 12分0秒 |
|
||
|
||
**时间窗口说明**:
|
||
- 5分钟市场:可选 0~5 分钟内的任意时间段
|
||
- 15分钟市场:可选 0~15 分钟内的任意时间段
|
||
- **开始时间必须 ≤ 结束时间**
|
||
- 窗口外的时间即使价格满足也不会触发
|
||
|
||
**示例**:
|
||
- 15分钟市场,窗口「3分0秒 ~ 12分0秒」
|
||
- 周期开始后 0~3 分钟:不监听
|
||
- 周期开始后 3~12 分钟:监听价格,满足条件即触发
|
||
- 周期开始后 12~15 分钟:不监听
|
||
|
||
### 3.3 价格区间
|
||
|
||
| 参数 | 说明 | 必填 | 取值范围 | 示例 |
|
||
|------|------|------|----------|------|
|
||
| **最低价 (minPrice)** | 触发的最低价格 | ✅ | 0~1 | 0.50 |
|
||
| **最高价 (maxPrice)** | 触发的最高价格 | ❌ | 0~1,默认1 | 0.80 |
|
||
|
||
**价格区间说明**:
|
||
- 价格范围是 0~1 之间的小数
|
||
- 当市场价格在 [最低价, 最高价] 区间内时才会触发
|
||
- 如果不填最高价,默认使用 1.0(即只要价格 ≥ 最低价就触发)
|
||
|
||
**示例**:
|
||
- 最低价 0.50,最高价 0.80
|
||
- 价格 0.45:不触发(低于最低价)
|
||
- 价格 0.60:触发 ✅(在区间内)
|
||
- 价格 0.85:不触发(高于最高价)
|
||
|
||
### 3.4 投入金额
|
||
|
||
| 参数 | 说明 | 必填 | 示例 |
|
||
|------|------|------|------|
|
||
| **投入方式** | 选择按比例或固定金额 | ✅ | 按比例 / 固定金额 |
|
||
| **比例 (%)** | 按账户余额的百分比投入 | 条件必填 | 10%(账户有100 USDC,投入10 USDC) |
|
||
| **固定金额 (USDC)** | 每次固定投入的金额 | 条件必填 | 50 USDC |
|
||
|
||
**投入方式说明**:
|
||
|
||
**方式一:按比例 (RATIO)**
|
||
- 每次触发时,按账户当前可用余额的百分比投入
|
||
- 例如:账户有 100 USDC,设置比例 10%
|
||
- 第1次触发:投入 10 USDC
|
||
- 第2次触发:如果余额变为 90 USDC,投入 9 USDC
|
||
- **优点**:自动适应账户余额变化
|
||
- **缺点**:每次投入金额可能不同
|
||
|
||
**方式二:固定金额 (FIXED)**
|
||
- 每次触发时,固定投入指定金额
|
||
- 例如:设置固定金额 50 USDC
|
||
- 每次触发都投入 50 USDC
|
||
- **优点**:投入金额稳定,便于管理
|
||
- **缺点**:需要确保账户余额充足
|
||
|
||
**注意事项**:
|
||
- 最小下单金额:至少 1 USDC
|
||
- 如果账户余额不足,下单会失败并记录失败原因
|
||
|
||
### 3.5 价差过滤(高级功能)
|
||
|
||
价差功能用于根据币安 BTC/USDC 的 K 线波动决定是否触发,支持「最小价差」与「最大价差」两种方向。
|
||
|
||
| 参数 | 说明 | 必填 | 示例 |
|
||
|------|------|------|------|
|
||
| **价差模式** | 选择价差校验方式 | ✅ | 无 / 固定 / 自动 |
|
||
| **价差方向** | 最小价差(≥ 触发)或 最大价差(≤ 触发) | ✅ | 最小价差 / 最大价差 |
|
||
| **价差值** | 固定模式时填写(单位:USDC) | 条件必填 | 30 |
|
||
|
||
**价差方向说明**:
|
||
|
||
- **最小价差**:当币安 K 线价差 **≥** 设定值时才触发
|
||
- 适合:只在波动「足够大」时交易(避免波动过小、不值得进场)
|
||
- **最大价差**:当币安 K 线价差 **≤** 设定值时才触发
|
||
- 适合:只在波动「足够小」时交易(避免波动过大、风险高)
|
||
|
||
**三种价差模式**:
|
||
|
||
**模式一:无 (NONE)**
|
||
- 不进行价差校验
|
||
- 只要时间窗口和价格区间满足就触发
|
||
- **适合**:不关心币安价格波动,只看 Polymarket 价格
|
||
|
||
**模式二:固定 (FIXED)**
|
||
- 设置一个固定的价差值(单位:USDC)
|
||
- **最小价差**:当 K 线价差 ≥ 设定值时触发
|
||
- 示例:设定 30,价差 ≥ 30 触发 ✅,价差 < 30 不触发
|
||
- **最大价差**:当 K 线价差 ≤ 设定值时触发
|
||
- 示例:设定 50,价差 ≤ 50 触发 ✅,价差 > 50 不触发
|
||
- **适合**:您有明确的价差阈值
|
||
|
||
**模式三:自动 (AUTO)**
|
||
- 系统根据历史 20 根 K 线自动计算基准价差
|
||
- 计算逻辑:
|
||
1. 获取最近 20 根 K 线(与策略周期一致)
|
||
2. 按方向筛选(Up 方向只看上涨的 K 线,Down 方向只看下跌的 K 线)
|
||
3. 剔除异常值(使用 IQR 方法)
|
||
4. 计算平均价差 × 0.8 作为有效价差
|
||
- **最小价差**:K 线价差 ≥ 有效价差时触发
|
||
- **最大价差**:K 线价差 ≤ 有效价差时触发
|
||
- **适合**:希望根据历史数据自动调整,无需手动设具体数值
|
||
|
||
**价差说明**:
|
||
- 价差 = |收盘价 - 开盘价|(币安 BTC/USDC 当根 K 线)
|
||
- 例如:开盘价 50000,收盘价 50030,价差 = 30
|
||
- 价差越大,说明该周期内价格波动越大
|
||
|
||
---
|
||
|
||
## 四、配置示例
|
||
|
||
### 示例1:简单策略(5分钟市场)
|
||
|
||
**场景**:在 5 分钟市场的最后 2 分钟,如果价格低于 0.60,自动买入 10 USDC
|
||
|
||
**配置**:
|
||
```
|
||
账户:账户A
|
||
策略名称:BTC 5分钟简单策略
|
||
市场:btc-updown-5m
|
||
时间窗口:3分0秒 ~ 5分0秒
|
||
最低价:0.00
|
||
最高价:0.60
|
||
投入方式:固定金额
|
||
固定金额:10 USDC
|
||
价差模式:无
|
||
启用状态:开启
|
||
```
|
||
|
||
**说明**:
|
||
- 周期开始后 0~3 分钟:不监听
|
||
- 周期开始后 3~5 分钟:如果价格 ≤ 0.60,自动买入 10 USDC
|
||
|
||
---
|
||
|
||
### 示例2:比例投入策略(15分钟市场)
|
||
|
||
**场景**:在 15 分钟市场的中段(5~10分钟),如果价格在 0.40~0.70 之间,投入账户余额的 15%
|
||
|
||
**配置**:
|
||
```
|
||
账户:账户B
|
||
策略名称:BTC 15分钟比例策略
|
||
市场:btc-updown-15m
|
||
时间窗口:5分0秒 ~ 10分0秒
|
||
最低价:0.40
|
||
最高价:0.70
|
||
投入方式:按比例
|
||
比例:15%
|
||
价差模式:无
|
||
启用状态:开启
|
||
```
|
||
|
||
**说明**:
|
||
- 假设账户余额 100 USDC
|
||
- 周期开始后 5~10 分钟:如果价格在 0.40~0.70 之间,自动买入约 15 USDC(100 × 15%)
|
||
|
||
---
|
||
|
||
### 示例3:带价差过滤的策略(15分钟市场)
|
||
|
||
**场景**:在 15 分钟市场的后段(10~14分钟),如果价格在 0.50~0.80 之间,且币安价差 ≥ 50,投入 20 USDC
|
||
|
||
**配置**:
|
||
```
|
||
账户:账户C
|
||
策略名称:BTC 15分钟价差策略
|
||
市场:btc-updown-15m
|
||
时间窗口:10分0秒 ~ 14分0秒
|
||
最低价:0.50
|
||
最高价:0.80
|
||
投入方式:固定金额
|
||
固定金额:20 USDC
|
||
价差模式:固定
|
||
价差方向:最小价差
|
||
价差值:50
|
||
启用状态:开启
|
||
```
|
||
|
||
**说明**:
|
||
- 周期开始后 10~14 分钟:同时满足以下条件才触发
|
||
1. 价格在 0.50~0.80 之间 ✅
|
||
2. 价差方向为「最小价差」且币安价差 ≥ 50 ✅
|
||
- 如果价差只有 30,即使价格满足也不会触发
|
||
|
||
---
|
||
|
||
### 示例4:自动价差策略(15分钟市场)
|
||
|
||
**场景**:在 15 分钟市场的前段(2~8分钟),如果价格在 0.30~0.90 之间,投入账户余额的 20%,价差由系统自动计算
|
||
|
||
**配置**:
|
||
```
|
||
账户:账户D
|
||
策略名称:BTC 15分钟自动价差策略
|
||
市场:btc-updown-15m
|
||
时间窗口:2分0秒 ~ 8分0秒
|
||
最低价:0.30
|
||
最高价:0.90
|
||
投入方式:按比例
|
||
比例:20%
|
||
价差模式:自动
|
||
价差方向:最小价差
|
||
启用状态:开启
|
||
```
|
||
|
||
**说明**:
|
||
- 系统会根据历史 20 根 K 线自动计算有效价差
|
||
- 周期开始后 2~8 分钟:同时满足以下条件才触发
|
||
1. 价格在 0.30~0.90 之间 ✅
|
||
2. 价差方向为「最小价差」且币安价差 ≥ 系统计算的有效价差 ✅
|
||
|
||
---
|
||
|
||
## 五、常见问题
|
||
|
||
### Q1:策略什么时候会触发?
|
||
|
||
**A**:需要同时满足以下条件:
|
||
1. ✅ 当前时间在时间窗口内
|
||
2. ✅ 市场价格在 [最低价, 最高价] 区间内
|
||
3. ✅ 本周期尚未触发过(每周期最多触发一次)
|
||
4. ✅ 如果设置了价差过滤,币安价差与价差方向需同时满足条件
|
||
|
||
### Q2:为什么我的策略没有触发?
|
||
|
||
**可能原因**:
|
||
1. **时间窗口不对**:当前时间不在设定的时间窗口内
|
||
2. **价格不在区间**:市场价格不在 [最低价, 最高价] 范围内
|
||
3. **本周期已触发**:该周期已经触发过一次,不会再触发
|
||
4. **价差不满足**:如果设置了价差过滤,币安价差或价差方向未满足要求
|
||
5. **账户余额不足**:账户余额小于设定的投入金额
|
||
6. **策略未启用**:检查策略的启用状态是否为"开启"
|
||
|
||
### Q3:每周期最多触发一次是什么意思?
|
||
|
||
**A**:每个周期(5分钟或15分钟)内,即使多次满足条件,也只下单一次。
|
||
|
||
**示例**:
|
||
- 15分钟市场,周期从 10:00 开始
|
||
- 10:05 时价格满足条件,触发下单 ✅
|
||
- 10:08 时价格再次满足条件,但不会再次下单(本周期已触发)
|
||
- 10:15 开始新周期,可以再次触发
|
||
|
||
### Q4:固定金额和按比例有什么区别?
|
||
|
||
**固定金额**:
|
||
- 每次触发都投入相同金额
|
||
- 例如:设置 50 USDC,每次都是 50 USDC
|
||
- 需要确保账户余额充足
|
||
|
||
**按比例**:
|
||
- 每次触发时按账户余额的百分比投入
|
||
- 例如:设置 10%,账户有 100 USDC 时投入 10 USDC,余额变为 90 USDC 后下次投入 9 USDC
|
||
- 自动适应余额变化
|
||
|
||
### Q5:价差过滤功能有什么用?
|
||
|
||
**A**:价差过滤根据币安 BTC/USDC 的 K 线波动决定是否触发,支持两种方向。
|
||
|
||
**最小价差**(价差 ≥ 设定值才触发):
|
||
- 波动太小时不触发,避免在波动不足时进场
|
||
- 例如:设定 30,只有价差 ≥ 30 才触发
|
||
|
||
**最大价差**(价差 ≤ 设定值才触发):
|
||
- 波动太大时不触发,避免在波动过大、风险高时进场
|
||
- 例如:设定 50,只有价差 ≤ 50 才触发
|
||
|
||
**三种模式选择建议**:
|
||
- **无**:不关心币安价格波动,只看 Polymarket 价格
|
||
- **固定**:您知道期望的价差阈值(配合最小/最大价差方向使用)
|
||
- **自动**:希望根据历史数据自动计算有效价差,无需手动设具体数值
|
||
|
||
### Q6:为什么建议使用单独的钱包?
|
||
|
||
**A**:避免以下问题:
|
||
1. **余额变化**:如果钱包同时用于手动交易,余额变化可能影响策略执行
|
||
2. **仓位冲突**:手动交易和策略交易可能产生冲突
|
||
3. **管理混乱**:难以区分哪些订单是策略产生的,哪些是手动产生的
|
||
|
||
**建议**:创建一个专门的钱包,只用于加密价差策略。
|
||
|
||
### Q7:下单价格为什么是固定的 0.99?
|
||
|
||
**A**:这是策略的设计特点:
|
||
- 0.99 是市场中的最高价格(接近 1.0)
|
||
- 以最高价买入可以确保订单快速成交
|
||
- 虽然买入价格较高,但策略的核心是捕捉市场波动,而非追求最优价格
|
||
|
||
### Q8:策略需要依赖自动赎回功能吗?
|
||
|
||
**A**:是的,加密价差策略依赖自动赎回功能。
|
||
|
||
**原因**:
|
||
- 策略下单后会形成仓位
|
||
- 这些仓位需要在市场结算后自动赎回
|
||
- 如果未配置自动赎回,仓位可能无法及时赎回
|
||
|
||
**配置要求**:
|
||
- 在「系统设置」中配置 Builder API Key
|
||
- 开启自动赎回功能
|
||
|
||
---
|
||
|
||
## 六、注意事项
|
||
|
||
### 6.1 账户要求
|
||
|
||
- ✅ 账户必须配置 API Key、API Secret、API Passphrase
|
||
- ✅ 账户必须有足够的 USDC 余额
|
||
- ✅ 建议使用专门的钱包,避免与其他操作冲突
|
||
|
||
### 6.2 时间窗口设置
|
||
|
||
- ⚠️ 开始时间必须 ≤ 结束时间
|
||
- ⚠️ 时间窗口不能超出周期长度(5分钟市场 ≤ 5分钟,15分钟市场 ≤ 15分钟)
|
||
- ⚠️ 建议设置合理的时间窗口,避免在周期开始或结束时触发
|
||
|
||
### 6.3 价格区间设置
|
||
|
||
- ⚠️ 最低价必须 ≤ 最高价
|
||
- ⚠️ 价格范围是 0~1 之间的小数
|
||
- ⚠️ 建议根据市场情况设置合理的价格区间
|
||
|
||
### 6.4 投入金额设置
|
||
|
||
- ⚠️ 最小下单金额:至少 1 USDC
|
||
- ⚠️ 确保账户余额充足,避免下单失败
|
||
- ⚠️ 按比例模式:注意账户余额变化对投入金额的影响
|
||
|
||
### 6.5 价差过滤设置
|
||
|
||
- ⚠️ 价差方向:最小价差为「≥ 触发」,最大价差为「≤ 触发」,请按需求选择
|
||
- ⚠️ 固定模式:需要填写合理的价差值(单位:USDC)
|
||
- ⚠️ 自动模式:系统会在周期内按窗口进度自动计算有效价差,无需手动设置
|
||
- ⚠️ 价差设定过严(最小价差设得过大或最大价差设得过小)可能导致策略难以触发
|
||
|
||
### 6.6 其他注意事项
|
||
|
||
- ⚠️ 策略创建后默认启用,如需暂停可以关闭"启用状态"
|
||
- ⚠️ 每周期最多触发一次,请合理设置触发条件
|
||
- ⚠️ 策略依赖自动赎回功能,请确保已配置 Builder API Key
|
||
- ⚠️ 建议定期查看触发记录,了解策略执行情况
|
||
|
||
---
|
||
|
||
## 七、策略管理
|
||
|
||
### 7.1 查看策略列表
|
||
|
||
在「加密价差策略」页面可以查看所有策略:
|
||
- 策略名称
|
||
- 市场信息
|
||
- 时间窗口
|
||
- 价格区间
|
||
- 投入方式
|
||
- 启用状态
|
||
- 最后触发时间
|
||
- 总收益、胜率等统计信息
|
||
|
||
### 7.2 查看触发记录
|
||
|
||
点击策略可以查看详细的触发记录:
|
||
- 触发时间
|
||
- 市场价格
|
||
- 投入金额
|
||
- 订单ID
|
||
- 订单状态(成功/失败)
|
||
- 结算信息(盈亏、胜率等)
|
||
|
||
### 7.3 编辑策略
|
||
|
||
可以随时修改策略参数:
|
||
- 时间窗口
|
||
- 价格区间
|
||
- 投入方式
|
||
- 价差过滤(模式、方向、数值)
|
||
- 启用状态
|
||
|
||
**注意**:修改后的策略会在下一个周期生效。
|
||
|
||
### 7.4 删除策略
|
||
|
||
删除策略后:
|
||
- 策略配置会被删除
|
||
- 历史触发记录会保留
|
||
- 已下单的订单不受影响
|
||
|
||
---
|
||
|
||
## 八、总结
|
||
|
||
加密价差策略是一个强大的自动化交易工具,可以帮助您:
|
||
|
||
1. **自动化交易**:无需手动盯盘,系统自动执行
|
||
2. **精准控制**:通过时间窗口和价格区间精确控制触发条件
|
||
3. **灵活配置**:支持比例和固定金额两种投入方式
|
||
4. **风险过滤**:通过价差过滤(最小价差/最大价差)控制波动条件
|
||
|
||
**使用建议**:
|
||
- 初次使用建议从简单策略开始(无价差过滤)
|
||
- 熟悉后再尝试添加价差过滤功能
|
||
- 定期查看触发记录,根据实际情况调整策略参数
|
||
- 使用专门的钱包,避免与其他操作冲突
|
||
|
||
**祝您交易顺利!** 🚀
|