文件
quantKonwledge/wiki/tradehk/类型系统参考.md
Manus Quant Agent baf10a9e91 feat: 新增 tradehk 专属 Wiki 文档体系(10个文档)
- 系统架构总览:技术栈、目录结构、数据流向
- 指标引擎详解:16个指标完整原理与参数(含源码行号)
- 信号评分引擎:多指标共振评分机制、动态阈值、案例分析
- 大周期偏向判定:assessBigTimeframeBias 完整说明
- EWO转换检测机制:evaluateEwoTurnForUser 逐步流程
- 飞书通知格式规范:三类通知完整格式模板
- 类型系统参考:所有 TypeScript 类型完整文档
- 数据库与存储:MySQL 表结构、缓存机制、维护指南
- 部署运维指南:Docker Compose、Nginx、飞书配置
- 开发历史与TODO:功能状态表、优先级路线图
- 优化建议汇总:9项优化建议含源码位置和预期效果
2026-03-05 23:14:31 -05:00

8.8 KiB

tradehk 类型系统参考

返回:tradehk 文档中心 源文件:client/src/lib/types.tsshared/types.ts

概述

tradehk 使用 TypeScript 强类型系统,所有数据结构都有明确的类型定义。本文档列出所有核心类型,方便开发者理解数据流和接口规范。


基础类型

TimeIntervalK线周期

type TimeInterval =
  | '1m' | '3m' | '5m' | '10m' | '15m' | '30m'
  | '1h' | '2h' | '4h' | '6h' | '12h'
  | '1d' | '3d' | '1w' | '1M';

默认周期10m10分钟


CandleK线数据

interface Candle {
  time: number;    // Unix 时间戳(秒)
  open: number;    // 开盘价
  high: number;    // 最高价
  low: number;     // 最低价
  close: number;   // 收盘价
  volume: number;  // 成交量
}

TradingSignal交易信号

interface TradingSignal {
  id: string;                           // nanoid 唯一 ID
  timestamp: number;                    // 信号时间戳(毫秒)
  symbol: string;                       // 交易对(如 "BTCUSDT"
  interval: TimeInterval;               // K线周期
  type: 'BUY' | 'SELL';                // 信号方向
  strength: 'STRONG' | 'MODERATE' | 'WEAK'; // 信号强度
  price: number;                        // 信号价格(收盘价)
  indicators: {                         // 当前指标值快照
    ma10?: number;
    ma100?: number;
    ewo?: number;
    macd?: number;
    macdSignal?: number;
    macdHistogram?: number;
    ao?: number;
  };
  reasons: string[];                    // 触发原因列表(中文)
  isActive: boolean;                    // 是否活跃
}

IndicatorParams指标参数配置

interface IndicatorParams {
  // 移动平均线
  maPeriod?: number;            // MA 短期周期默认10
  maLongPeriod?: number;        // MA 长期周期默认100
  emaPeriods?: number[];        // 叠加显示的 EMA 周期列表(默认[12,26]

  // MACD
  macdFast?: number;            // MACD 快线周期默认10
  macdSlow?: number;            // MACD 慢线周期默认20
  macdSignal?: number;          // MACD 信号线周期默认10

  // RSI
  rsiPeriod?: number;           // RSI 周期默认14
  rsiOverbought?: number;       // RSI 超买线默认70
  rsiOversold?: number;         // RSI 超卖线默认30

  // KDJ
  kdjPeriod?: number;           // KDJ 周期默认9
  kdjKSmooth?: number;          // K 平滑默认3
  kdjDSmooth?: number;          // D 平滑默认3

  // Stoch
  stochPeriod?: number;         // Stoch 周期默认14
  stochSmooth?: number;         // Stoch 平滑默认3

  // StochRSI
  stochRsiRsiPeriod?: number;   // StochRSI 的 RSI 周期默认14
  stochRsiStochPeriod?: number; // StochRSI 的 Stoch 周期默认14
  stochRsiKSmooth?: number;     // K 平滑默认3
  stochRsiDSmooth?: number;     // D 平滑默认3

  // 布林带
  bollingerPeriod?: number;     // 布林带周期默认20
  bollingerStdDev?: number;     // 标准差倍数默认2

  // SuperTrend
  superTrendPeriod?: number;    // SuperTrend ATR 周期默认10
  superTrendMultiplier?: number; // SuperTrend 倍数默认3

  // DMI/ADX
  dmiPeriod?: number;           // DMI 周期默认14

  // ATR
  atrPeriod?: number;           // ATR 周期默认14

  // MFI
  mfiPeriod?: number;           // MFI 周期默认14

  // TTM Squeeze
  ttmBbPeriod?: number;         // 布林带周期默认20
  ttmKcPeriod?: number;         // 肯特纳通道周期默认20

  // 信号开关
  signalUseRsi?: boolean;       // 是否使用 RSI 评分默认true
  signalUseKdj?: boolean;       // 是否使用 KDJ 评分默认false
  signalUseStoch?: boolean;     // 是否使用 Stoch 评分默认false
  signalUseBollinger?: boolean; // 是否使用布林带评分默认true
  signalUseSuperTrend?: boolean; // 是否使用 SuperTrend 评分默认false
  signalUseDmi?: boolean;       // 是否使用 DMI 评分默认false
}

