learning_ai_invt_trdg/backend/debugProfiles.ts

55 lines
2.5 KiB
TypeScript

import { supabaseService } from '../src/services/SupabaseService.js';
import { ConnectorFactory } from '../src/connectors/factory.js';
import { config } from '../src/config/index.js';
import { SymbolMapper } from '../src/utils/symbolMapper.js';
import logger from '../src/utils/logger.js';
async function debug() {
logger.info("--- Debugging Profiles & Positions ---");
const profiles = await supabaseService.getActiveProfiles();
const users = await supabaseService.getActiveUsers();
logger.info(`Found ${profiles.length} active profiles and ${users.length} active users.`);
for (const profile of profiles) {
const user = users.find(u => u.user_id === profile.user_id);
if (!user) continue;
const userKey = config.PAPER_TRADING ? user.ALPACA_API_KEY : user.REAL_ALPACA_API_KEY;
const userSecret = config.PAPER_TRADING ? user.ALPACA_SECRET_KEY : user.REAL_ALPACA_SECRET_KEY;
if (userKey && userSecret) {
try {
const exchange = ConnectorFactory.getCustomConnector(config.EXECUTION_PROVIDER, userKey, userSecret);
for (const symbol of config.SYMBOLS) {
const tradeSymbol = SymbolMapper.toTradeSymbol(symbol, config.EXECUTION_PROVIDER);
const pos = await exchange.getPosition(tradeSymbol);
if (pos) {
logger.info(` ✅ FOUND ${symbol} (${tradeSymbol}) for profile ${profile.name}: ${pos.qty} @ ${pos.avg_entry_price}`);
}
}
} catch (e) { /* ignore */ }
}
}
logger.info("--- Checking MASTER Account (from .env) ---");
const masterKey = config.ALPACA_API_KEY;
const masterSecret = config.ALPACA_API_SECRET;
if (masterKey) {
try {
const exchange = ConnectorFactory.getCustomConnector(config.EXECUTION_PROVIDER, masterKey, masterSecret);
for (const symbol of config.SYMBOLS) {
const tradeSymbol = SymbolMapper.toTradeSymbol(symbol, config.EXECUTION_PROVIDER);
const pos = await exchange.getPosition(tradeSymbol);
if (pos) {
logger.info(` ✅ FOUND ${symbol} (${tradeSymbol}) for MASTER Account: ${pos.qty} @ ${pos.avg_entry_price}`);
}
}
} catch (e: any) {
logger.info(` ❌ Error checking Master Account: ${e.message}`);
}
}
}
debug();