package adapter import ( "time" ) // DataSourceAdapter 数据源适配器接口 type DataSourceAdapter interface { // Connect 建立连接 Connect(config map[string]string) error // SubscribeTicks 订阅实时Tick SubscribeTicks(symbols []string, callback TickCallback) error // FetchKLines 拉取历史K线 FetchKLines(symbol, start, end, freq string) ([]KLineData, error) // FetchSymbols 获取标的列表 FetchSymbols(assetType string) ([]SymbolInfo, error) // FetchTradingCalendar 获取交易日历 FetchTradingCalendar(exchange, start, end string) ([]TradeCalData, error) // HealthCheck 健康检查 HealthCheck() error // Close 关闭连接 Close() error } // TickCallback Tick数据回调 type TickCallback func(symbol string, tick TickData) // TickData Tick数据 type TickData struct { Symbol string Price float64 Volume int64 Time int64 } // KLineData K线数据 type KLineData struct { Symbol string Time int64 Open float64 High float64 Low float64 Close float64 Volume int64 Amount float64 OpenInterest int64 } // SymbolInfo 标的信息 type SymbolInfo struct { SymbolID string Name string Exchange string Underlying string ContractMonth string ListDate string DelistDate string } // TradeCalData 交易日历数据 type TradeCalData struct { Date time.Time IsTradingDay bool HasNightSession bool } // AdapterFactory 适配器工厂 type AdapterFactory interface { Create(name string) (DataSourceAdapter, error) }