Skip to content

realtime 子模块

盘中实时处理模块,提供市场数据采集、情绪分析和实时数据保存功能。

模块路径

FQData.Processors.realtime

模块结构

realtime/
├── __init__.py
├── base.py              # 实时处理器基类和数据类
├── market_collector.py # 市场数据采集器
├── emotion_analyzer.py  # 市场情绪分析器
└── realtime_saver.py    # 实时数据保存器

核心组件

数据类

MarketStatus

市场状态数据类。

属性类型说明
timestampdatetime时间戳
minsint交易分钟数
up_countint上涨股票数
down_countint下跌股票数
limit_up_countint涨停股票数
limit_down_countint跌停股票数
mean_ratefloat平均涨跌幅
mean_amountfloat平均成交额
market_sentimentfloat市场情绪 (0-100)

RealtimeMarketData

实时市场数据类。

属性类型说明
datapd.DataFrame实时行情数据
blockdatapd.DataFrame板块实时数据
conceptdatapd.DataFrame概念实时数据
datauppd.DataFrame涨停股票数据
datadownpd.DataFrame跌停股票数据
timestampdatetime数据时间戳

EmotionMetrics

情绪指标数据类。

属性类型说明
timestampdatetime时间戳
minsint交易分钟数
mean_ratefloat平均涨跌幅
mean_high_ratefloat强势股平均涨幅
mean_mid_ratefloat中势股平均涨幅
mean_low_ratefloat弱势股平均跌幅
mean_tui_ratefloat推货平均跌幅
limit_up_countint涨停数
limit_down_countint跌停数
up_countint上涨数
down_countint下跌数
zdb_ratiofloat炸板率
fund_flowfloat资金流向
market_sentimentfloat市场情绪 (0-100)
sector_heatDict[str, float]板块热度

RealtimeProcessor

盘中实时处理器基类,继承自 BaseProcessor

类型: ProcessorType.STREAMING

核心方法:

方法说明
process()处理实时数据(抽象方法)
collect_market_data(mins)采集市场数据
analyze_emotion(data, mins)分析市场情绪
get_emotion_history(limit)获取情绪历史
get_current_trade_minutes()获取当前交易分钟数

MarketCollector

市场数据采集器,继承自 RealtimeProcessor

功能:

  • 采集股票实时行情
  • 采集板块实时数据
  • 采集概念实时数据
  • 识别涨停/跌停股票

使用示例:

python
from FQData.Processors.realtime import MarketCollector

collector = MarketCollector()
result = collector.collect(mins=120)

print(f"采集到 {len(result.data)} 条行情")
print(f"涨停股票: {len(result.dataup)}")
print(f"板块数据: {len(result.blockdata)}")

EmotionAnalyzer

市场情绪分析器,继承自 RealtimeProcessor

功能:

  • 计算市场情绪指标
  • 分析板块热度
  • 计算资金流向
  • 识别市场热点

使用示例:

python
from FQData.Processors.realtime import EmotionAnalyzer, MarketCollector

collector = MarketCollector()
analyzer = EmotionAnalyzer()

# 采集数据
market_data = collector.collect(mins=120)

# 分析情绪
emotion = analyzer.analyze(market_data, mins=120)

print(f"市场情绪: {emotion.market_sentiment}")
print(f"上涨/下跌: {emotion.up_count}/{emotion.down_count}")
print(f"涨停数: {emotion.limit_up_count}")

RealtimeDataSaver

实时数据保存器,继承自 RealtimeProcessor

功能:

  • 保存实时行情到 MongoDB
  • 保存市场情绪数据
  • 按日期分区存储

使用示例:

python
from FQData.Processors.realtime import RealtimeDataSaver

saver = RealtimeDataSaver()
result = saver.save(
    date="2024-01-01",
    save_emotion=True,
    save_market=True
)

print(f"保存成功: {result.success}")

交易分钟计算

A 股交易分钟计算规则:

python
# 9:15-9:25 集合竞价期间为负数
9:30 = 0
11:30 = 120
13:00 = 121
15:00 = 240

# 计算公式
if hour == 9 and minute < 30:
    return -(25 - minute)
elif hour < 12:
    return (hour - 9) * 60 + (minute - 30)
elif hour == 12:
    return 120
else:
    return (hour - 13) * 60 + minute + 120

相关文档