| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /**
- * 控制平面演示脚本
- * 展示多交易所 Delta 中性控制平面的核心功能
- */
- import { ControlPlaneService } from '../src/services/ControlPlaneService.js'
- import { ExchangeAccountManager } from '../src/models/ExchangeAccount.js'
- import { RiskEnvelopeManager } from '../src/models/RiskEnvelope.js'
- import { MarketDataFeedManager } from '../src/models/MarketDataFeed.js'
- import { StrategyModuleManager } from '../src/models/StrategyModule.js'
- import { MonitoringEventManager } from '../src/models/MonitoringEvent.js'
- import { AccountManager } from '../src/modules/account/AccountManager.js'
- import { CacheManager } from '../src/modules/cache/CacheManager.js'
- import { logger } from '../src/utils/logger.js'
- async function main() {
- logger.info('🚀 启动控制平面演示')
- try {
- // 1. 初始化管理器
- const exchangeAccountManager = new ExchangeAccountManager()
- const riskManager = new RiskEnvelopeManager()
- const marketDataFeedManager = new MarketDataFeedManager()
- const strategyModuleManager = new StrategyModuleManager()
- const monitoringManager = new MonitoringEventManager()
- const cacheManager = new CacheManager()
- const accountManager = new AccountManager(cacheManager)
- // 2. 创建控制平面服务
- const controlPlane = new ControlPlaneService(
- accountManager,
- exchangeAccountManager,
- riskManager,
- marketDataFeedManager,
- strategyModuleManager,
- monitoringManager
- )
- // 3. 初始化控制平面
- await controlPlane.initialize()
- await controlPlane.start()
- logger.info('✅ 控制平面服务启动成功')
- // 4. 演示场景1: 账户同步
- logger.info('📊 演示场景1: 账户同步')
- const syncResult = await controlPlane.syncAccounts()
- logger.info(`账户同步结果: ${syncResult.results?.length || 0} 个账户同步成功`)
- // 5. 演示场景2: 创建策略模块
- logger.info('🎯 演示场景2: 创建策略模块')
- const strategyResult = await controlPlane.createStrategyModule({
- name: '演示策略',
- type: 'market-making',
- configSchema: {
- type: 'object',
- properties: {
- spread: { type: 'number', default: 0.001 },
- volume: { type: 'number', default: 0.01 }
- }
- }
- })
- logger.info(`策略模块创建成功: ${strategyResult.moduleId}`)
- // 6. 演示场景3: 对冲执行
- logger.info('⚖️ 演示场景3: 对冲执行')
- const hedgeResult = await controlPlane.executeHedge({
- primaryAccountId: 'demo-account-1',
- hedgeAccountId: 'demo-account-2',
- deltaBefore: 0.005,
- targetDelta: 0.001,
- triggerReason: 'delta'
- })
- logger.info(`对冲执行结果: ${hedgeResult.status}`)
- // 7. 获取系统状态
- logger.info('📈 系统状态概览')
- const systemStatus = controlPlane.getSystemStatus()
- logger.info('系统状态:', {
- 控制平面: systemStatus.controlPlane.status,
- 账户数量: systemStatus.accounts.total,
- 活跃账户: systemStatus.accounts.active,
- 风险警报: systemStatus.risk.activeAlerts,
- 市场数据源: systemStatus.marketData.totalFeeds,
- 策略模块: systemStatus.strategies.length
- })
- // 8. 健康检查
- const healthMetrics = controlPlane.getHealthMetrics()
- logger.info('健康指标:', {
- 系统健康: healthMetrics.systemHealth,
- 活跃警报: healthMetrics.activeAlerts,
- 关键警报: healthMetrics.criticalAlerts,
- 运行时间: `${Math.round(healthMetrics.uptime / 1000)}秒`
- })
- logger.info('🎉 控制平面演示完成')
- } catch (error: any) {
- logger.error(`演示失败: ${error.message}`)
- process.exit(1)
- }
- }
- // 运行演示
- if (require.main === module) {
- main().catch(console.error)
- }
- export { main }
|