AlertConfig通知配置

interface AlertConfig {
  enabled: boolean;                    // 通知总开关
  browserNotification: boolean;        // 浏览器通知
  soundAlert: boolean;                 // 声音提醒
  alertOnBuySignal: boolean;           // 买入信号通知
  alertOnSellSignal: boolean;          // 卖出信号通知
  alertOnPriceBreakout: boolean;       // 价格突破通知
  alertOnVolumeContraction: boolean;   // 缩量提醒
  priceBreakoutPercent: number;        // 价格突破阈值(%
  larkWebhookEnabled: boolean;         // 飞书 Webhook 开关
  larkSignalNotifyMode: 'ewo_only' | 'all_signals'; // 通知模式
  signalLarkThrottleMinutes: number;   // 信号推送频控(分钟)
  ewoTurnRules: EwoTurnAlertRule[];    // EWO 转换规则
}

EwoTurnAlertRuleEWO 转换规则)

interface EwoTurnAlertRule {
  id: string;                          // 规则 IDnanoid
  enabled: boolean;                    // 是否启用
  symbol: string;                      // 交易对(如 "BTCUSDT"
  interval: TimeInterval;              // K线周期
  direction: EwoTurnDirection;         // 转换方向
}

type EwoTurnDirection = 'red_to_green' | 'green_to_red';

TrendBiasConfig大周期偏向配置

interface TrendBiasConfig {
  enabled: boolean;                    // 是否启用大周期过滤
  interval: '4h' | '12h';             // 大周期 K 线周期
  bias: TrendBias;                     // 当前大周期方向(自动计算)
  lastUpdated: number;                 // 最后更新时间戳
  autoRefreshMinutes: number;          // 自动刷新间隔(分钟)
}

type TrendBias = 'BEARISH' | 'BULLISH' | 'NEUTRAL' | null;

UserConfig用户配置

interface UserConfig {
  timezone: string;                    // 用户时区(如 "Asia/Shanghai"
  symbolIntervals: Record<string, TimeInterval>; // 每个币对的 K 线周期
  indicatorParams: IndicatorParams;    // 指标参数
  showIndicators: ShowIndicatorsConfig; // 图表显示开关
  alerts: AlertConfig;                 // 通知配置
}

ShowIndicatorsConfig图表显示配置

interface ShowIndicatorsConfig {
  showEwo: boolean;        // 显示 EWO 子图
  showMacd: boolean;       // 显示 MACD 子图
  showAo: boolean;         // 显示 AO 子图
  showRsi: boolean;        // 显示 RSI 子图
  showKdj: boolean;        // 显示 KDJ 子图
  showStoch: boolean;      // 显示 Stoch 子图
  showStochRsi: boolean;   // 显示 StochRSI 子图
  showBollinger: boolean;  // 显示布林带(主图叠加)
  showMfi: boolean;        // 显示 MFI 子图
  showObv: boolean;        // 显示 OBV 子图
  showDmi: boolean;        // 显示 DMI 子图
  showSuperTrend: boolean; // 显示 SuperTrend主图叠加
  showAttr: boolean;       // 显示 ATR 子图
  showTtmSqueeze: boolean; // 显示 TTM Squeeze 子图
  showEma: boolean;        // 显示 EMA 叠加线
  showMa: boolean;         // 显示 MA 叠加线
}

数据库类型shared/types.ts

Signal数据库信号记录

// 对应 MySQL signals 表
interface Signal {
  id: number;              // 自增主键
  userId: number;          // 用户 ID
  symbol: string;          // 交易对
  interval: string;        // K线周期
  direction: 'long' | 'short'; // 信号方向
  strength: 'strong' | 'medium' | 'weak'; // 信号强度
  score: number;           // 信号评分80/50/30
  price: number;           // 信号价格
  ewo?: number;            // EWO 值
  macd?: number;           // MACD 值
  macdSignal?: number;     // MACD 信号线值
  macdHist?: number;       // MACD 柱状图值
  ao?: number;             // AO 值
  reasons?: string;        // JSON 字符串,原因列表
  signalAt: number;        // 信号时间戳(毫秒)
  createdAt: Date;         // 创建时间
}

类型常量

默认 EWO 监控规则

const DEFAULT_EWO_RULE_SYMBOLS = [
  "BTCUSDT", "ETHUSDT", "BNBUSDT", "SOLUSDT", "DOGEUSDT"
];
const DEFAULT_EWO_RULE_INTERVAL: TimeInterval = "10m";
const DEFAULT_EWO_RULE_DIRECTION: EwoTurnDirection = "red_to_green";

默认信号周期

const DEFAULT_SYMBOL_INTERVAL: TimeInterval = "10m";

缓存限制

const CACHE_CANDLE_LIMIT = 300;  // 每对最多缓存300根K线

相关文档