在 `binance_client.py` 中优化了错误处理,新增对特定错误信息的警告记录,确保在条件单被拒时能够清晰提示。同时,在 `position_manager.py` 中引入了保本止损逻辑,确保在盈利达到一定比例时自动将止损移至含手续费的保本价,提升了风险控制能力。此外,更新了 `config.py` 中的相关配置项,以支持移动止损与保本功能的灵活性。
87 lines
5.2 KiB
Markdown
87 lines
5.2 KiB
Markdown
# 盈利保护(移动止损+保本)对盈利率的影响评估与建议
|
||
|
||
## 一、当前逻辑简要回顾
|
||
|
||
- **PROFIT_PROTECTION_ENABLED**:总开关,关掉则不做移动止损与保本。
|
||
- **尽早保本**:盈利达到 **LOCK_PROFIT_AT_BREAKEVEN_AFTER_PCT**(默认 2% 保证金)时,将止损移至「含手续费保本价」。
|
||
- **移动止损**:盈利达到 **TRAILING_STOP_ACTIVATION**(默认 10%)后激活,按 **TRAILING_STOP_PROTECT**(默认 2%)保护利润并上移止损。
|
||
- **部分止盈后保本**:第一目标(如 12%~20%)触发、平掉 50% 后,剩余仓位止损移至含手续费保本价。
|
||
|
||
---
|
||
|
||
## 二、对盈利率的预期影响
|
||
|
||
### 1. 正面(减少「先盈后亏」)
|
||
|
||
- **2% 尽早保本**:一旦浮盈 ≥2%,最差也是平在保本附近(含手续费),能明显减少「曾经盈利最后亏着走」的笔数。
|
||
- **保本价含手续费**:避免「名义保本、实际小亏」,提高真实保本比例。
|
||
- **移动止损**:盈利拉大后锁住一部分利润,减少大幅回吐。
|
||
|
||
整体上会:**提高「不亏」的笔数、减轻回撤、可能提高夏普/稳定性**。
|
||
|
||
### 2. 负面(可能压低单笔盈利)
|
||
|
||
- **2% 可能偏早**:山寨/高波动品种常出现 2% 来回波动。若刚触达 2% 就立刻移至保本,一次正常回撤就可能把单子平在保本,后面再涨到 15%~20% 就吃不到。
|
||
- **结果**:部分本可到第一目标(如 12%~20%)的单子,会变成「保本出场」,**平均盈利可能被拉低**。
|
||
|
||
因此:**在减少「盈转亏」的同时,有可能把一部分「大赢」变成「小赢/保本」**。最终盈利率取决于:
|
||
- 被保本「救回来」的亏损单数量 vs
|
||
- 被保本「提前震出」、错过后续涨幅的笔数。
|
||
|
||
---
|
||
|
||
## 三、建议(在保留当前处理的前提下)
|
||
|
||
### 1. 调高「尽早保本」阈值(优先建议)
|
||
|
||
- 当前:**LOCK_PROFIT_AT_BREAKEVEN_AFTER_PCT = 0.02(2%)**。
|
||
- 建议:先改为 **3%~5%**(如 `0.03`~`0.05`),再根据实盘/回测微调。
|
||
- 理由:
|
||
- 2% 在波动大的标的上容易被「噪音」触发,增加被震出后再大涨的概率。
|
||
- 3%~5% 仍能挡住大部分「先盈后亏」,同时给价格一点回撤空间,减少把潜在大赢单打成保本单。
|
||
|
||
若你观察到「很多单子刚到 2% 就回撤触发保本,之后又涨很多」,可再适当提高到 4%~5%。
|
||
|
||
### 2. 保持「保本含手续费」与总开关
|
||
|
||
- **FEE_BUFFER_PCT**、**PROFIT_PROTECTION_ENABLED** 的逻辑建议保留:
|
||
- 保本价含手续费能真实改善「盈转亏」比例。
|
||
- 总开关便于在行情或策略变化时一键关闭保护,做对比或风控。
|
||
|
||
### 3. 可选:为「尽早保本」加「稳定时间」条件(进阶)
|
||
|
||
- 思路:仅当「盈利在 ≥2%(或你设的阈值)以上维持一段时间」后,才执行「移至保本」。
|
||
例如:连续 2~3 次检查(或 1~2 分钟)都 ≥ 该阈值,再移止损。
|
||
- 作用:减少因一根 K 线或一次 tick 冲高就立刻锁保本、随后被正常回撤打掉的情况。
|
||
- 实现:在现有「盈利 ≥ LOCK_PROFIT_AT_BREAKEVEN_AFTER_PCT」判断上,增加「持续超过 N 秒或 N 次检查」再设 `breakevenStopSet`;若你愿意,可以后续再加这个开关和参数。
|
||
|
||
### 4. 用数据验证(强烈建议)
|
||
|
||
- 在平仓原因(exit_reason)里区分:
|
||
- 因「尽早保本」触发的平仓(例如单独一个 reason 或标记)。
|
||
- 因移动止损、第一目标、第二目标、原始止损等触发的平仓。
|
||
- 定期看:
|
||
- 被「尽早保本」平掉的单子,若当时不平、按原止损/止盈规则,事后会怎样(可简单用「平仓后一段时间内的价格」做粗略回溯)。
|
||
- 若多数是「保本出场后价格继续大涨」,说明阈值偏低,可再提高 LOCK_PROFIT_AT_BREAKEVEN_AFTER_PCT 或加「稳定时间」;若多数是「保本出场后价格大跌」,说明保护有价值,可维持或略降阈值。
|
||
|
||
---
|
||
|
||
## 四、参数建议汇总(可直接改配置)
|
||
|
||
| 配置项 | 当前典型值 | 建议范围 | 说明 |
|
||
|--------|------------|----------|------|
|
||
| **PROFIT_PROTECTION_ENABLED** | True | 保持 True | 总开关,关掉则完全不保本/不移动止损。 |
|
||
| **LOCK_PROFIT_AT_BREAKEVEN_AFTER_PCT** | 0.02 (2%) | **0.03~0.05**(3%~5%) | 降低被短期波动震出、错过后续涨幅的概率。 |
|
||
| **TRAILING_STOP_ACTIVATION** | 0.10 (10%) | 0.08~0.12 | 可维持;若希望更早锁盈可略降到 8%。 |
|
||
| **TRAILING_STOP_PROTECT** | 0.02 (2%) | 0.02~0.03 | 可维持。 |
|
||
| **FEE_BUFFER_PCT** | 0.0015 | 保持 | 保本含手续费,不建议关。 |
|
||
|
||
---
|
||
|
||
## 五、结论
|
||
|
||
- 加上「盈利保护(移动止损+保本)」后,**对盈利率的影响是双面的**:
|
||
- **减少「先盈后亏」**,有利于胜率和回撤。
|
||
- **可能把一部分潜在大赢单变成保本/小赢单**,压低平均盈利。
|
||
- **优先建议**:把 **LOCK_PROFIT_AT_BREAKEVEN_AFTER_PCT** 从 2% 提到 **3%~5%**,在「少亏」和「拿住趋势」之间折中;再通过 exit_reason 与简单回溯评估效果,按需微调或加「稳定时间」条件。
|