feat: Add adaptive leverage controls to settings UI

Complete implementation of adaptive leverage configuration via web interface:

Frontend (app/settings/page.tsx):
- Added 4 fields to TradingSettings interface:
  * USE_ADAPTIVE_LEVERAGE: boolean
  * HIGH_QUALITY_LEVERAGE: number
  * LOW_QUALITY_LEVERAGE: number
  * QUALITY_LEVERAGE_THRESHOLD: number

- Added complete Adaptive Leverage section with:
  * Purple-themed informational box explaining quality-based leverage
  * Toggle switch for enabling/disabling (🎯 Enable Adaptive Leverage)
  * Number inputs for high leverage (1-20), low leverage (1-20), threshold (80-100)
  * Visual tier display showing leverage multipliers and position sizes
  * Dynamic calculation based on $560 free collateral

Backend (app/api/settings/route.ts):
- GET handler: Load 4 adaptive leverage fields from environment variables
- POST handler: Save 4 adaptive leverage fields to .env file
- Proper type conversion (boolean from 'true', numbers from parseInt/parseFloat)

Visual Tier Display Example:
 Below Threshold: Blocked (no trade)

Changes enable users to adjust leverage settings via web UI instead of
manually editing .env file and restarting container.
This commit is contained in:
mindesbunister
2025-12-01 08:47:38 +01:00
parent 2e511ceddc
commit 21c13b915a
2 changed files with 91 additions and 0 deletions

View File

@@ -127,6 +127,12 @@ export async function GET() {
MIN_SIGNAL_QUALITY_SCORE_SHORT: parseInt(env.MIN_SIGNAL_QUALITY_SCORE_SHORT || env.MIN_SIGNAL_QUALITY_SCORE || '60'),
SLIPPAGE_TOLERANCE: parseFloat(env.SLIPPAGE_TOLERANCE || '1.0'),
DRY_RUN: env.DRY_RUN === 'true',
// Adaptive Leverage (Dec 1, 2025)
USE_ADAPTIVE_LEVERAGE: env.USE_ADAPTIVE_LEVERAGE === 'true',
HIGH_QUALITY_LEVERAGE: parseFloat(env.HIGH_QUALITY_LEVERAGE || '5'),
LOW_QUALITY_LEVERAGE: parseFloat(env.LOW_QUALITY_LEVERAGE || '1'),
QUALITY_LEVERAGE_THRESHOLD: parseInt(env.QUALITY_LEVERAGE_THRESHOLD || '95'),
}
return NextResponse.json(settings)
@@ -196,6 +202,12 @@ export async function POST(request: NextRequest) {
MIN_SIGNAL_QUALITY_SCORE_SHORT: settings.MIN_SIGNAL_QUALITY_SCORE_SHORT.toString(),
SLIPPAGE_TOLERANCE: settings.SLIPPAGE_TOLERANCE.toString(),
DRY_RUN: settings.DRY_RUN.toString(),
// Adaptive Leverage (Dec 1, 2025)
USE_ADAPTIVE_LEVERAGE: settings.USE_ADAPTIVE_LEVERAGE.toString(),
HIGH_QUALITY_LEVERAGE: settings.HIGH_QUALITY_LEVERAGE.toString(),
LOW_QUALITY_LEVERAGE: settings.LOW_QUALITY_LEVERAGE.toString(),
QUALITY_LEVERAGE_THRESHOLD: settings.QUALITY_LEVERAGE_THRESHOLD.toString(),
}
const success = updateEnvFile(updates)