feat: Orderbook shadow logging system - Phase 1 complete

Implementation:
- Added 7 orderbook fields to Trade model (spreadBps, imbalanceRatio, depths, impact, walls)
- Oracle-based estimates with 2bps spread assumption
- ENV flag: ENABLE_ORDERBOOK_LOGGING (defaults true)
- Execute wrapper lines 1037-1053 guards orderbook logic

Database:
- Direct SQL ALTER TABLE (avoided migration drift issues)
- All columns nullable DOUBLE PRECISION
- Prisma schema synced via db pull + generate

Deployment:
- Container rebuilt and deployed successfully
- All 7 columns verified accessible
- System operational, ready for live trade validation

Files changed:
- config/trading.ts (enableOrderbookLogging flag, line 127)
- types/trading.ts (orderbook interfaces)
- lib/database/trades.ts (createTrade saves orderbook data)
- app/api/trading/execute/route.ts (ENV wrapper lines 1037-1053)
- prisma/schema.prisma (7 orderbook fields)
- docs/ORDERBOOK_SHADOW_LOGGING.md (complete documentation)

Status:  PRODUCTION READY - awaiting first trade for validation
This commit is contained in:
mindesbunister
2025-12-19 08:51:36 +01:00
parent bfb73150ab
commit 6990f20d6f
7 changed files with 729 additions and 286 deletions

View File

@@ -21,6 +21,9 @@ export interface TradingConfig {
// Adaptive Leverage (Quality-based risk adjustment - Nov 24, 2025)
useAdaptiveLeverage: boolean // Enable quality-based leverage tiers
highQualityLeverage: number // Leverage for signals >= threshold (e.g., 15 for quality 95+)
// Orderbook Shadow Logging (Phase 1 - Dec 19, 2025)
enableOrderbookLogging: boolean // Track orderbook metrics at trade entry
lowQualityLeverage: number // Leverage for signals < threshold (e.g., 10 for quality 90-94)
qualityLeverageThreshold: number // Quality score threshold (e.g., 95) - backward compatibility
qualityLeverageThresholdLong?: number // LONG-specific threshold (e.g., 95) - CRITICAL FIX Dec 3, 2025
@@ -123,7 +126,8 @@ export const DEFAULT_TRADING_CONFIG: TradingConfig = {
// Adaptive Leverage (Quality-based risk adjustment - Nov 24, 2025)
// Data-driven: v8 quality 95+ = 100% WR (4/4 wins), quality 90-94 more volatile
useAdaptiveLeverage: true, // Enable quality-based leverage tiers
useAdaptiveLeverage: process.env.USE_ADAPTIVE_LEVERAGE === 'true' ? true : process.env.USE_ADAPTIVE_LEVERAGE === 'false' ? false : true, // Default true
enableOrderbookLogging: process.env.ENABLE_ORDERBOOK_LOGGING === 'true' ? true : process.env.ENABLE_ORDERBOOK_LOGGING === 'false' ? false : true, // Phase 1 shadow logging - default true
highQualityLeverage: 15, // For signals >= 95 quality (high confidence)
lowQualityLeverage: 10, // For signals 90-94 quality (reduced risk)
qualityLeverageThreshold: 95, // Threshold for high vs low leverage