🇨🇳 简体中文
🇺🇸 English
🇯🇵 日本語
Skip to the content.

股票数据模型

概述

股票数据模型用于存储和管理股票交易相关的数据,包括价格、成交量、时间戳等信息。

数据模型

StockData (股票数据)

字段名 类型 描述 示例 约束
code string 股票代码 “YINN.US” 必填,唯一标识,包含市场后缀
open float 开盘价 12.34 必填,≥0,保留2位小数
high float 最高价 13.45 必填,≥0,保留2位小数
low float 最低价 11.23 必填,≥0,保留2位小数
close float 收盘价 12.78 必填,≥0,保留2位小数
volume int 成交量 1000000 必填,≥0
turnover float 成交额 12780000.00 必填,≥0,保留2位小数
timestamp int 时间戳 1704067200 必填,UNIX时间戳
trade_session enum 交易时段 “Intraday” 必填,见交易时段枚举

TradeSession (交易时段枚举)

描述
Intraday 盘中交易
Pre 盘前交易
Post 盘后交易
Overnight 夜盘交易

数据存储

Redis存储结构

stock_data:{code}:{timestamp_iso}  # 股票数据详情 (Hash)
stock_codes                        # 股票代码集合 (Set)
stock_data:time_index:{code}       # 时间索引 (ZSET)

存储格式说明

  1. 数据键格式: stock_data:{code}:{timestamp_iso}
    • code: 股票代码(如:YINN.US)
    • timestamp_iso: 带时区的ISO格式时间戳(如:2025-09-16T12:00:00+08:00)
  2. 数据存储类型: Redis Hash
    • 使用 hset 存储字段-值对
    • 支持字段级别的访问和更新
  3. 时间索引: Redis ZSET
    • 使用Unix时间戳作为score
    • 支持时间范围查询

存储示例

Redis键: stock_data:YINN.US:2025-09-16T12:00:00+08:00

Hash字段:

symbol: "YINN.US"
open: "12.34"
high: "13.45"
low: "11.23"
close: "12.78"
volume: "1000000"
turnover: "12780000.00"
timestamp: "2025-09-16T12:00:00+08:00"
trade_session: "Intraday"

时间索引: stock_data:time_index:YINN.US

API接口

创建股票数据

获取股票数据列表

获取单条股票数据

获取股票代码列表

删除股票数据

股票数据导入

获取导入任务状态

WebSocket实时日志

时区处理

支持的时区

时区转换规则

  1. 前端时间格式: 使用ISO 8601格式带时区信息(如:2025-09-16T00:00:00-04:00)
  2. 后端存储: 统一转换为美东时间存储
  3. 查询转换: 根据用户选择的时区进行时间范围转换
  4. 数据导入: 支持按用户选择的时区进行数据获取和存储

时间格式示例

数据验证

价格字段验证

时间戳验证

交易时段验证

性能优化

索引策略

缓存策略

数据清理

自动清理

手动清理