1
This commit is contained in:
parent
7cf6613540
commit
154f1fbf1d
|
|
@ -48,3 +48,21 @@ else:
|
|||
2. **适当拉长只读超时**(可选):在运行交易进程的环境里设置环境变量
|
||||
`READ_ONLY_REQUEST_TIMEOUT=90`(默认 60 秒),只读接口(持仓、成交、交易对信息)单次等待时间会变长,**不影响下单/止损止盈的快速失败**。
|
||||
3. **本次已做**:获取交易对信息(如 ENAUSDT)增加 60 秒超时 + 3 次重试;获取成交记录后几次重试间隔改为 2 秒;开仓失败时会打出完整异常与堆栈,便于排查。
|
||||
|
||||
---
|
||||
|
||||
## 近期改动是否增加请求量?
|
||||
|
||||
**不会。** 近期「止损/止盈按保证金封顶」(USE_MARGIN_CAP_FOR_SL、USE_MARGIN_CAP_FOR_TP)只改动了 **risk_manager 里 SL/TP 价格的计算方式**,没有新增任何对币安 API 的调用。
|
||||
-1003 来自**原有**的请求:如 `get_open_positions`、`get_account_balance`、`sync_positions_with_binance`、策略轮询、持仓/挂单同步等。要降低 -1003 概率,请拉大 `SCAN_INTERVAL`、减小扫描/同步频率(见上文「如何减少再次被限/封禁」),或改用 WebSocket 获取行情/持仓(若已接入)。
|
||||
|
||||
---
|
||||
|
||||
## 拿不到余额时,止盈止损还能正常执行吗?
|
||||
|
||||
**能。** 只要止损/止盈已经以**条件单**形式挂在币安(STOP_MARKET / TAKE_PROFIT_MARKET),触发与成交都由**币安撮合引擎**执行,不依赖本机是否还能调 API、能否拿到余额或持仓。
|
||||
|
||||
- **已挂在交易所的 SL/TP**:即使本机拿不到余额、持仓接口报错或 IP 被临时封禁,价格触及后仍会按交易所订单正常触发、平仓。
|
||||
- **依赖本机的部分**:若在封禁期间**新开仓**或需要**补挂** SL/TP,会因请求失败而无法下单;已存在仓位若之前已成功调用 `_ensure_exchange_sltp_orders` 并挂上保护单,则不受影响。
|
||||
|
||||
**结论**:拿不到余额/持仓只影响「本机展示与同步、新开仓、补挂单」;**已挂在币安上的止盈止损单会照常执行**,可放心。
|
||||
|
|
|
|||
|
|
@ -916,6 +916,12 @@ class ConfigManager:
|
|||
'MAX_CHANGE_PERCENT_FOR_LONG': eff_get('MAX_CHANGE_PERCENT_FOR_LONG', 25), # 做多时 24h 涨跌幅超过此值则不开多
|
||||
'MIN_RSI_FOR_SHORT': eff_get('MIN_RSI_FOR_SHORT', 30), # 做空时 RSI 低于此值则不做空
|
||||
'MAX_CHANGE_PERCENT_FOR_SHORT': eff_get('MAX_CHANGE_PERCENT_FOR_SHORT', 10), # 做空时 24h 涨跌幅超过此值则不做空
|
||||
# RSI 极限反转(与盈利期对齐:关闭可避免趋势里逆势止损)
|
||||
'RSI_EXTREME_REVERSE_ENABLED': eff_get('RSI_EXTREME_REVERSE_ENABLED', False),
|
||||
'RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H': eff_get('RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H', True),
|
||||
# 止盈/止损按保证金封顶(避免 TP 过远、SL 过宽扛单)
|
||||
'USE_MARGIN_CAP_FOR_TP': eff_get('USE_MARGIN_CAP_FOR_TP', True),
|
||||
'USE_MARGIN_CAP_FOR_SL': eff_get('USE_MARGIN_CAP_FOR_SL', True),
|
||||
|
||||
# 趋势尾部入场过滤 & 15m 短周期方向过滤开关(由 profile 控制默认值)
|
||||
'ENTRY_SHORT_INTERVAL': eff_get('ENTRY_SHORT_INTERVAL', '15m'),
|
||||
|
|
|
|||
|
|
@ -245,6 +245,12 @@ INSERT INTO `trading_config` (`config_key`, `config_value`, `config_type`, `cate
|
|||
-- API配置
|
||||
('BINANCE_API_KEY', '', 'string', 'api', '币安API密钥'),
|
||||
('BINANCE_API_SECRET', '', 'string', 'api', '币安API密钥'),
|
||||
('USE_TESTNET', 'false', 'boolean', 'api', '是否使用测试网')
|
||||
('USE_TESTNET', 'false', 'boolean', 'api', '是否使用测试网'),
|
||||
|
||||
-- 与盈利期对齐(2026-02-15)
|
||||
('RSI_EXTREME_REVERSE_ENABLED', 'false', 'boolean', 'strategy', '关闭RSI极限反转,与盈利期一致'),
|
||||
('RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H', 'true', 'boolean', 'strategy', '若开启反向仅允许4H中性'),
|
||||
('USE_MARGIN_CAP_FOR_TP', 'true', 'boolean', 'risk', '止盈按保证金封顶,避免过远'),
|
||||
('USE_MARGIN_CAP_FOR_SL', 'true', 'boolean', 'risk', '止损按保证金封顶,避免扛单')
|
||||
|
||||
ON DUPLICATE KEY UPDATE `config_value` = VALUES(`config_value`);
|
||||
|
|
|
|||
15
backend/database/update_config_profitable_alignment.sql
Normal file
15
backend/database/update_config_profitable_alignment.sql
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
-- 与盈利期对齐:RSI 关闭反向 + 止盈/止损封顶(2026-02-15)
|
||||
-- 【重要】只更新【全局配置】表 global_strategy_config(无 account_id,策略只读此表)。
|
||||
-- 不修改 trading_config(个人/账号配置);个人用不到,请用本脚本或前端「全局配置」页,不要改个人配置。
|
||||
|
||||
INSERT INTO `global_strategy_config` (`config_key`, `config_value`, `config_type`, `category`, `description`) VALUES
|
||||
('RSI_EXTREME_REVERSE_ENABLED', 'false', 'boolean', 'strategy', '关闭RSI极限反转,与盈利期一致'),
|
||||
('RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H', 'true', 'boolean', 'strategy', '若开启反向仅允许4H中性'),
|
||||
('USE_MARGIN_CAP_FOR_TP', 'true', 'boolean', 'risk', '止盈按保证金封顶,避免过远'),
|
||||
('USE_MARGIN_CAP_FOR_SL', 'true', 'boolean', 'risk', '止损按保证金封顶,避免扛单')
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`config_value` = VALUES(`config_value`),
|
||||
`config_type` = VALUES(`config_type`),
|
||||
`category` = VALUES(`category`),
|
||||
`description` = VALUES(`description`),
|
||||
`updated_at` = CURRENT_TIMESTAMP;
|
||||
|
|
@ -48,6 +48,15 @@ DEFAULTS_TO_SYNC = [
|
|||
"description": "每笔交易风险占总账户的百分比(如 0.025=2.5%)。配合止损距离计算仓位,风险可控。"},
|
||||
{"config_key": "MIN_MARGIN_USDT", "config_value": "10.0", "config_type": "number", "category": "risk",
|
||||
"description": "最小保证金(USDT)。2026-02-13 提高到 10.0 USDT 以避免无效小单。"},
|
||||
# 盈利期对齐(2026-02-15):仅当 key 不存在时插入,不覆盖已有值
|
||||
{"config_key": "RSI_EXTREME_REVERSE_ENABLED", "config_value": "false", "config_type": "boolean", "category": "strategy",
|
||||
"description": "关闭RSI极限反转,与盈利期一致"},
|
||||
{"config_key": "RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H", "config_value": "true", "config_type": "boolean", "category": "strategy",
|
||||
"description": "若开启反向仅允许4H中性"},
|
||||
{"config_key": "USE_MARGIN_CAP_FOR_TP", "config_value": "true", "config_type": "boolean", "category": "risk",
|
||||
"description": "止盈按保证金封顶,避免过远"},
|
||||
{"config_key": "USE_MARGIN_CAP_FOR_SL", "config_value": "true", "config_type": "boolean", "category": "risk",
|
||||
"description": "止损按保证金封顶,避免扛单"},
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
89
docs/交易对比分析_2026-02-14_盈利期vs亏损期.md
Normal file
89
docs/交易对比分析_2026-02-14_盈利期vs亏损期.md
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
# 交易对比分析:10-11 号盈利期 vs 今天亏损期
|
||||
|
||||
基于两份订单记录(10-11 号 vs 今天)的统计与对比,结论与优化建议如下。
|
||||
|
||||
---
|
||||
|
||||
## 一、数据概览
|
||||
|
||||
| 指标 | 10-11 号 (盈利期) | 今天 (亏损期) |
|
||||
|------|------------------|----------------|
|
||||
| 已平仓笔数 | 68 | 36 |
|
||||
| 总盈亏 | **+44.06 USDT** | **-6.18 USDT** |
|
||||
| 盈利笔数 | 43 | 4 |
|
||||
| 亏损笔数 | 25 | 32 |
|
||||
| 胜率 | **63.2%** | **11.1%** |
|
||||
| 止盈离场 | 35 笔 (+39.25) | **0 笔** |
|
||||
| 止损离场 | 14 笔 (-7.91) | 12 笔 (-6.52) |
|
||||
| sync/manual 等 | 19 笔 | 24 笔 |
|
||||
|
||||
---
|
||||
|
||||
## 二、主要问题
|
||||
|
||||
### 1. 今天 0 笔止盈离场,几乎全是止损
|
||||
|
||||
- 10-11 号:35 笔 `take_profit`,14 笔 `stop_loss`,止盈是主要盈利来源。
|
||||
- 今天:**没有一笔是止盈离场**,12 笔止损、18 笔 sync、6 笔 manual;亏损集中在止损(-6.52)和 RSI 反向单。
|
||||
|
||||
说明:要么止盈挂得太远(已通过 USE_MARGIN_CAP_FOR_TP/SL 缓解),要么仓位很快被止损打掉,没机会碰到止盈。
|
||||
|
||||
### 2. RSI 反向入场是今天亏损的主因
|
||||
|
||||
| 类型 | 10-11 号 | 今天 | 今天盈亏 |
|
||||
|------|----------|------|----------|
|
||||
| RSI 反向入场(超买反空/超卖反多) | **0 笔** | **16 笔** | **-5.88 USDT** |
|
||||
| 非 RSI 反向(纯趋势跟踪) | 68 笔 | 20 笔 | -0.30 USDT |
|
||||
|
||||
- 10-11 号:**没有 RSI 反向单**,全是顺势(MACD 金叉做多、死叉做空)。
|
||||
- 今天:16 笔是「MACD 金叉 + 上升趋势 + RSI 超买 → 反向做空」,在**上升趋势里逆势做空**,容易被继续涨打止损。
|
||||
|
||||
结论:**RSI 极限反转在趋势行情里逆势,导致大量止损;盈利期没有这类单。**
|
||||
|
||||
### 3. 市场状态差异
|
||||
|
||||
- 10-11 号:68 笔已平仓 **全部** 为 `market_regime=trending`,趋势明确,顺势单容易止盈。
|
||||
- 今天:`ranging` 9 笔、`trending` 7 笔、未知 20 笔;震荡/混合市更多,趋势策略 + 反向单容易双杀。
|
||||
|
||||
---
|
||||
|
||||
## 三、配置与策略执行上的问题
|
||||
|
||||
1. **RSI_EXTREME_REVERSE_ENABLED** 开启后,在**趋势行情**里也会反向(如上升趋势 RSI 超买做空),与「只做趋势、顺势」冲突,导致逆势单多、止损多。
|
||||
2. **止盈/止损距离**:今日之前存在 TP 过远、SL 过宽的问题,已通过 USE_MARGIN_CAP_FOR_TP / USE_MARGIN_CAP_FOR_SL 封顶,新开仓会改善。
|
||||
3. **震荡市开仓**:今天有 ranging 下开仓,趋势策略在震荡市表现通常较差,容易来回止损。
|
||||
|
||||
---
|
||||
|
||||
## 四、优化建议(按优先级)
|
||||
|
||||
### 1. 收紧或关闭 RSI 极限反转(优先)
|
||||
|
||||
- **方案 A(推荐)**:关闭 `RSI_EXTREME_REVERSE_ENABLED`(在全局配置中设为 **false**),回归纯趋势跟踪,与 10-11 号盈利期一致。当前默认在 `trading_system/config.py` 为 True,可在后台/数据库改为 false 并重启或等配置热更新。
|
||||
- **方案 B**:若保留,则将 `RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H` 设为 **true**,仅在 4H 中性时允许 RSI 反向,减少在强趋势里逆势做空/做多。
|
||||
|
||||
### 2. 保持止盈/止损封顶
|
||||
|
||||
- 保持 **USE_MARGIN_CAP_FOR_TP = True**、**USE_MARGIN_CAP_FOR_SL = True**,避免 TP 过远打不到、SL 过宽扛单。
|
||||
- 新开仓已按保证金比例封顶,无需再改。
|
||||
|
||||
### 3. 继续「仅趋势市自动开仓」
|
||||
|
||||
- **AUTO_TRADE_ONLY_TRENDING = True** 保持,减少在 ranging 下的开仓,与 10-11 号一致(当时全部 trending)。
|
||||
|
||||
### 4. 可选:提高顺势门槛、降低频率
|
||||
|
||||
- 维持 **MIN_SIGNAL_STRENGTH = 8**,或暂时提到 9,减少边缘信号。
|
||||
- 适当拉大 **SCAN_INTERVAL**(如 900→1200),降低请求与开仓频率,给趋势更明确后再进。
|
||||
|
||||
---
|
||||
|
||||
## 五、小结
|
||||
|
||||
| 问题 | 原因 | 建议 |
|
||||
|------|------|------|
|
||||
| 今天 0 笔止盈、多笔止损 | ① RSI 反向在趋势里逆势 ② 之前 TP 远/SL 宽 | 关闭或严格限制 RSI 反向;已用保证金封顶 |
|
||||
| 盈利期 vs 亏损期差异大 | 盈利期无 RSI 反向、全部 trending | 对齐盈利期:纯趋势 + 不逆势 |
|
||||
| 震荡市开仓 | ranging 下仍开仓 | 保持 ONLY_TRENDING,不放松 |
|
||||
|
||||
**核心**:10-11 号盈利来自「纯趋势跟踪 + 无 RSI 反向」;今天亏损主要来自「RSI 反向在趋势里逆势」。优先关闭或严格限制 RSI 极限反转,并保持现有止盈/止损封顶与仅趋势市开仓,预期能明显改善收益与回撤。
|
||||
52
docs/快速使用_盈利期对齐配置.md
Normal file
52
docs/快速使用_盈利期对齐配置.md
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# 快速使用:盈利期对齐配置(2026-02-15)
|
||||
|
||||
已按「10-11 号盈利期 vs 今天亏损期」对比结论,把**全局配置与山寨币预设**对齐为盈利期风格,便于你之后一键使用。
|
||||
|
||||
**重要**:所有更新都只写入**全局配置**(表 `global_strategy_config`),**不涉及个人/账号配置**(`trading_config`)。策略实际读取的是全局配置,个人用不到、也不用改个人配置;请在**「全局配置」页**操作(点「山寨币策略(推荐)」或执行下面的 SQL)。
|
||||
|
||||
---
|
||||
|
||||
## 一、已改动的配置项(无需再改)
|
||||
|
||||
| 配置项 | 值 | 说明 |
|
||||
|--------|-----|------|
|
||||
| **RSI_EXTREME_REVERSE_ENABLED** | **false** | 关闭 RSI 极限反转,与盈利期一致;避免趋势里逆势止损 |
|
||||
| **RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H** | true | 若将来开启反向,仅允许 4H 中性 |
|
||||
| **USE_MARGIN_CAP_FOR_TP** | true | 止盈按保证金封顶,避免 +238% 那种过远 |
|
||||
| **USE_MARGIN_CAP_FOR_SL** | true | 止损按保证金封顶,避免 -60%~-80% 扛单 |
|
||||
| **AUTO_TRADE_ONLY_TRENDING** | true | 仅趋势市自动开仓 |
|
||||
| **MIN_SIGNAL_STRENGTH** | 8 | 保持 8,与盈利期一致 |
|
||||
|
||||
上述已写入:
|
||||
- `trading_system/config.py`(代码默认)
|
||||
- 前端 **GlobalConfig 山寨币策略(推荐)** 预设
|
||||
- `backend/config_manager.py` 默认
|
||||
- `backend/database/init.sql`(新库初始化)
|
||||
- `backend/database/update_config_profitable_alignment.sql`(**更新全局配置表 global_strategy_config**,仅这 4 项;策略实际读的是全局配置,不是个人 trading_config)
|
||||
|
||||
---
|
||||
|
||||
## 二、你这边怎么「快速用」(都是改全局,不改个人)
|
||||
|
||||
1. **推荐**:在前端 **「全局配置」** 页(不是「我的配置」/账号配置)点击 **「山寨币策略(推荐)」**,会一次性写入**全局表** `global_strategy_config`,保存后对所有账号生效;个人配置用不到、不用改。
|
||||
2. **若直接改数据库**:执行
|
||||
`mysql -u... -p... your_db < backend/database/update_config_profitable_alignment.sql`
|
||||
会**只更新全局表 global_strategy_config**(策略只读此表);不涉及个人/账号的 trading_config。若还没有该表,需先执行 `backend/database/add_global_strategy_config.sql` 建表。
|
||||
3. **重启**:改完配置后重启交易进程(或等配置热更新),新开仓会按新逻辑(无 RSI 反向 + 止盈/止损封顶)。
|
||||
|
||||
---
|
||||
|
||||
## 三、当前持仓简要分析(持仓记录_2026-02-15T00-08-22.json)
|
||||
|
||||
- **共 11 笔**,总保证金约 46.87 U,未实现盈亏约 +3.38 U。
|
||||
- **有 SL/TP 且比例正常(约 10%~15% SL、55% TP)**:1000BONKUSDT、VIRTUALUSDT、PIPPINUSDT、ZECUSDT、TAOUSDT、PYTHUSDT、HUSDT(共 7 笔)。说明新开的或已补挂的仓已用到封顶逻辑,无需再调参数。
|
||||
- **无 SL/TP 或仅 SL**:COMPUSDT、AAVEUSDT、WLDUSDT、RIVERUSDT(共 4 笔)。多为补建/手动仓,交易所侧可能只有止损或没有保护单。若希望统一保护,可在币安对应仓位上**手动挂止盈/止损**;不挂则仅依赖本机监控或手动平仓。
|
||||
|
||||
**参数建议**:当前有 SL/TP 的仓已经是「保证金封顶」后的结果,无需再调。之后新开仓会继续用:RSI 反向关 + 止盈/止损封顶 + 仅趋势市,与盈利期对齐。
|
||||
|
||||
---
|
||||
|
||||
## 四、小结
|
||||
|
||||
- 配置已按盈利期对齐并写入代码与预设;**快速使用** = 前端点「山寨币策略(推荐)」或跑一遍 `update_config_profitable_alignment.sql`,再重启交易进程。
|
||||
- 当前持仓里 7 笔 SL/TP 已在合理范围;4 笔无/缺 TP 的可在交易所按需补挂或保持现状。
|
||||
53
docs/持仓分析_2026-02-15_与参数建议.md
Normal file
53
docs/持仓分析_2026-02-15_与参数建议.md
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
# 当前持仓简要分析(2026-02-15)与参数建议
|
||||
|
||||
基于 `持仓记录_2026-02-15T00-08-22.json` 的汇总与前述「盈利期 vs 亏损期」结论,给出当前持仓结论与已做配置调整。
|
||||
|
||||
---
|
||||
|
||||
## 一、当前持仓 SL/TP 情况(约 11 笔)
|
||||
|
||||
| 标的 | 方向 | 杠杆 | 止损(保证金) | 止盈(保证金) | 当前盈亏 |
|
||||
|------|------|------|--------------|--------------|----------|
|
||||
| 1000BONKUSDT | SELL | 6x | -15% | +55% | -1.2% |
|
||||
| VIRTUALUSDT | SELL | 5x | -13% | +55% | +8.3% |
|
||||
| PIPPINUSDT | SELL | 2x | -10% | +55% | +5.6% |
|
||||
| ZECUSDT | SELL | 5x | -13% | +55% | +10.8% |
|
||||
| TAOUSDT | SELL | 4x | -10% | +55% | +4.7% |
|
||||
| PYTHUSDT | SELL | 5x | ~-10% | +55% | +28.3% |
|
||||
| HUSDT | SELL | 2x | ~-10% | +55% | +5.4% |
|
||||
| COMPUSDT / AAVEUSDT / WLDUSDT / RIVERUSDT | - | - | 无或仅 SL | 无或仅 SL | - |
|
||||
|
||||
**结论**:多数有完整 SL/TP 的仓位已处于「止损约 -10%~-15%、止盈 +55%」的封顶范围内,和当前参数设计一致;**无需再为这批持仓改参数**。
|
||||
COMPUSDT、AAVEUSDT、WLDUSDT、RIVERUSDT 等为补建/手动仓,部分无 TP 或无 SL,若需保护可在交易所手动补挂或按需平仓。
|
||||
|
||||
---
|
||||
|
||||
## 二、已做的全局配置与预设调整(方便之后快速使用)
|
||||
|
||||
以下已按「盈利期对齐 + 止盈止损封顶」改好,之后用「山寨币策略」预设或默认即会带上这些设置。
|
||||
|
||||
### 1. 交易系统默认(`trading_system/config.py`)
|
||||
|
||||
- **RSI_EXTREME_REVERSE_ENABLED**: `True` → **`False`**(关闭 RSI 极限反转,与盈利期一致)
|
||||
- **RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H**: `False` → **`True`**(若将来再开反向,仅允许 4H 中性)
|
||||
|
||||
### 2. 前端「山寨币策略」预设(`frontend/src/components/GlobalConfig.jsx`)
|
||||
|
||||
在 altcoin 预设中**显式加入**(点「山寨币策略(推荐)」即会写入):
|
||||
|
||||
- **RSI_EXTREME_REVERSE_ENABLED**: **false**
|
||||
- **RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H**: **true**
|
||||
- **USE_MARGIN_CAP_FOR_TP**: **true**
|
||||
- **USE_MARGIN_CAP_FOR_SL**: **true**
|
||||
|
||||
### 3. 后端配置拉取(`backend/config_manager.py`)
|
||||
|
||||
- 已支持从 DB/Redis 读取:**RSI_EXTREME_REVERSE_ENABLED**、**RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H**、**USE_MARGIN_CAP_FOR_TP**、**USE_MARGIN_CAP_FOR_SL**,默认与上面一致(RSI 关、封顶开)。
|
||||
|
||||
---
|
||||
|
||||
## 三、之后使用方式
|
||||
|
||||
1. **快速恢复推荐配置**:在「全局配置」里点 **「山寨币策略(推荐)」**,会写入上述 RSI 关闭 + 止盈止损封顶,无需再逐项改。
|
||||
2. **当前持仓**:已有 SL/TP 的仓位参数合理,可继续持有或按策略止盈止损;无 TP 的补建/手动仓可按需在交易所补挂或平仓。
|
||||
3. **新开仓**:将自动应用「无 RSI 反向 + 止盈止损封顶」,与 10–11 号盈利期逻辑对齐,便于后续快速复现当时风格。
|
||||
|
|
@ -289,6 +289,11 @@ const GlobalConfig = () => {
|
|||
BETA_FILTER_THRESHOLD: -0.01, // -1% 再屏蔽多单(优化:减少误杀)
|
||||
ENTRY_SHORT_TREND_FILTER_ENABLED: true,
|
||||
MAX_TREND_MOVE_BEFORE_ENTRY: 0.04,
|
||||
// 与盈利期对齐:关闭 RSI 反向,避免趋势里逆势止损;止盈/止损封顶保持开启
|
||||
RSI_EXTREME_REVERSE_ENABLED: false,
|
||||
RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H: true,
|
||||
USE_MARGIN_CAP_FOR_TP: true,
|
||||
USE_MARGIN_CAP_FOR_SL: true,
|
||||
},
|
||||
},
|
||||
conservative: {
|
||||
|
|
|
|||
|
|
@ -240,8 +240,8 @@ DEFAULT_TRADING_CONFIG = {
|
|||
'MAX_CHANGE_PERCENT_FOR_SHORT': 10, # 做空时 24h 涨跌幅超过此值则不做空(24h 仍大涨时不做空)
|
||||
|
||||
# ===== RSI 极限反转策略(抄底/逃顶)=====
|
||||
'RSI_EXTREME_REVERSE_ENABLED': True, # 开启RSI极限反转:超买反空,超卖反多
|
||||
'RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H': False, # 允许在有趋势时反向操作(例如:下跌趋势中RSI超卖 -> 抄底)
|
||||
'RSI_EXTREME_REVERSE_ENABLED': False, # 关闭RSI极限反转,与盈利期一致;开启易在趋势里逆势导致止损
|
||||
'RSI_EXTREME_REVERSE_ONLY_NEUTRAL_4H': True, # 若将来开启反向,仅允许4H中性时
|
||||
|
||||
'ATR_SPIKE_THRESHOLD': 2.0, # ATR异常激增阈值(当前ATR / 平均ATR)
|
||||
'SIGNAL_STRENGTH_POSITION_MULTIPLIER': {7: 0.8, 8: 1.0, 9: 1.2, 10: 1.5}, # 信号强度分级:7分80%,8分100%,9分120%,10分150%(好机会自动加仓)
|
||||
|
|
|
|||
|
|
@ -1,452 +0,0 @@
|
|||
[
|
||||
{
|
||||
"id": 4640,
|
||||
"symbol": "PIPPINUSDT",
|
||||
"side": "SELL",
|
||||
"quantity": 13,
|
||||
"entry_price": 0.70165,
|
||||
"entry_value_usdt": 9.12145,
|
||||
"notional_usdt": 9.060078690000001,
|
||||
"margin_usdt": 4.5300393450000005,
|
||||
"original_notional_usdt": 9.12145,
|
||||
"original_margin_usdt": 4.560725,
|
||||
"mark_price": 0.69692913,
|
||||
"pnl": 0.06137131,
|
||||
"pnl_percent": 1.3547632884853011,
|
||||
"leverage": 2,
|
||||
"entry_time": 1771087159,
|
||||
"stop_loss_price": 0.90642143,
|
||||
"take_profit_price": 0.50869625,
|
||||
"take_profit_1": 0.39449286,
|
||||
"take_profit_2": 0.50869625,
|
||||
"atr": 0.06825714,
|
||||
"entry_order_id": 4503065801,
|
||||
"entry_order_type": "LIMIT",
|
||||
"open_orders": [
|
||||
{
|
||||
"orderId": 2000000449763200,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.5087,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449763193,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.90642,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
],
|
||||
"active_sl_orders": "STOP_MARKET @ 0.90642 (NEW)",
|
||||
"active_tp_orders": "TAKE_PROFIT_MARKET @ 0.5087 (NEW)",
|
||||
"binance_open_orders_raw": [
|
||||
{
|
||||
"orderId": 2000000449763200,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.5087,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449763193,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.90642,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4643,
|
||||
"symbol": "ZECUSDT",
|
||||
"side": "SELL",
|
||||
"quantity": 0.084,
|
||||
"entry_price": 283.79,
|
||||
"entry_value_usdt": 23.83836,
|
||||
"notional_usdt": 23.828280000000003,
|
||||
"margin_usdt": 4.765656000000001,
|
||||
"original_notional_usdt": 23.83836,
|
||||
"original_margin_usdt": 4.767672,
|
||||
"mark_price": 283.67,
|
||||
"pnl": 0.01008,
|
||||
"pnl_percent": 0.21151337822117247,
|
||||
"leverage": 5,
|
||||
"entry_time": 1771087205,
|
||||
"stop_loss_price": 327.98,
|
||||
"take_profit_price": 252.5731,
|
||||
"take_profit_1": 217.505,
|
||||
"take_profit_2": 252.5731,
|
||||
"atr": 14.73,
|
||||
"entry_order_id": 797657761399,
|
||||
"entry_order_type": "LIMIT",
|
||||
"open_orders": [
|
||||
{
|
||||
"orderId": 2000000449766575,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 252.58,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449766566,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 327.98,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
],
|
||||
"active_sl_orders": "STOP_MARKET @ 327.98 (NEW)",
|
||||
"active_tp_orders": "TAKE_PROFIT_MARKET @ 252.58 (NEW)",
|
||||
"binance_open_orders_raw": [
|
||||
{
|
||||
"orderId": 2000000449766575,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 252.58,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449766566,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 327.98,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4641,
|
||||
"symbol": "TAOUSDT",
|
||||
"side": "SELL",
|
||||
"quantity": 0.104,
|
||||
"entry_price": 191.45,
|
||||
"entry_value_usdt": 19.9108,
|
||||
"notional_usdt": 19.9984220904,
|
||||
"margin_usdt": 4.9996055226,
|
||||
"original_notional_usdt": 19.9108,
|
||||
"original_margin_usdt": 4.9777,
|
||||
"mark_price": 192.2925201,
|
||||
"pnl": -0.08762209,
|
||||
"pnl_percent": -1.7525800706459123,
|
||||
"leverage": 4,
|
||||
"entry_time": 1771087174,
|
||||
"stop_loss_price": 223.29714286,
|
||||
"take_profit_price": 165.125625,
|
||||
"take_profit_1": 143.67928571,
|
||||
"take_profit_2": 165.125625,
|
||||
"atr": 10.61571429,
|
||||
"entry_order_id": 9523399174,
|
||||
"entry_order_type": "LIMIT",
|
||||
"open_orders": [
|
||||
{
|
||||
"orderId": 2000000449764167,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 165.13,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449764159,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 223.29,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
],
|
||||
"active_sl_orders": "STOP_MARKET @ 223.29 (NEW)",
|
||||
"active_tp_orders": "TAKE_PROFIT_MARKET @ 165.13 (NEW)",
|
||||
"binance_open_orders_raw": [
|
||||
{
|
||||
"orderId": 2000000449764167,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 165.13,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449764159,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 223.29,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4642,
|
||||
"symbol": "COAIUSDT",
|
||||
"side": "SELL",
|
||||
"quantity": 22,
|
||||
"entry_price": 0.4395,
|
||||
"entry_value_usdt": 9.669,
|
||||
"notional_usdt": 9.4624585,
|
||||
"margin_usdt": 4.73122925,
|
||||
"original_notional_usdt": 9.669,
|
||||
"original_margin_usdt": 4.8345,
|
||||
"mark_price": 0.43011175,
|
||||
"pnl": 0.2065415,
|
||||
"pnl_percent": 4.365493386311813,
|
||||
"leverage": 2,
|
||||
"entry_time": 1771087179,
|
||||
"stop_loss_price": 0.57938571,
|
||||
"take_profit_price": 0.3186375,
|
||||
"take_profit_1": 0.22967143,
|
||||
"take_profit_2": 0.3186375,
|
||||
"atr": 0.04662857,
|
||||
"entry_order_id": 2086471512,
|
||||
"entry_order_type": "LIMIT",
|
||||
"open_orders": [
|
||||
{
|
||||
"orderId": 2000000449764560,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.3187,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449764551,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.5793,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
],
|
||||
"active_sl_orders": "STOP_MARKET @ 0.5793 (NEW)",
|
||||
"active_tp_orders": "TAKE_PROFIT_MARKET @ 0.3187 (NEW)",
|
||||
"binance_open_orders_raw": [
|
||||
{
|
||||
"orderId": 2000000449764560,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.3187,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449764551,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.5793,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4647,
|
||||
"symbol": "PYTHUSDT",
|
||||
"side": "SELL",
|
||||
"quantity": 377,
|
||||
"entry_price": 0.0610065251989,
|
||||
"entry_value_usdt": 22.9994599999853,
|
||||
"notional_usdt": 23.053546230000002,
|
||||
"margin_usdt": 4.610709246000001,
|
||||
"original_notional_usdt": 22.9994505,
|
||||
"original_margin_usdt": 4.5998901,
|
||||
"mark_price": 0.06114999,
|
||||
"pnl": -0.05408819,
|
||||
"pnl_percent": -1.173099128879661,
|
||||
"leverage": 5,
|
||||
"entry_time": 1771087459,
|
||||
"stop_loss_price": 0.06959507,
|
||||
"take_profit_price": 0.05429579,
|
||||
"take_profit_1": 0.04812364,
|
||||
"take_profit_2": 0.05429579,
|
||||
"atr": 0.00286286,
|
||||
"entry_order_id": 5286793226,
|
||||
"entry_order_type": "LIMIT",
|
||||
"open_orders": [
|
||||
{
|
||||
"orderId": 2000000449784169,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.0543,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449784150,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.06959,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
],
|
||||
"active_sl_orders": "STOP_MARKET @ 0.06959 (NEW)",
|
||||
"active_tp_orders": "TAKE_PROFIT_MARKET @ 0.0543 (NEW)",
|
||||
"binance_open_orders_raw": [
|
||||
{
|
||||
"orderId": 2000000449784169,
|
||||
"type": "TAKE_PROFIT_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.0543,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
},
|
||||
{
|
||||
"orderId": 2000000449784150,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 0.06959,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4639,
|
||||
"symbol": "VVVUSDT",
|
||||
"side": "SELL",
|
||||
"quantity": 3.64,
|
||||
"entry_price": 2.792,
|
||||
"entry_value_usdt": 10.16288,
|
||||
"notional_usdt": 10.46136,
|
||||
"margin_usdt": 5.23068,
|
||||
"original_notional_usdt": 10.16288,
|
||||
"original_margin_usdt": 5.08144,
|
||||
"mark_price": 2.874,
|
||||
"pnl": -0.29848,
|
||||
"pnl_percent": -5.706332637439109,
|
||||
"leverage": 2,
|
||||
"entry_time": 1771081222,
|
||||
"stop_loss_price": 3.776,
|
||||
"take_profit_price": -0.16,
|
||||
"take_profit_1": 1.316,
|
||||
"take_profit_2": -0.16,
|
||||
"atr": 0.328,
|
||||
"entry_order_id": 824862620,
|
||||
"entry_order_type": "LIMIT",
|
||||
"open_orders": [
|
||||
{
|
||||
"orderId": 2000000449333341,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 3.776,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
],
|
||||
"active_sl_orders": "STOP_MARKET @ 3.776 (NEW)",
|
||||
"active_tp_orders": "",
|
||||
"binance_open_orders_raw": [
|
||||
{
|
||||
"orderId": 2000000449333341,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 3.776,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4637,
|
||||
"symbol": "RIVERUSDT",
|
||||
"side": "SELL",
|
||||
"quantity": 0.7,
|
||||
"entry_price": 13.874,
|
||||
"entry_value_usdt": 9.7118,
|
||||
"notional_usdt": 9.251199999999999,
|
||||
"margin_usdt": 4.6255999999999995,
|
||||
"original_notional_usdt": 9.7118,
|
||||
"original_margin_usdt": 4.8559,
|
||||
"mark_price": 13.216,
|
||||
"pnl": 0.4606,
|
||||
"pnl_percent": 9.95762711864407,
|
||||
"leverage": 2,
|
||||
"entry_time": 1771079231,
|
||||
"stop_loss_price": 19.02242857,
|
||||
"take_profit_price": -1.57128571,
|
||||
"take_profit_1": 6.15135714,
|
||||
"take_profit_2": -1.57128571,
|
||||
"atr": 1.71614286,
|
||||
"entry_order_id": 3923246641,
|
||||
"entry_order_type": "LIMIT",
|
||||
"open_orders": [
|
||||
{
|
||||
"orderId": 2000000449191175,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 19.022,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
],
|
||||
"active_sl_orders": "STOP_MARKET @ 19.022 (NEW)",
|
||||
"active_tp_orders": "",
|
||||
"binance_open_orders_raw": [
|
||||
{
|
||||
"orderId": 2000000449191175,
|
||||
"type": "STOP_MARKET",
|
||||
"side": "BUY",
|
||||
"stopPrice": 19.022,
|
||||
"price": 0,
|
||||
"origType": "CONDITIONAL",
|
||||
"reduceOnly": true,
|
||||
"status": "NEW"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Loading…
Reference in New Issue
Block a user