分析时间:2025-09-27 文件大小:2588行代码 问题:高耦合度,单一职责原则违反
CompleteTradingSystem 承担了过多职责class CompleteTradingSystem extends EventEmitter {
// 🔴 混合了多种职责:
// 系统管理
async start() {
/* 系统启动逻辑 */
}
async shutdown() {
/* 系统关闭逻辑 */
}
// 账户管理
private async getAccountBalance() {
/* 账户操作 */
}
private async updateAccountBalances() {
/* 账户同步 */
}
// 交易执行
private async executeTradeSignal() {
/* 交易执行 */
}
private async executeHedgeSignal() {
/* 对冲执行 */
}
// 风险管理
private async calculateIntelligentRiskScore() {
/* 风险评估 */
}
private async performRiskCheck() {
/* 风险检查 */
}
// 基差管理
private async assessBasisRisk() {
/* 基差分析 */
}
// 止盈止损
private async setupStopLossAndTakeProfit() {
/* 止损管理 */
}
// 价格监控
private startPriceMonitoring() {
/* 价格监控 */
}
// 缓存管理
private getCachedData() {
/* 缓存操作 */
}
// UI显示
private async displayDashboard() {
/* 界面展示 */
}
}
// 🔴 所有数据都在一个类中
private accounts: any[] = []
private clients: Map<string, PacificaProxyClient> = new Map()
private hedgeManager: SamePlatformHedgingManager | null = null
private accountStates = new Map<string, AccountState>()
private apiCache = new Map<string, CacheEntry>()
private basisHistory: BasisDataPoint[] = []
private activeStopLossOrders = new Map<string, StopLossOrder>()
private activeTakeProfitOrders = new Map<string, TakeProfitOrder>()
private lastPriceCheck = new Map<string, PriceCheck>()
// 🔴 方法调用链复杂,难以测试和维护
generateTradingSignals()
└── checkAccountBalance()
└── calculateDynamicExposureThreshold()
└── generateBalanceSignal()
└── executeBalanceSignal()
└── updateAccountState()
src/modules/
├── account/ # 账户管理模块
│ ├── AccountManager.ts # 账户管理器
│ ├── AccountState.ts # 账户状态
│ └── BalanceService.ts # 余额服务
├── trading/ # 交易执行模块
│ ├── TradingEngine.ts # 交易引擎
│ ├── SignalGenerator.ts # 信号生成器
│ └── OrderExecutor.ts # 订单执行器
├── risk/ # 风险管理模块
│ ├── RiskManager.ts # 风险管理器
│ ├── BasisAnalyzer.ts # 基差分析器
│ └── RiskCalculator.ts # 风险计算器
├── hedging/ # 对冲管理模块
│ ├── HedgingCoordinator.ts # 对冲协调器
│ ├── PositionBalancer.ts # 仓位平衡器
│ └── ExposureCalculator.ts # 敞口计算器
├── stopLoss/ # 止盈止损模块
│ ├── StopLossService.ts # 止损服务
│ ├── PriceMonitor.ts # 价格监控器
│ └── TriggerExecutor.ts # 触发执行器
├── cache/ # 缓存管理模块
│ ├── CacheManager.ts # 缓存管理器
│ └── ApiCache.ts # API缓存
└── dashboard/ # 监控面板模块
├── DashboardService.ts # 面板服务
└── StatusReporter.ts # 状态报告器
// 🟢 新的轻量级系统协调器
class TradingSystemOrchestrator {
private accountManager: AccountManager
private tradingEngine: TradingEngine
private riskManager: RiskManager
private hedgingCoordinator: HedgingCoordinator
private stopLossService: StopLossService
private cacheManager: CacheManager
private dashboardService: DashboardService
constructor() {
// 依赖注入,松耦合
this.accountManager = new AccountManager()
this.tradingEngine = new TradingEngine()
this.riskManager = new RiskManager()
// ...
}
async start() {
// 只负责协调各模块的启动
await this.accountManager.initialize()
await this.tradingEngine.start()
await this.riskManager.activate()
// ...
}
}
// 1. 账户管理模块
export class AccountManager {
private accounts: Map<string, Account> = new Map()
private accountStates: Map<string, AccountState> = new Map()
async getBalance(accountId: string): Promise<Balance> {}
async updateAccountState(accountId: string, update: StateUpdate): Promise<void> {}
getAccountState(accountId: string): AccountState | null {}
}
// 2. 缓存管理模块
export class CacheManager {
private cache: Map<string, CacheEntry> = new Map()
get<T>(key: string, ttl?: number): T | null {}
set<T>(key: string, data: T, ttl: number): void {}
invalidate(pattern: string): void {}
}
// 3. 风险管理模块
export class RiskManager {
private basisHistory: BasisDataPoint[] = []
async assessBasisRisk(): Promise<BasisRiskAssessment> {}
async calculateRiskScore(): Promise<RiskScore> {}
checkRiskLimits(signal: TradingSignal): boolean {}
}
// 1. 交易引擎
export class TradingEngine {
constructor(
private accountManager: AccountManager,
private riskManager: RiskManager,
private cacheManager: CacheManager,
) {}
async executeSignal(signal: TradingSignal): Promise<ExecutionResult> {}
generateTradingSignals(): Promise<TradingSignal[]> {}
}
// 2. 止损服务
export class StopLossService {
private activeOrders: Map<string, StopLossOrder> = new Map()
async setupStopLoss(params: StopLossParams): Promise<void> {}
startPriceMonitoring(symbol: string): void {}
async checkTriggers(symbol: string): Promise<void> {}
}
// 3. 对冲协调器
export class HedgingCoordinator {
constructor(
private hedgeManager: SamePlatformHedgingManager,
private riskManager: RiskManager,
) {}
async executeHedging(signal: HedgingSignal): Promise<HedgingResult> {}
calculateExposure(): ExposureInfo {}
}
// 统一的服务接口
export interface TradingService {
initialize(): Promise<void>
start(): Promise<void>
stop(): Promise<void>
getStatus(): ServiceStatus
}
// 事件标准化
export interface SystemEvent {
type: string
timestamp: number
data: any
}
// 配置标准化
export interface ServiceConfig {
enabled: boolean
settings: Record<string, any>
}
重构完成后,代码库将从:
变为:
这将大大提升代码的可维护性、可测试性和可扩展性,为后续功能开发和系统优化奠定坚实基础。