no idea- added loki and other stuff to market-data-gateway, also added config lib

This commit is contained in:
Bojan Kucera 2025-06-03 11:37:58 -04:00
parent b957fb99aa
commit 1b71fc87ab
72 changed files with 6178 additions and 153 deletions

View file

@ -0,0 +1,73 @@
/**
* Example usage of the @stock-bot/config library
*/
import {
databaseConfig,
dataProviderConfigs,
riskConfig,
Environment,
getEnvironment,
marketDataGatewayConfig,
riskGuardianConfig,
ConfigurationError,
validateConfig
} from './index';
/**
* Display current configuration values
*/
export function printCurrentConfig(): void {
console.log('\n=== Stock Bot Configuration ===');
console.log('\nEnvironment:', getEnvironment());
console.log('\n--- Database Config ---');
console.log('Dragonfly Host:', databaseConfig.dragonfly.host);
console.log('Dragonfly Port:', databaseConfig.dragonfly.port);
console.log('TimescaleDB Host:', databaseConfig.timescaleDB.host);
console.log('TimescaleDB Database:', databaseConfig.timescaleDB.database);
console.log('\n--- Data Provider Config ---');
console.log('Default Provider:', dataProviderConfigs.defaultProvider);
console.log('Providers:');
dataProviderConfigs.providers.forEach(provider => {
console.log(` - ${provider.name} (${provider.type})`);
if (provider.baseUrl) console.log(` URL: ${provider.baseUrl}`);
if (provider.wsUrl) console.log(` WebSocket: ${provider.wsUrl}`);
});
console.log('\n--- Risk Config ---');
console.log('Max Drawdown:', riskConfig.maxDrawdown * 100, '%');
console.log('Max Position Size:', riskConfig.maxPositionSize * 100, '%');
console.log('Max Leverage:', riskConfig.maxLeverage, 'x');
console.log('Default Stop Loss:', riskConfig.stopLossDefault * 100, '%');
console.log('Default Take Profit:', riskConfig.takeProfitDefault * 100, '%');
console.log('\n--- Market Data Gateway Config ---');
console.log('Service Port:', marketDataGatewayConfig.service.port);
console.log('WebSocket Enabled:', marketDataGatewayConfig.websocket.enabled);
console.log('WebSocket Path:', marketDataGatewayConfig.websocket.path);
console.log('Caching Enabled:', marketDataGatewayConfig.caching.enabled);
console.log('Caching TTL:', marketDataGatewayConfig.caching.ttlSeconds, 'seconds');
console.log('\n--- Risk Guardian Config ---');
console.log('Service Port:', riskGuardianConfig.service.port);
console.log('Pre-Trade Validation:', riskGuardianConfig.riskChecks.preTradeValidation);
console.log('Portfolio Validation:', riskGuardianConfig.riskChecks.portfolioValidation);
console.log('Alerting Enabled:', riskGuardianConfig.alerting.enabled);
console.log('Critical Threshold:', riskGuardianConfig.alerting.criticalThreshold * 100, '%');
}
// Execute example if this file is run directly
if (require.main === module) {
try {
printCurrentConfig();
} catch (error) {
if (error instanceof ConfigurationError) {
console.error('Configuration Error:', error.message);
} else {
console.error('Error:', error);
}
process.exit(1);
}
}