data-model.md 6.0 KB

数据模型:多平台 Delta 中性控制平面

1. ExchangeAccount(交易账户)

  • 主键accountId(字符串,唯一)
  • 字段
    • exchange(字符串,枚举:pacifica/aster/binance/...)
    • accountName(字符串,展示用别名)
    • publicKey(字符串,经过加密存储)
    • proxyProfile(字符串,引用代理配置 ID)
    • utilizationTargetMin(小数,默认 0.5)
    • utilizationTargetMax(小数,默认 0.8)
    • deltaThreshold(小数,BTC 等值,默认 0.0005)
    • maxPositionValue(小数,账户允许的最大名义价值)
    • stopLossConfigId(字符串,引用止损模板)
    • status(枚举:active/paused/emergency)
    • createdAtupdatedAt
  • 关系
    • 关联多个 ProxySession
    • RiskEnvelope 一对一关联

2. MarketDataFeed(行情数据源)

  • 主键feedId
  • 字段
    • exchange(字符串)
    • symbol(字符串,如 BTC、ETH)
    • wsEndpoint(字符串)
    • httpEndpoint(字符串)
    • wsLatencyP95(毫秒,统计值)
    • httpLatencyP95(毫秒)
    • freshnessThreshold(毫秒,默认 2000)
    • failoverDeadline(毫秒,默认 10000)
    • lastHeartbeat(时间戳)
    • status(枚举:healthy/degraded/failing)
  • 关系
    • HedgeExecution 订阅关系(间接)
    • SynthPriceSnapshot(若合成行情)产生数据流

3. StrategyModule(策略模块)

  • 主键moduleId
  • 字段
    • name(字符串)
    • type(枚举:market-making/funding-arbitrage/hedge-only/...)
    • configSchema(JSON Schema 描述)
    • dryRunEnabled(布尔,默认 true)
    • maxConcurrentSignals(整数)
    • profitAfterFeeTarget(小数,百分比)
    • requiresSandbox(布尔)
    • status(enable/disable)
  • 关系
    • 与多个 ExchangeAccount 建立分配记录 AccountAllocation
    • 生成 OrderIntent

4. RiskEnvelope(风险包络)

  • 主键envelopeId
  • 字段
    • accountId(外键,ExchangeAccount)
    • maxDrawdownPercent(小数)
    • maxLeverage(小数)
    • deltaThreshold(小数,默认继承账户级设定,可覆盖)
    • slippageTolerance(小数,百分比)
    • emergencyStopLossSeconds(整数,默认 30)
    • createdAtupdatedAt
  • 关系
    • 一对一关联 ExchangeAccount
    • HedgeExecution 使用以验证阈值

5. OrderIntent(订单意图)

  • 主键intentId
  • 字段
    • moduleId(外键,StrategyModule)
    • accountId(外键,ExchangeAccount)
    • symbol(字符串)
    • side(枚举:buy/sell)
    • type(枚举:limit/market/post-only/...)
    • amount(小数,base 数量)
    • price(小数,若限价)
    • expectedProfitAfterFee(小数,USD 等值)
    • hedgePairIntentId(字符串,可选,对冲配对)
    • state(pending/submitted/filled/cancelled/failed)
    • createdAtupdatedAt
  • 关系
    • StrategyModule 创建
    • HedgeExecution 会引用其结果并更新状态

6. HedgeExecution(对冲执行记录)

  • 主键executionId
  • 字段
    • primaryAccountIdhedgeAccountId(外键,ExchangeAccount)
    • deltaBeforedeltaAfter(小数,BTC 等值)
    • orders(JSON 列表,含外部订单号、类型、价格、状态)
    • triggerReason(枚举:utilization/delta/failover/manual)
    • durationMs(整数)
    • result(枚举:success/partial/fail)
    • createdAt
  • 关系
    • 引用多个 OrderIntent
    • 依赖 RiskEnvelopeMarketDataFeed

7. ProxySession(代理会话)

  • 主键sessionId
  • 字段
    • proxyProfile(字符串)
    • ipportauth(凭证信息)
    • accountIds(数组,关联账户)
    • lastRotation(时间戳)
    • status(active/rotating/failed)
  • 关系
    • ExchangeAccount 多对多(通过 accountIds)
    • OrderIntentAccountSyncJob 链接以记录调用来源

8. AccountAllocation(账户分配关系)

  • 主键:复合键(moduleId, accountId
  • 字段
    • weight(小数,策略在账户内的权重)
    • maxConcurrentOrders(整数)
    • sandboxMode(布尔,表示是否仍在 Dry-run)
    • createdAtupdatedAt
  • 关系
    • 关联 StrategyModuleExchangeAccount
    • 被分配时需校验 RiskEnvelope

9. SynthPriceSnapshot(合成价格快照)

  • 主键snapshotId
  • 字段
    • symbol(字符串)
    • sourceFeeds(数组,记录参与合成的 feedId)
    • midPricebidask(小数)
    • timestamp(时间戳)
    • reason(枚举:ws-failover/http-timeout/manual)
  • 关系
    • MarketDataFeed 的回退逻辑生成
    • 提供给 OrderIntent 作为价格依据

10. MonitoringEvent(监控事件)

  • 主键eventId
  • 字段
    • type(枚举:utilization-alert/delta-alert/failover-alert/proxy-alert/test-result)
    • accountIdmoduleId(可选)
    • payload(JSON,记录详情)
    • severity(INFO/WARN/CRITICAL)
    • createdAt
  • 关系
    • 供仪表板与告警系统消费
    • HedgeExecutionOrderIntent 产生的事件有关联

状态与流程概述

  1. 账户同步:定期拉取交易所余额与仓位,更新 ExchangeAccount 与相关 RiskEnvelope 信息。
  2. 行情刷新MarketDataFeed 维护实时顺序;当 WS 异常时生成 SynthPriceSnapshot 并触发 MonitoringEvent
  3. 信号生成StrategyModule 基于行情与账户状态生成 OrderIntent,并写入待执行队列。
  4. 对冲执行:控制平面根据 Delta 与利用率状态,调度 HedgeExecution,创建或取消订单,保持在宪章阈值内。
  5. 观测与回溯:所有关键操作写入 MonitoringEvent,日志保留 ≥90 天,可用于追溯与审计。