1
This commit is contained in:
parent
99df066101
commit
ba4a4b2205
|
|
@ -93,11 +93,11 @@
|
|||
- `MIN_STOP_LOSS_PRICE_PCT`: 0.01 (1%)
|
||||
- `MIN_TAKE_PROFIT_PRICE_PCT`: 0.015 (1.5%)
|
||||
|
||||
### 激进策略
|
||||
### 激进策略(不推荐过小最小距离)
|
||||
- `STOP_LOSS_PERCENT`: 0.02 (2% of margin)
|
||||
- `TAKE_PROFIT_PERCENT`: 0.03 (3% of margin)
|
||||
- `MIN_STOP_LOSS_PRICE_PCT`: 0.005 (0.5%)
|
||||
- `MIN_TAKE_PROFIT_PRICE_PCT`: 0.01 (1%)
|
||||
- `MIN_STOP_LOSS_PRICE_PCT`: **≥ 0.015 (1.5%)**,不建议 0.5%,易被波动扫损
|
||||
- `MIN_TAKE_PROFIT_PRICE_PCT`: **≥ 0.02 (2%)**
|
||||
|
||||
## 优势
|
||||
|
||||
|
|
@ -111,6 +111,7 @@
|
|||
1. **杠杆影响**:杠杆越高,基于保证金的止损对应的价格变动越小
|
||||
2. **市场波动**:在波动大的市场,可以适当提高最小价格变动百分比
|
||||
3. **技术止损**:系统仍会考虑技术分析(支撑/阻力、布林带),如果技术止损更紧,会使用技术止损
|
||||
4. **⚠️ 最小距离不宜过小**:`MIN_STOP_LOSS_PRICE_PCT` / `MIN_TAKE_PROFIT_PRICE_PCT` 是「离入场价的最小价格距离」。设为 0.5%、0.6% 会允许极紧的止损/止盈,容易被噪音扫损或过早止盈,建议**至少 2%~2.5%**(0.02~0.025)。代码默认:止损 2.5%、止盈 2%。
|
||||
|
||||
## 如何配置
|
||||
|
||||
|
|
|
|||
47
docs/止损止盈计算说明.md
Normal file
47
docs/止损止盈计算说明.md
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
# 止损止盈计算说明(保证金 vs 价格距离)
|
||||
|
||||
## 一、当前逻辑概览
|
||||
|
||||
| 项目 | 是否基于「订单保证金」 | 实际如何算 | 为何会“很大” |
|
||||
|------|------------------------|------------|----------------|
|
||||
| **止损 (SL)** | 部分 | **优先用 ATR**:SL 价格距离 = ATR × ATR_STOP_LOSS_MULTIPLIER(如 3.0)。只有 ATR 不可用时才用「保证金×STOP_LOSS_PERCENT」换算成价格。 | ATR 宽时(如 2%×3=**6% 价格**),止损会离得很远;与“保证金 10%”的直觉不一致。 |
|
||||
| **第一目标止盈 (TP1)** | 是,但会被抬升 | 先按 **TAKE_PROFIT_1_PERCENT(30% 保证金)** 算价格距离;再被 **MIN_RR_FOR_TP1(1.5 倍止损距离)** 抬升,取更大者。 | 当止损很宽(如 6% 价格)时,TP1 至少 1.5×6%=**9% 价格**,容易比“30% 保证金 ≈3.75% 价格”大很多。 |
|
||||
| **第二目标止盈 (TP2)** | 否(当前实际多用盈亏比) | **优先用「止损距离×RISK_REWARD_RATIO」**(如 3:1)。即:止损 6% 价格 → TP2 = **18% 价格**。保证金 55% 只是候选之一,通常不会被选中。 | 盈亏比 3:1 下,止损一宽,止盈就非常远,**很难触及**,所以你感觉“很难获利离场”。 |
|
||||
|
||||
**结论**:
|
||||
- **止损**:多数情况是 **按价格距离(ATR)** 算,不是按“订单保证金百分比”一口价。
|
||||
- **止盈**:
|
||||
- TP1 设计上是“基于保证金”,但被 MIN_RR_FOR_TP1 抬升后,可能变成“基于止损距离”的 1.5 倍,也会偏大。
|
||||
- TP2 **当前几乎总是“基于止损距离的盈亏比”**(3 倍止损距离),所以会很大,**并不是“按订单保证金”的 55% 来**。
|
||||
|
||||
---
|
||||
|
||||
## 二、换算关系(便于心里有数)
|
||||
|
||||
- 杠杆 8x、**纯按保证金**时:
|
||||
- 保证金 10% ≈ **1.25% 价格**
|
||||
- 保证金 30% ≈ **3.75% 价格**
|
||||
- 保证金 55% ≈ **6.875% 价格**
|
||||
|
||||
- 当前实际常见情况(ATR 止损 + 3:1 止盈):
|
||||
- 止损:例如 **4%~6% 价格**(ATR×倍数)
|
||||
- TP2:**12%~18% 价格**(3×止损)→ 对很多行情来说很难碰到。
|
||||
|
||||
---
|
||||
|
||||
## 三、若希望“更容易获利离场”的改法
|
||||
|
||||
1. **让第二目标止盈也受“保证金”上限约束(推荐)**
|
||||
- 增加逻辑:当「盈亏比算出的 TP2」对应的保证金盈利 **大于** 配置的 TAKE_PROFIT_PERCENT(如 55%)时,**改用「保证金 55%」对应的价格** 作为 TP2。
|
||||
- 这样 TP2 最远就是“55% 保证金”(约 6.875% 价格 @8x),不会出现 18% 价格那种很难到的止盈。
|
||||
|
||||
2. **调低盈亏比**
|
||||
- 把 `RISK_REWARD_RATIO` 从 3.0 改为 2.0 或 1.5,TP2 会变近(仍会优先于“保证金止盈”被选用,除非再做上面 1 的约束)。
|
||||
|
||||
3. **第一目标 TP1 不要被抬得过高**
|
||||
- 把 `MIN_RR_FOR_TP1` 从 1.5 改为 1.0,或关闭“TP1 至少 1.5 倍止损”的抬升,让 TP1 更贴近“30% 保证金”对应的价格。
|
||||
|
||||
4. **收紧止损(让 ATR 止损别太宽)**
|
||||
- 降低 `ATR_STOP_LOSS_MULTIPLIER`(如从 3.0 到 2.0 或 1.5),止损变近,同比例下 TP2 也会变近(但止损更容易被扫到,需权衡)。
|
||||
|
||||
**已实现**:在 `risk_manager.get_take_profit_price` 中增加了 **USE_MARGIN_CAP_FOR_TP**(默认 True):当使用盈亏比算出 TP2 时,若该价格比「TAKE_PROFIT_PERCENT 对应的保证金止盈价」更远,则**改用保证金止盈价**作为 TP2,这样止盈不会远到难以触及。可在配置中关闭(设为 False)恢复“始终用盈亏比止盈”。
|
||||
87
docs/盈利提升方案.md
Normal file
87
docs/盈利提升方案.md
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# 盈利提升方案(策略与风控优化)
|
||||
|
||||
在「止盈/止损与币安一致、策略逻辑无 bug」的前提下,从**仓位数量、单笔风险、出场与过滤**几方面做配置级优化,可提升资金曲线稳定性与盈利空间。
|
||||
|
||||
**已与「山寨币快速方案」对齐**:前端 GlobalConfig 山寨币预设的 `MIN_STOP_LOSS_PRICE_PCT` / `MIN_TAKE_PROFIT_PRICE_PCT` 已改为 2.5% / 2%(不再使用 0.5% / 0.6%),与代码默认及本文建议一致。
|
||||
|
||||
---
|
||||
|
||||
## 一、策略现状简要评估
|
||||
|
||||
- **止盈/止损**:与持仓导出一致,交易所条件单正常,策略侧无问题。
|
||||
- **过滤链**:4H 趋势、信号强度≥8、仅 trending、RSI/涨跌幅、成交量、短周期方向、连续亏损冷却等均已启用,逻辑完整。
|
||||
- **主要风险点**(结合 250U、16 仓、-8U 未实现):
|
||||
- 仓位数量多(16)→ 单笔亏损(如 1000PEPE -49.7% 保证金)对总权益影响大。
|
||||
- 小资金下高杠杆 + 多仓 → 回撤容易集中爆发。
|
||||
|
||||
---
|
||||
|
||||
## 二、可落地的盈利提升方案
|
||||
|
||||
### 1. 小资金时减少持仓数量(优先)
|
||||
|
||||
**目的**:降低“多仓同时亏损”的冲击,把仓位留给更高置信度信号。
|
||||
|
||||
| 配置项 | 当前示例 | 建议(总余额 < 500U) | 说明 |
|
||||
|--------|----------|---------------------------|------|
|
||||
| `MAX_OPEN_POSITIONS` | 16 | **6~8** | 250U 开 16 仓,单仓约 6~7U 保证金,回撤集中;降到 6~8 可减少分散损耗、提高单笔质量。 |
|
||||
|
||||
**操作**:在后台/Redis 配置中把 `MAX_OPEN_POSITIONS` 改为 6 或 8,重启或等配置热更新生效。
|
||||
|
||||
---
|
||||
|
||||
### 2. 单笔风险与杠杆(小资金更保守)
|
||||
|
||||
**目的**:单笔亏损可控,避免一两笔大亏拉崩曲线。
|
||||
|
||||
| 配置项 | 当前 | 建议(可选) | 说明 |
|
||||
|--------|------|--------------|------|
|
||||
| `FIXED_RISK_PERCENT` | 0.03 (3%) | **0.02 (2%)** | 250U 下单笔风险 5U,降低单笔对总资金占比。 |
|
||||
| `MIN_LEVERAGE` | 8 | **5~6** | 小资金下略降杠杆,单笔波动对保证金占比变小,心理与风控都更稳。 |
|
||||
|
||||
---
|
||||
|
||||
### 3. 更早锁定利润(移动止损与 TP1)
|
||||
|
||||
**目的**:盈利仓尽早进入“保本/保护利润”,减少利润回吐。
|
||||
|
||||
| 配置项 | 当前 | 建议(可选) | 说明 |
|
||||
|--------|------|--------------|------|
|
||||
| `TRAILING_STOP_ACTIVATION` | 0.30 (30% 保证金盈利) | **0.20~0.25** | 盈利 20~25% 即激活移动止损、止损移至成本,适合小资金快进快出。 |
|
||||
| `TAKE_PROFIT_1_PERCENT` | 0.30 (30%) | 保持或 **0.20~0.25** | 第一档止盈略提前,先落袋为安,剩余仓位用移动止损博趋势。 |
|
||||
|
||||
---
|
||||
|
||||
### 4. 保持/强化“只做高质量信号”
|
||||
|
||||
以下保持现状即可,无需放宽:
|
||||
|
||||
- `MIN_SIGNAL_STRENGTH`: **8**(维持,不降到 7)。
|
||||
- `AUTO_TRADE_ONLY_TRENDING`: **True**(仅 trending 自动开仓)。
|
||||
- `AUTO_TRADE_ALLOW_4H_NEUTRAL`: **False**(4H 中性不自动开仓,避免震荡扫损)。
|
||||
|
||||
---
|
||||
|
||||
### 5. 单笔亏损“熔断”(可选,需代码支持)
|
||||
|
||||
若希望**单笔亏损超过一定比例就强制平仓**(防止类似 1000PEPE -49.7% 保证金这种单笔拖累),可在 `position_manager.check_stop_loss_take_profit` 或监控逻辑中增加:
|
||||
|
||||
- 当 `pnl_percent_margin < -X%`(例如 -25% 或 -30%)时,视为“单笔异常亏损”,执行市价平仓并记录原因。
|
||||
|
||||
目前代码中已有“移动止损”“固定 SL/TP”,暂无按“单笔亏损%熔断”的硬性平仓;若你希望加这一条,可以单独做一个小改动。
|
||||
|
||||
---
|
||||
|
||||
## 三、推荐实施顺序(小资金 250U 为例)
|
||||
|
||||
1. **立刻可做**:把 `MAX_OPEN_POSITIONS` 调到 **6 或 8**。
|
||||
2. **其次**:`FIXED_RISK_PERCENT` 改为 **0.02**,`MIN_LEVERAGE` 改为 **5 或 6**(如接受略低杠杆)。
|
||||
3. **再选**:`TRAILING_STOP_ACTIVATION` 改为 **0.20~0.25**,让盈利仓更早保本。
|
||||
4. **保持**:信号强度≥8、仅 trending、4H 中性不开仓,不放松。
|
||||
|
||||
---
|
||||
|
||||
## 四、小结
|
||||
|
||||
- **策略与止盈止损**:无问题;币安条件单与持仓一致。
|
||||
- **盈利提升方向**:在不大改策略的前提下,通过**减少持仓数、降低单笔风险与杠杆、更早锁定利润**来平滑回撤、提高单笔质量;小资金优先做 1~2 项即可见效。
|
||||
|
|
@ -233,8 +233,8 @@ const GlobalConfig = () => {
|
|||
// 风险与止盈止损
|
||||
ATR_STOP_LOSS_MULTIPLIER: 3.0,
|
||||
STOP_LOSS_PERCENT: 0.10, // 10% 强平保护
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.005,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.006,
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.025, // 2.5% 最小止损距离(过小易被波动扫损)
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.02, // 2% 最小止盈距离(过小易过早止盈)
|
||||
RISK_REWARD_RATIO: 3.0, // 3:1 盈亏比
|
||||
TAKE_PROFIT_1_PERCENT: 0.30, // 30% 第一止盈
|
||||
TAKE_PROFIT_PERCENT: 0.55, // 55% 第二止盈(优化:更易触及)
|
||||
|
|
@ -306,8 +306,8 @@ const GlobalConfig = () => {
|
|||
STOP_LOSS_PERCENT: 0.05, // 5% 强平保护
|
||||
TAKE_PROFIT_PERCENT: 0.15, // 15% 止盈
|
||||
TAKE_PROFIT_1_PERCENT: 0.10, // 10% 第一止盈
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.005,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.006,
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.025,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.02,
|
||||
USE_TRAILING_STOP: false,
|
||||
ATR_STOP_LOSS_MULTIPLIER: 2.0,
|
||||
ATR_TAKE_PROFIT_MULTIPLIER: 1.5,
|
||||
|
|
@ -336,8 +336,8 @@ const GlobalConfig = () => {
|
|||
TAKE_PROFIT_PERCENT: 0.30, // 30% 止盈
|
||||
TAKE_PROFIT_1_PERCENT: 0.20, // 20% 第一止盈
|
||||
STOP_LOSS_PERCENT: 0.10, // 10% 止损
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.005,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.006,
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.025,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.02,
|
||||
MIN_HOLD_TIME_SEC: 1800,
|
||||
SMART_ENTRY_ENABLED: false,
|
||||
USE_DYNAMIC_ATR_MULTIPLIER: false,
|
||||
|
|
@ -366,8 +366,8 @@ const GlobalConfig = () => {
|
|||
TAKE_PROFIT_PERCENT: 0.30,
|
||||
TAKE_PROFIT_1_PERCENT: 0.20,
|
||||
STOP_LOSS_PERCENT: 0.08, // 8% 止损
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.005,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.006,
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.025,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.02,
|
||||
MIN_HOLD_TIME_SEC: 1800,
|
||||
USE_DYNAMIC_ATR_MULTIPLIER: false,
|
||||
USE_FIXED_RISK_SIZING: true,
|
||||
|
|
@ -387,8 +387,8 @@ const GlobalConfig = () => {
|
|||
STOP_LOSS_PERCENT: 0.10, // 10% 止损
|
||||
TAKE_PROFIT_PERCENT: 0.40, // 40% 止盈
|
||||
TAKE_PROFIT_1_PERCENT: 0.25, // 25% 第一止盈
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.005,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.006,
|
||||
MIN_STOP_LOSS_PRICE_PCT: 0.025,
|
||||
MIN_TAKE_PROFIT_PRICE_PCT: 0.02,
|
||||
USE_TRAILING_STOP: false,
|
||||
ATR_STOP_LOSS_MULTIPLIER: 2.5,
|
||||
ATR_TAKE_PROFIT_MULTIPLIER: 1.5,
|
||||
|
|
|
|||
|
|
@ -206,6 +206,7 @@ DEFAULT_TRADING_CONFIG = {
|
|||
'ATR_STOP_LOSS_MULTIPLIER': 0.5, # ATR止损倍数0.5(2026-02-14:收紧止损,与ATR_MULTIPLIER_MAX一致)
|
||||
'ATR_TAKE_PROFIT_MULTIPLIER': 6.0, # ATR止盈倍数6.0(追求更高盈亏比)
|
||||
'RISK_REWARD_RATIO': 3.0, # 盈亏比3:1
|
||||
'USE_MARGIN_CAP_FOR_TP': True, # 止盈按保证金上限封顶:当盈亏比算出的TP2过远时,改用TAKE_PROFIT_PERCENT对应价格,便于获利离场
|
||||
'ATR_PERIOD': 14, # ATR计算周期14
|
||||
'USE_DYNAMIC_ATR_MULTIPLIER': False, # 不使用动态ATR
|
||||
'ATR_MULTIPLIER_MIN': 0.5, # 动态ATR倍数最小值
|
||||
|
|
|
|||
|
|
@ -1317,11 +1317,23 @@ class RiskManager:
|
|||
candidate_prices.append(('价格百分比', take_profit_price_price))
|
||||
|
||||
# ⚠️ 2026-01-29优化:优先使用基于止损距离的盈亏比止盈(确保达到3:1目标)
|
||||
# 如果存在基于盈亏比的止盈,优先使用它;否则选择最远的止盈(给利润更多空间,提高盈亏比)
|
||||
# 若开启 USE_MARGIN_CAP_FOR_TP:当盈亏比算出的止盈过远时,用「保证金止盈」封顶,便于获利离场
|
||||
use_margin_cap = bool(config.TRADING_CONFIG.get('USE_MARGIN_CAP_FOR_TP', True))
|
||||
if is_rr_based and take_profit_price_atr is not None:
|
||||
# 优先使用基于止损距离的盈亏比止盈(确保达到3:1目标)
|
||||
take_profit_price = take_profit_price_atr
|
||||
selected_method = 'ATR盈亏比'
|
||||
if use_margin_cap and take_profit_price_margin is not None:
|
||||
# 取「更近」的止盈,避免盈亏比止盈过远难以触及
|
||||
if side == 'BUY':
|
||||
if take_profit_price_margin < take_profit_price:
|
||||
take_profit_price = take_profit_price_margin
|
||||
selected_method = '保证金(止盈上限)'
|
||||
logger.info(f"止盈已按保证金上限封顶: 原盈亏比止盈过远,采用 TAKE_PROFIT_PERCENT 对应价格")
|
||||
else:
|
||||
if take_profit_price_margin > take_profit_price:
|
||||
take_profit_price = take_profit_price_margin
|
||||
selected_method = '保证金(止盈上限)'
|
||||
logger.info(f"止盈已按保证金上限封顶: 原盈亏比止盈过远,采用 TAKE_PROFIT_PERCENT 对应价格")
|
||||
else:
|
||||
# 如果没有基于盈亏比的止盈,选择最远的止盈(给利润更多空间,提高盈亏比)
|
||||
if side == 'BUY':
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# 山寨币策略配置评估与优化建议
|
||||
|
||||
> **已落实**:以下高优先级与中优先级建议已在「山寨币策略」预设与 ConfigGuide 中全量修改(总仓 65%、大盘 -1%、第二止盈 55%、显式补项、文档对齐)。
|
||||
> **已落实**:以下高优先级与中优先级建议已在「山寨币策略」预设与 ConfigGuide 中全量修改(总仓 65%、大盘 -1%、第二止盈 55%、显式补项、文档对齐)。
|
||||
> **2026-02 补充**:MIN_STOP_LOSS_PRICE_PCT / MIN_TAKE_PROFIT_PRICE_PCT 已从 0.5%/0.6% 调整为 2.5%/2%,与代码默认及《盈利提升方案》一致,避免过紧止损/止盈导致扫损或过早止盈。
|
||||
|
||||
## 一、当前山寨币策略(altcoin)全部配置项
|
||||
|
||||
|
|
@ -9,8 +10,8 @@
|
|||
|--------|--------|------|
|
||||
| ATR_STOP_LOSS_MULTIPLIER | 3.0 | ATR 止损倍数,3 倍给波动空间,减少噪音止损 |
|
||||
| STOP_LOSS_PERCENT | 0.10 (10%) | 强平保护线(保证金比例) |
|
||||
| MIN_STOP_LOSS_PRICE_PCT | 0.005 (0.5%) | 最小价格止损距离 |
|
||||
| MIN_TAKE_PROFIT_PRICE_PCT | 0.006 (0.6%) | 最小价格止盈距离 |
|
||||
| MIN_STOP_LOSS_PRICE_PCT | **0.025 (2.5%)** | 最小价格止损距离(过小易被波动扫损,已从 0.5% 修正) |
|
||||
| MIN_TAKE_PROFIT_PRICE_PCT | **0.02 (2%)** | 最小价格止盈距离(过小易过早止盈,已从 0.6% 修正) |
|
||||
| RISK_REWARD_RATIO | 3.0 | 盈亏比目标 3:1 |
|
||||
| TAKE_PROFIT_1_PERCENT | 0.30 (30%) | 第一目标止盈(保证金 30%) |
|
||||
| TAKE_PROFIT_PERCENT | 0.80 (80%) | 第二目标止盈(保证金 80%) |
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user