Files
PolyHermes/docs/crypto-tail-strategy/zh/crypto-tail-strategy-user-guide.md
T
WrBugandCursor c5d59dfdf9 refactor: 尾盘策略统一更名为加密价差策略
- 前端:菜单父级「加密价差策略」,子项「策略配置」「实时监控」;i18n 与类型注释全部替换
- 后端:i18n、ErrorCode、DTO/实体/服务注释与日志「尾盘」→「加密价差策略」;TG 通知文案
- 文档:README、中英文用户指南、UI 规格、任务、流程、价差流程、市场数据、动态系数等全部更新
- 不修改 API 路径、路由、表名与类名,保持兼容

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 21:30:50 +08:00

470 lines
16 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.
# 加密价差策略配置指南
## 一、什么是加密价差策略?
加密价差策略是一种自动化交易策略,专门用于 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秒」
- 周期开始后 03 分钟:不监听
- 周期开始后 3~12 分钟:监听价格,满足条件即触发
- 周期开始后 12~15 分钟:不监听
### 3.3 价格区间
| 参数 | 说明 | 必填 | 取值范围 | 示例 |
|------|------|------|----------|------|
| **最低价 (minPrice)** | 触发的最低价格 | ✅ | 01 | 0.50 |
| **最高价 (maxPrice)** | 触发的最高价格 | ❌ | 01,默认1 | 0.80 |
**价格区间说明**
- 价格范围是 01 之间的小数
- 当市场价格在 [最低价, 最高价] 区间内时才会触发
- 如果不填最高价,默认使用 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
价差模式:无
启用状态:开启
```
**说明**
- 周期开始后 03 分钟:不监听
- 周期开始后 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 USDC100 × 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.500.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.300.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. **风险过滤**:通过价差过滤(最小价差/最大价差)控制波动条件
**使用建议**
- 初次使用建议从简单策略开始(无价差过滤)
- 熟悉后再尝试添加价差过滤功能
- 定期查看触发记录,根据实际情况调整策略参数
- 使用专门的钱包,避免与其他操作冲突
**祝您交易顺利!** 🚀