From 7a1643c56c2070d5a199c46427ace50b8b83999d Mon Sep 17 00:00:00 2001 From: tinkle-community Date: Mon, 19 Jan 2026 13:16:16 +0800 Subject: [PATCH] fix: leverage validation bug and limit grid leverage to 1-5 - Fix Go range loop copy issue in validateDecisions (leverage auto-adjust was modifying copy, not original) - Limit grid leverage from 1-20 to 1-5 for safer grid trading --- kernel/engine.go | 4 ++-- web/src/components/strategy/GridConfigEditor.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/engine.go b/kernel/engine.go index 6ce5aa52..393582f9 100644 --- a/kernel/engine.go +++ b/kernel/engine.go @@ -1767,8 +1767,8 @@ func compactArrayOpen(s string) string { // ============================================================================ func validateDecisions(decisions []Decision, accountEquity float64, btcEthLeverage, altcoinLeverage int, btcEthPosRatio, altcoinPosRatio float64) error { - for i, decision := range decisions { - if err := validateDecision(&decision, accountEquity, btcEthLeverage, altcoinLeverage, btcEthPosRatio, altcoinPosRatio); err != nil { + for i := range decisions { + if err := validateDecision(&decisions[i], accountEquity, btcEthLeverage, altcoinLeverage, btcEthPosRatio, altcoinPosRatio); err != nil { return fmt.Errorf("decision #%d validation failed: %w", i+1, err) } } diff --git a/web/src/components/strategy/GridConfigEditor.tsx b/web/src/components/strategy/GridConfigEditor.tsx index 7756f2ba..1bc31e42 100644 --- a/web/src/components/strategy/GridConfigEditor.tsx +++ b/web/src/components/strategy/GridConfigEditor.tsx @@ -47,7 +47,7 @@ export function GridConfigEditor({ totalInvestment: { zh: '投资金额 (USDT)', en: 'Investment (USDT)' }, totalInvestmentDesc: { zh: '网格策略的总投资金额', en: 'Total investment for grid strategy' }, leverage: { zh: '杠杆倍数', en: 'Leverage' }, - leverageDesc: { zh: '交易使用的杠杆倍数 (1-20)', en: 'Leverage for trading (1-20)' }, + leverageDesc: { zh: '交易使用的杠杆倍数 (1-5)', en: 'Leverage for trading (1-5)' }, // Grid parameters gridCount: { zh: '网格数量', en: 'Grid Count' }, @@ -171,7 +171,7 @@ export function GridConfigEditor({ onChange={(e) => updateField('leverage', parseInt(e.target.value) || 5)} disabled={disabled} min={1} - max={20} + max={5} className="w-full px-3 py-2 rounded" style={inputStyle} />