diff --git a/api/handler_user.go b/api/handler_user.go index aa9f9a2a..14dbf621 100644 --- a/api/handler_user.go +++ b/api/handler_user.go @@ -266,8 +266,9 @@ func (s *Server) createDefaultStrategies(userID string, lang string) error { c.RiskControl.BTCETHMaxLeverage = 20 c.RiskControl.AltcoinMaxLeverage = 20 // 5× equity notional per position: 4 positions = 20x total account - // notional (full margin at 20x). Bigger single positions with room for - // a balanced long/short book. + // notional (full margin, ~5% liquidation cushion). Aggressive by + // operator choice — bigger single positions; the 0.4 short-signal + // floor keeps the book balanced so it is not a one-directional bet. c.RiskControl.BTCETHMaxPositionValueRatio = 5.0 c.RiskControl.AltcoinMaxPositionValueRatio = 5.0 c.RiskControl.MaxMarginUsage = 1.0 diff --git a/store/strategy.go b/store/strategy.go index 1553c09d..fe790aed 100644 --- a/store/strategy.go +++ b/store/strategy.go @@ -1017,8 +1017,8 @@ func GetDefaultStrategyConfig(lang string) StrategyConfig { MaxPositions: 4, // Room for ~2 long + 2 short (CODE ENFORCED) BTCETHMaxLeverage: 20, // BTC/ETH exchange leverage (AI guided) AltcoinMaxLeverage: 20, // TradeFi exchange leverage (AI guided) - BTCETHMaxPositionValueRatio: 5.0, // Per-position notional = equity × 5; 4 positions = 20x total (full margin at 20x) - AltcoinMaxPositionValueRatio: 5.0, // Per-position notional = equity × 5; 4 positions = 20x total (full margin at 20x) + BTCETHMaxPositionValueRatio: 5.0, // Per-position notional = equity × 5; 4 positions = 20x total (full margin, ~5% liquidation cushion — aggressive by operator choice) + AltcoinMaxPositionValueRatio: 5.0, // Per-position notional = equity × 5; 4 positions = 20x total (full margin, ~5% liquidation cushion — aggressive by operator choice) MaxMarginUsage: 1.0, // Claw402 Autopilot intentionally uses full margin when opening MinPositionSize: 12, // Min 12 USDT per position (CODE ENFORCED) MinRiskRewardRatio: 3.0, // Min 3:1 profit/loss ratio (AI guided) diff --git a/trader/auto_trader_force.go b/trader/auto_trader_force.go index 0f7b7a5c..b9f2f816 100644 --- a/trader/auto_trader_force.go +++ b/trader/auto_trader_force.go @@ -8,11 +8,13 @@ import ( ) // forcedCoverageMinScore is the minimum absolute board z-score a candidate -// needs before the engine will force-open it for book balance. Live trade -// history showed forced entries on near-neutral signals (|z| < 0.3) were a -// systematic money loser — especially shorts — while trades on strong signals -// carried the edge. Below this bar the book is simply left unbalanced. -const forcedCoverageMinScore = 0.75 +// needs before the engine will force-open it for book balance. Near-neutral +// signals (|z| < ~0.3) proved a systematic loser, but a 0.75 floor was too +// strict: in a long-leaning tape every bearish candidate scored below it, so +// no short ever opened and the book became a one-directional long bet that +// drew down hard. 0.4 keeps genuine directional signals while still filtering +// pure noise, so the book can actually hedge. +const forcedCoverageMinScore = 0.4 // ensureLongShortCoverage tops the book up toward roughly half the // MaxPositions slots long and half short — but only with candidates whose diff --git a/web/src/pages/StrategyStudioPage.tsx b/web/src/pages/StrategyStudioPage.tsx index cae8749a..b4760070 100644 --- a/web/src/pages/StrategyStudioPage.tsx +++ b/web/src/pages/StrategyStudioPage.tsx @@ -1392,8 +1392,8 @@ export function StrategyStudioPage() { btc_eth_max_leverage: 20, altcoin_max_leverage: 20, // 5× equity notional per position — 4 positions = 20x total account - // notional (full margin at 20x). Bigger single positions, room for - // a balanced long/short book. + // notional (full margin, ~5% liquidation cushion). Aggressive by + // operator choice; the 0.4 short-signal floor keeps the book balanced. btc_eth_max_position_value_ratio: 5, altcoin_max_position_value_ratio: 5, max_margin_usage: 1.0,