45 lines
1.9 KiB
TypeScript
45 lines
1.9 KiB
TypeScript
|
|
import { supabaseService } from '../src/services/SupabaseService.js';
|
|
import logger from '../src/utils/logger.js';
|
|
|
|
async function forceResetRules() {
|
|
logger.info('🔨 FORCING CLEAN RULE SET (ALL RULES POPULATED)...');
|
|
|
|
const profiles = await supabaseService.getActiveProfiles();
|
|
const highRiskStart = profiles.find(p => p.name.includes('Scalp') || p.name.includes('High'));
|
|
|
|
if (!highRiskStart) return logger.error('❌ Profile not found');
|
|
|
|
const newConfig = {
|
|
execution: { allowedSymbols: ["BTC/USD"], orderType: "market" },
|
|
riskLimits: { maxOpenTrades: 5, maxDailyLossUsd: 200 },
|
|
rules: [
|
|
{ ruleId: "MomentumRule", enabled: true, params: { rsiPeriod: 14, overbought: 80, oversold: 20, timeframe: '15m' } },
|
|
{ ruleId: "EntryTriggerRule", enabled: true, params: { showPatterns: true } },
|
|
{ ruleId: "AIAnalysisRule", enabled: true, params: { minConfidence: 0.8 } },
|
|
|
|
// Explicitly include disabled ones to ensure structure exists
|
|
{ ruleId: "TrendBiasRule", enabled: false, params: { fastPeriod: 50, slowPeriod: 200 } },
|
|
{ ruleId: "ZoneRule", enabled: false, params: { zonePercent: 1.5 } },
|
|
{ ruleId: "SessionRule", enabled: false, params: { sessions: "London,NY" } },
|
|
{ ruleId: "RiskManagementRule", enabled: true, params: { maxRisk: 5.0 } } // Also enabled
|
|
]
|
|
};
|
|
|
|
// @ts-ignore
|
|
const { error } = await supabaseService.client
|
|
.from('trade_profiles')
|
|
.update({ strategy_config: newConfig })
|
|
.eq('id', highRiskStart.id);
|
|
|
|
if (error) {
|
|
logger.error(`❌ Failed: ${error.message}`);
|
|
} else {
|
|
logger.info(`✅ SUCCESS: Overwrote entire strategy_config for [${highRiskStart.name}]`);
|
|
logger.info(` - Includes 7 rules (4 Enabled, 3 Disabled)`);
|
|
logger.info(` - Includes default params for all`);
|
|
}
|
|
}
|
|
|
|
forceResetRules();
|