From 154f1fbf1d6c8b88b9855c8b615502ebf858f3a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Sun, 15 Feb 2026 08:26:22 +0800 Subject: [PATCH] 1 --- BINANCE_IP_BAN_1003.md | 18 + backend/config_manager.py | 6 + backend/database/init.sql | 8 +- .../update_config_profitable_alignment.sql | 15 + backend/sync_global_config_defaults.py | 9 + ...”分æž_2026-02-14_盈利期vsäºæŸæœŸ.md | 89 ++++ docs/快速使用_盈利期对é½é…ç½®.md | 52 ++ ...æŒä»“分æž_2026-02-15_ä¸Žå‚æ•°å»ºè®®.md | 53 ++ frontend/src/components/GlobalConfig.jsx | 5 + trading_system/config.py | 4 +- æŒä»“记录_2026-02-14T16-45-51.json | 452 ------------------ 11 files changed, 256 insertions(+), 455 deletions(-) create mode 100644 backend/database/update_config_profitable_alignment.sql create mode 100644 docs/交易对比分æž_2026-02-14_盈利期vsäºæŸæœŸ.md create mode 100644 docs/快速使用_盈利期对é½é…ç½®.md create mode 100644 docs/æŒä»“分æž_2026-02-15_ä¸Žå‚æ•°å»ºè®®.md delete mode 100644 æŒä»“记录_2026-02-14T16-45-51.json diff --git a/BINANCE_IP_BAN_1003.md b/BINANCE_IP_BAN_1003.md index ec3108e..fe8e6e0 100644 --- a/BINANCE_IP_BAN_1003.md +++ b/BINANCE_IP_BAN_1003.md @@ -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` å¹¶æŒ‚ä¸Šä¿æŠ¤å•,则ä¸å—å½±å“。 + +**结论**:拿ä¸åˆ°ä½™é¢/æŒä»“åªå½±å“ã€Œæœ¬æœºå±•ç¤ºä¸ŽåŒæ­¥ã€æ–°å¼€ä»“ã€è¡¥æŒ‚å•ã€ï¼›**已挂在å¸å®‰ä¸Šçš„æ­¢ç›ˆæ­¢æŸå•会照常执行**ï¼Œå¯æ”¾å¿ƒã€‚ diff --git a/backend/config_manager.py b/backend/config_manager.py index f948bcf..747637d 100644 --- a/backend/config_manager.py +++ b/backend/config_manager.py @@ -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'), diff --git a/backend/database/init.sql b/backend/database/init.sql index 8e5a8b6..8463ebd 100644 --- a/backend/database/init.sql +++ b/backend/database/init.sql @@ -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`); diff --git a/backend/database/update_config_profitable_alignment.sql b/backend/database/update_config_profitable_alignment.sql new file mode 100644 index 0000000..6afc355 --- /dev/null +++ b/backend/database/update_config_profitable_alignment.sql @@ -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; diff --git a/backend/sync_global_config_defaults.py b/backend/sync_global_config_defaults.py index 285590b..42e37b9 100644 --- a/backend/sync_global_config_defaults.py +++ b/backend/sync_global_config_defaults.py @@ -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": "æ­¢æŸæŒ‰ä¿è¯é‡‘å°é¡¶ï¼Œé¿å…扛å•"}, ] diff --git a/docs/交易对比分æž_2026-02-14_盈利期vsäºæŸæœŸ.md b/docs/交易对比分æž_2026-02-14_盈利期vsäºæŸæœŸ.md new file mode 100644 index 0000000..ca46cc1 --- /dev/null +++ b/docs/交易对比分æž_2026-02-14_盈利期vsäºæŸæœŸ.md @@ -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 æžé™åè½¬ï¼Œå¹¶ä¿æŒçŽ°æœ‰æ­¢ç›ˆ/æ­¢æŸå°é¡¶ä¸Žä»…趋势市开仓,预期能明显改善收益与回撤。 diff --git a/docs/快速使用_盈利期对é½é…ç½®.md b/docs/快速使用_盈利期对é½é…ç½®.md new file mode 100644 index 0000000..8c098b1 --- /dev/null +++ b/docs/快速使用_盈利期对é½é…ç½®.md @@ -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 çš„å¯åœ¨äº¤æ˜“æ‰€æŒ‰éœ€è¡¥æŒ‚æˆ–ä¿æŒçŽ°çŠ¶ã€‚ diff --git a/docs/æŒä»“分æž_2026-02-15_ä¸Žå‚æ•°å»ºè®®.md b/docs/æŒä»“分æž_2026-02-15_ä¸Žå‚æ•°å»ºè®®.md new file mode 100644 index 0000000..79253c1 --- /dev/null +++ b/docs/æŒä»“分æž_2026-02-15_ä¸Žå‚æ•°å»ºè®®.md @@ -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 å·ç›ˆåˆ©æœŸé€»è¾‘对é½ï¼Œä¾¿äºŽåŽç»­å¿«é€Ÿå¤çŽ°å½“æ—¶é£Žæ ¼ã€‚ diff --git a/frontend/src/components/GlobalConfig.jsx b/frontend/src/components/GlobalConfig.jsx index a3fc2eb..14b26f2 100644 --- a/frontend/src/components/GlobalConfig.jsx +++ b/frontend/src/components/GlobalConfig.jsx @@ -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: { diff --git a/trading_system/config.py b/trading_system/config.py index 80c5edd..22c96e2 100644 --- a/trading_system/config.py +++ b/trading_system/config.py @@ -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%(好机会自动加仓) diff --git a/æŒä»“记录_2026-02-14T16-45-51.json b/æŒä»“记录_2026-02-14T16-45-51.json deleted file mode 100644 index 8aae1d3..0000000 --- a/æŒä»“记录_2026-02-14T16-45-51.json +++ /dev/null @@ -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" - } - ] - } -] \ No newline at end of file