From 47357dfdbfce2d378d004f0e9b2baf20fc647f77 Mon Sep 17 00:00:00 2001 From: 0xYYBB | ZYY | Bobo <128128010+zhouyongyou@users.noreply.github.com> Date: Fri, 7 Nov 2025 09:19:20 +0800 Subject: [PATCH] fix(prompts): reduce margin usage from 95% to 88% for Hyperliquid liquidation buffer (#666) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problem Users with small accounts (<$200) encounter Hyperliquid error: "Insufficient margin to place order. asset=1" Real case: $98.89 account failed to open position ## Root Cause 5% reserve insufficient for: - Trading fees (~0.04%) - Slippage (0.01-0.1%) - Liquidation margin buffer (Hyperliquid requirement) Additionally, undefined "Allocation %" parameter caused confusion. ## Solution 1. Reduce margin usage rate from 95% to 88% (reserve 12%) 2. Remove undefined "Allocation %" parameter 3. Add small account example ($98.89) for clarity ## Example ($98.89 account) Before: $93.95 margin → $4.75 remaining ❌ After: $87.02 margin → $11.87 remaining ✅ ## Modified Files - prompts/adaptive.txt - prompts/default.txt - prompts/nof1.txt ## Testing Verified with $98.89 account on z-dev branch - successful order placement Fixes #549 --- prompts/adaptive.txt | 15 ++++++++++----- prompts/default.txt | 10 +++++----- prompts/nof1.txt | 10 +++++----- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/prompts/adaptive.txt b/prompts/adaptive.txt index a61c271d..bd640852 100644 --- a/prompts/adaptive.txt +++ b/prompts/adaptive.txt @@ -345,15 +345,20 @@ **重要**:position_size_usd 是**名义价值**(包含杠杆),非保证金需求。 **计算步骤**: -1. **可用保证金** = Available Cash × 0.95 × Allocation %(预留5%给手续费) +1. **可用保证金** = Available Cash × 0.88(预留12%给手续费、滑点与清算保证金缓冲) 2. **名义价值** = 可用保证金 × Leverage 3. **position_size_usd** = 名义价值(这是 JSON 中应填写的值) 4. **Position Size (Coins)** = position_size_usd / Current Price -**示例**:Available Cash = $500, Leverage = 5x, Allocation = 100% -- 可用保证金 = $500 × 0.95 × 100% = $475 -- position_size_usd = $475 × 5 = **$2,375** ← JSON 中填写此值 -- 实际占用保证金 = $475,剩余 $25 用于手续费 +**示例**:Available Cash = $500, Leverage = 5x +- 可用保证金 = $500 × 0.88 = $440 +- position_size_usd = $440 × 5 = **$2,200** ← JSON 中填写此值 +- 实际占用保证金 = $440,剩余 $60 用于手续费、滑点与清算保护 + +**示例2(小账户)**:Available Cash = $98.89, Leverage = 5x +- 可用保证金 = $98.89 × 0.88 = $87.02 +- position_size_usd = $87.02 × 5 = **$435.10** ← JSON 中填写此值 +- 实际占用保证金 = $87.02,剩余 $11.87 用于手续费、滑点与清算保护 ## 杠杆选择指引 diff --git a/prompts/default.txt b/prompts/default.txt index 3094e473..ff01a508 100644 --- a/prompts/default.txt +++ b/prompts/default.txt @@ -111,15 +111,15 @@ **重要**:`position_size_usd` 是**名义价值**(包含杠杆),非保证金需求。 **计算步骤**: -1. **可用保证金** = Available Cash × 0.95 × 配置比例(预留5%手续费) +1. **可用保证金** = Available Cash × 0.88(预留12%给手续费、滑点与清算保证金缓冲) 2. **名义价值** = 可用保证金 × Leverage 3. **position_size_usd** = 名义价值(JSON中填写此值) 4. **实际币数** = position_size_usd / Current Price -**示例**:可用资金 $500,杠杆 5x,配置 100% -- 可用保证金 = $500 × 0.95 = $475 -- position_size_usd = $475 × 5 = **$2,375** ← JSON填此值 -- 实际占用保证金 = $475,剩余 $25 用于手续费 +**示例**:可用资金 $500,杠杆 5x +- 可用保证金 = $500 × 0.88 = $440 +- position_size_usd = $440 × 5 = **$2,200** ← JSON填此值 +- 实际占用保证金 = $440,剩余 $60 用于手续费、滑点与清算保护 --- diff --git a/prompts/nof1.txt b/prompts/nof1.txt index 6b7df707..508f7431 100644 --- a/prompts/nof1.txt +++ b/prompts/nof1.txt @@ -55,15 +55,15 @@ You have exactly SIX possible actions per decision cycle: ## Calculation Steps: -1. **Available Margin** = Available Cash × 0.95 × Allocation % (reserve 5% for fees) +1. **Available Margin** = Available Cash × 0.88 (reserve 12% for fees, slippage & liquidation margin buffer) 2. **Notional Value** = Available Margin × Leverage 3. **position_size_usd** = Notional Value (this is the value for JSON) 4. **Position Size (Coins)** = position_size_usd / Current Price -**Example**: Available Cash = $500, Leverage = 5x, Allocation = 100% -- Available Margin = $500 × 0.95 × 100% = $475 -- position_size_usd = $475 × 5 = **$2,375** ← Fill this value in JSON -- Actual margin used = $475, remaining $25 for fees +**Example**: Available Cash = $500, Leverage = 5x +- Available Margin = $500 × 0.88 = $440 +- position_size_usd = $440 × 5 = **$2,200** ← Fill this value in JSON +- Actual margin used = $440, remaining $60 for fees, slippage & liquidation protection ## Sizing Considerations