深色模式
博衍通 — 技术架构
版本: v1.0(2026-08) 适用对象: 后续开发与维护人员 文档目的: 完整说明系统的架构设计、模块职责、数据流转、核心业务逻辑与运维要点,作为后续开发与维护的权威参考。 配套文档: 00-系统总览 · 01-功能清单 · 03-数据模型与数据库 · 04-使用手册 · 06-开发指南 · 功能指南(期权研判 / 波动率云图 / 希腊字母 / Gamma热力图)
目录
- 系统概述
- 技术栈
- 解决方案与项目结构
- 整体架构与数据流
- 数据层设计
- 5.1 PostgreSQL 表结构清单
- 5.2 Redis 使用规范
- 5.3 数据库连接与兼容性
- Python 数据采集管道
- 核心服务(Futures.Core)
- 7.1 交易执行(仿真撮合)
- 7.2 风控与结算
- 7.3 自动交易与止损止盈
- 7.4 行情与数据读取
- 7.5 期权与波动率分析
- 7.6 机会扫描与策略
- 7.7 宏观(Macro)
- 7.8 参数与品种管理
- 7.9 其他服务
- 桌面应用(Futures.Desktop)
- 8.1 启动流程与依赖注入
- 8.2 主界面(ShellWindow)与导航
- 8.3 各 UI 模块
- 配置管理
- 后台定时任务与调度
- 测试
- 开发与构建指南
- 维护注意事项与已知问题
- 附录:名词对照表
1. 系统概述
本系统是一套面向国内期货 + 期权的桌面级行情分析、交易机会挖掘、仿真交易与风控一体化平台。核心定位:
- 数据驱动:通过 Python 采集脚本(天勤 tqsdk + Tushare)全天候采集期货/期权实时行情、日线数据、持仓排名、仓单、宏观事件等,写入 PostgreSQL(TimescaleDB)与 Redis。
- 分析引擎:提供期货研判、期权研判、波动率云图、Gamma 热力图、期限结构、仓单分析、席位趋势、宏观评分、跨品种套利、事件雷达等分析能力。
- 仿真交易闭环:内置
SimulatedBrokerService仿真撮合引擎(PostgreSQL 落账,账户SimNow-001,初始资金 100 万),支持手动建仓、挂单、自动止损止盈、自动交易执行(·AUTO标记)、每日结算、风控规则。 - 桌面 UI:WPF + Prism(DryIoc)MVVM,44 个可导航视图(ViewMap 全量),深色主题,全中文界面(资源文件驱动,预留多语言扩展)。
- 当前状态:CTP 实盘/SimNow 直连尚未接入,系统中所有 CTP 相关代码已于 2026-08 移除,交易通道唯一实现为仿真撮合引擎。若未来需要接入实盘,可在
IBrokerService接口处扩展。
⚠️ 重要:本系统是分析 + 仿真交易系统,不连接真实期货交易柜台,不会产生真实交易。
2. 技术栈
| 领域 | 技术 | 版本 |
|---|---|---|
| 运行时 | .NET | net9.0(Core)/ net9.0-windows(WPF) |
| UI 框架 | WPF + Prism(PrismApplication, DryIoc 容器) | Prism 9.0.537 |
| 图表 | LiveChartsCore.SkiaSharpView.WPF | 2.0.5 |
| UI 控件库 | HandyControl(仅 Desktop) | 3.5.1 |
| 数据库 | PostgreSQL + TimescaleDB(超表分片) | Npgsql 10.0.3 |
| 数据访问 | Dapper(微 ORM)+ 原生 NpgsqlCommand | Dapper 2.1.35 |
| 缓存 | Redis(阿里云实例,实时行情快速通道) | StackExchange.Redis 3.0.11 |
| 日志 | Microsoft.Extensions.Logging(Console + Debug) | 10.x |
| 可观测性 | OpenTelemetry API(ActivitySource 定义) | 1.17.0 |
| 系统监控 | WMI(System.Management),进程指纹识别 | 9.0.0 |
| 敏感配置 | DPAPI(ProtectedData,__ENC__ 前缀) | 9.0.0 |
| 响应式 | System.Reactive(Desktop 引用) | 6.1.0 |
| 编码 | System.Text.Encoding.CodePages(GBK 支持) | 9.0.0 |
| 行情采集(Python) | tqsdk(天勤)、Tushare、psycopg2、redis-py、scipy | Python 3 |
| 测试 | xUnit(net9.0) | 335 用例 |
3. 解决方案与项目结构
解决方案文件:Futures.Desktop.slnx(新版 XML 格式解决方案,dotnet sln add 管理)。
D:\code\futures\
├── Futures.Desktop.slnx # 解决方案
├── src\
│ ├── Futures.Core\ # 核心类库(net9.0,无 UI)
│ │ ├── Data\ # 数据访问与服务(140 文件)
│ │ │ ├── Collectors\ # 排名/仓单持久化 + PythonScriptRunner
│ │ │ └── Scheduling\ # 数据采集调度(定时任务框架)
│ │ ├── Models\ # 领域模型(98 文件)
│ │ ├── Services\ # ConfigService、OptionPricingService 等
│ │ ├── Helpers\ # TradingTimeHelper、BrokerMarginAccounting
│ │ ├── Logging\ # LogManager(全局日志门面)
│ │ ├── Diagnostics\ # DiagnosticConfig(OpenTelemetry)
│ │ └── Tushare\ # TushareApiClient(真实实现)
│ ├── Futures.Desktop\ # WPF 宿主壳(WinExe)
│ ├── Futures.Module.Shared\ # 共享 UI 基础设施(转换器/图表/导航桥/本地化)
│ ├── Futures.Module.Futures\ # 期货模块(14 视图)
│ ├── Futures.Module.Options\ # 期权模块(4 视图)
│ └── Futures.Module.Stock\ # 股票模块(3 视图 + 数据采集调度)
├── tests\
│ └── Futures.Core.Tests\ # xUnit 测试工程(335 用例)
├── script\ # Python 采集脚本(随发布复制到 py_scripts\)
├── sql\ # SQL 迁移脚本 + run_migration.py
├── docs\ # 文档
└── tools\ # 一次性维护脚本(extract_ui_strings.ps1)3.1 项目引用关系
Futures.Desktop (WinExe, net9.0-windows)
├── Futures.Core
├── Futures.Module.Shared
├── Futures.Module.Futures ──┬── Futures.Core
│ └── Futures.Module.Shared
├── Futures.Module.Stock ────┬── Futures.Core
│ └── Futures.Module.Shared
└── Futures.Module.Options ──┬── Futures.Core
└── Futures.Module.Shared依赖方向单向:Core ← Shared ← (Futures/Stock/Options) ← Desktop。Core 不引用任何 UI 项目。
3.2 各项目职责
| 项目 | 职责 |
|---|---|
| Futures.Core | 纯业务逻辑层:数据访问、仿真撮合、风控、结算、自动交易、分析引擎、配置、日志。不依赖 UI。 |
| Futures.Module.Shared | 共享 UI 基建:29 个转换器、K 线/分时图控件、图表构建器、导航静态桥(NavigationBridge + 3 个 Carrier)、本地化资源(UIStrings.resx + TrExtension)。 |
| Futures.Module.Futures | 期货相关视图:期货研判、期货列表、持仓龙虎榜、仓单分析、主力映射、热力图、板块管理、交易机会、信号历史、宏观录入/规则/权重、事件雷达、套利配置。 |
| Futures.Module.Options | 期权相关视图:期权研判(综合)、期权列表、波动率分析、波动率云图。 |
| Futures.Module.Stock | 股票相关视图:股票研判、股票列表、个股分析;并注册数据采集调度器(DataCollectionSchedulerService)与股价预警监控。 |
| Futures.Desktop | 应用壳:DI 注册、模块目录、ShellWindow(侧边栏+标签页)、托盘通知、启动序列。 |
| Futures.Core.Tests | Core 的单元测试(xUnit,net9.0,InternalsVisibleTo 暴露内部成员给测试)。 |
4. 整体架构与数据流
┌────────────────────────────────────────────────┐
│ Python 采集层 (script/) │
│ tq_futures_pg / tq_overseas / unified_options │
│ daily_update_* / tq_mapping / update_calendar │
└───────┬───────────────────┬───────────────────┘
│ 每 tick │ 批量 2-3s
▼ ▼
┌───────────────┐ ┌────────────────────────────┐
│ Redis │ │ PostgreSQL (TimescaleDB) │
│ quote:{sym} │ │ quotes_realtime (超表) │
│ 哈希, TTL600s │ │ quotes_option_realtime(超表)│
│ (Greeks 字段) │ │ quotes_daily/option_daily │
└───────┬───────┘ │ futures/options/日历/映射 │
│ │ 交易/风控/信号/结算表 │
│ └──────────┬─────────────────┘
▼ │
┌───────────────────────────────────────┴─────────────────┐
│ Futures.Core (net9.0 服务层) │
│ RealtimePriceCache(Redis→PG 回退) FuturesDataService │
│ SimulatedBrokerService RiskControlService │
│ AutoTradeExecutionService AutoStopService │
│ 分析引擎: Greeks/波动率/期限结构/宏观/仓单/席位/机会 │
└───────────────────────┬─────────────────────────────────┘
│ 依赖注入(Prism DryIoc,全单例)
▼
┌────────────────────────────────────────────────────────┐
│ Futures.Desktop (WPF 壳) + 4 个功能模块(44 视图) │
│ ShellWindow: 侧边栏导航 + 可关闭标签页 + 托盘通知 │
└────────────────────────────────────────────────────────┘4.1 关键数据流(实时行情)
- Python 采集脚本(天勤 tqsdk)每 tick 更新 Redis
quote:{symbol}哈希(期货 10 字段,期权另含 8 个 Greeks/IV 字段),TTL 600 秒。 - 同时每 2-3 秒批量
INSERT到 PostgreSQL 超表quotes_realtime/quotes_option_realtime(TimescaleDB 按天分片)。 - .NET 侧
RealtimePriceCache先读 Redis(亚毫秒),未命中再回退 PG 最新价;UI 因此感知不到 PG 批量写延迟。 - 收盘后定时任务(
daily_update_*_pg.py)以api.get_quote()权威数据 UPDATEquotes_daily/quotes_option_daily(结算价、涨跌停、昨结等)。
4.2 关键数据流(交易闭环)
- 分析引擎扫描出交易机会(
TradingOpportunity)→ 用户在交易机会页记录信号(signal_history)。 - 手动下单:期货研判/期权研判页 →
IBrokerService.PlaceOrderAsync(仿真撮合)→ 成交建仓trading_positions。 - 自动交易(
AutoTradeExecutionService,默认关闭):机会满足条件自动挂单(·AUTO标记)→ 10s 轮询成交 →auto_trade_log记录生命周期(place→fill→tp_exit/sl_exit)。 AutoStopService(5s 后台)+SignalAutoCloseService(30s 后台)监控止盈止损,触发后平仓并托盘通知。- 收盘后
DailySettlementService生成每日结算(settlement_history);TradeReviewReportService每周自动生成复盘报告(review_report)。
5. 数据层设计
5.1 PostgreSQL 表结构清单
数据库:futures(默认 localhost:5432,生产 10.10.44.35:5432),schema public,TimescaleDB 扩展已启用。
A. 行情与基础数据(由 init_timescaledb.py 创建)
| 表名 | 用途 | 关键列 | 超表 |
|---|---|---|---|
trading_calendar | 交易日历 | trade_date DATE PK, is_trading_day SMALLINT | 否 |
exchanges | 交易所 | exchange_id VARCHAR(10) PK | 否 |
futures | 期货合约元数据 | symbol PK, exchange_id, product_id, product_name, instrument_name, expiry_date | 否 |
session_types | 交易时段类型字典 | session_type_id PK, type_name(DAY/NIGHT) | 否 |
product_trading_hours | 品种交易时段 | product_id, exchange_id, session_type_id, start_time, end_time, cross_day | 否 |
options | 期权合约元数据 | symbol PK, exchange_id, underlying_symbol, product_id, option_type(C/P), strike_price, expiry_date, multiplier | 否 |
quotes_realtime | 期货实时快照 | id, symbol, datetime(分区键), last_price, volume, open_interest, average, amount, ask/bid 1..5;PK (id, datetime) | 是(按天分片) |
quotes_daily | 期货日线 | symbol, trade_date, open/high/low/close, volume, open_interest, amount, settlement, upper/lower_limit, pre_settlement, pre_close, pre_open_interest;PK (symbol, trade_date) | 否 |
quotes_option_realtime | 期权实时 + Greeks | id, symbol, datetime(分区键), 盘口1..5, greeks_delta/gamma/theta/vega/rho, implied_volatility, intrinsic_value, time_value, historical_volatility;PK (id, datetime) | 是(按天分片) |
quotes_option_daily | 期权日线 | 同 quotes_daily + 结算/涨跌停列 | 否 |
B. 映射与交易所数据
| 表名 | 用途 | 关键列 |
|---|---|---|
fut_mappings | 主力/连续合约映射(Python 采集 + .NET 读取) | trade_date, ts_code(如 SHFE.cu), mapping_ts_code;UNIQUE (trade_date, ts_code) |
member_position_ranking | 交易所会员持仓排名(Tushare fut_holding) | exchange, symbol, trade_date, member_name, rank, long/short_volume, long/short_change |
warehouse_receipt | 仓单数据 | exchange, symbol, warehouse, trade_date, registered_qty, registered_change, effective_forecast_qty |
inventory_weekly | 周度库存 | exchange, symbol, report_date, inventory_qty, inventory_change, unit |
fut_wsr | Tushare fut_wsr 仓单明细 | trade_date, symbol, fut_name, warehouse, pre_vol, vol, vol_chg, area, year, grade, brand, ... |
C. 交易 / 风控 / 信号 / 结算表(由 .NET 服务幂等自建)
| 表名 | 用途 | 创建方 |
|---|---|---|
broker_account | 模拟账户(单行:余额/冻结/保证金/累计盈亏) | SimulatedBrokerService |
broker_orders | 模拟委托/成交(Pending/Filled/Cancelled 等状态机) | SimulatedBrokerService |
trading_positions | 期货持仓账本(含多腿期权字段、typed 止盈止损规则) | TradingPositionService |
saved_strategies | 期权多腿策略持仓(legs JSONB + 风控字段) | sql/create_saved_strategies.sql |
signal_history | 信号历史 + 计划止盈止损快照 + 归因 | SignalHistoryService |
settlement_history | 每日结算历史(UNIQUE (settlement_date, account_id)) | DailySettlementService |
risk_rules / risk_alerts | 风控规则 / 风控预警 | RiskControlService |
auto_trade_log | 自动交易生命周期日志(含去重唯一索引) | AutoTradeExecutionService |
review_report / review_report_strategy / review_report_suggestion | 每周复盘报告 | TradeReviewReportService |
product_params / contract_params | 品种/合约参数(乘数/保证金/手续费),参数回退链 | ProductParamService / ContractParamService |
macro_event_rules / macro_user_entries / macro_product_weights | 宏观事件规则/录入/品种权重 | MacroDbInitializer |
calendar_memos | 日历备忘 | sql/create_calendar_memos.sql |
custom_sectors / sector_product_mapping | 自定义板块 | SectorService |
stock_* 系列 | 股票基础/日线/指数/财务/停牌 | Stock*CollectionTask |
📌 命名说明:系统没有
orders/positions/daily_settlements表——真实表名分别是broker_orders、trading_positions、settlement_history。
5.2 Redis 使用规范
- 实例:阿里云 Redis
r-bp1x66eyd9f5757bxipd.redis.rds.aliyuncs.com:6379,db=0。 - Key 模式:每合约一个哈希
quote:{symbol}(如quote:SHFE.cu2501、quote:CFFEX.IO2506-C-4000)。 - 字段:
- 期货:
last_price, volume, open_interest, average, amount, ask_price1, ask_volume1, bid_price1, bid_volume1, update_time。 - 期权:上述 +
delta, gamma, theta, vega, rho, implied_volatility, intrinsic_value, time_value。
- 期货:
- TTL:每次写入
EXPIRE 600s(采集脚本停止后 ~10 分钟内 Key 过期,UI 自动回退 PG,数据可能滞后但不错)。 - 消费方:
RealtimePriceCache(HashGet("quote:{symbol}", "last_price"))、SystemMonitorService(DBSIZE心跳)。 - 连接容错:
AbortOnConnectFail=false、ConnectTimeout=3s、SyncTimeout=1000ms→ Redis 不可用时静默回退 PostgreSQL。
5.3 数据库连接与兼容性
DbConnectionFactory持有单一NpgsqlDataSource(连接池),构造时注入连接串(来自IConfigService.Load().GetPgConnectionString())。- 注册了
LegacyDateAndTimeResolverFactory(#pragma warning disable NPG9001),让 Npgsql 10 将date/time映射回DateTime/TimeSpan,保持 Dapper 对旧表的映射兼容——升级 Npgsql 时必须保留此解析器。 - 建表采用幂等 DDL 模式:
CREATE TABLE IF NOT EXISTS+ALTER TABLE ... ADD COLUMN IF NOT EXISTS,多数服务带静态锁/信号量(EnsureTablesAsync)。 - 超表 PK 必须是
(id, datetime)(TimescaleDB 要求分区键在 PK/唯一约束内);对超表不做ON CONFLICT更新,采集脚本只 INSERT。
6. Python 数据采集管道
脚本位于 script/,构建时由 Desktop csproj <Content Include="..\..\script\*.py" ... LinkBase="py_scripts\"> 复制到输出目录 py_scripts\(仅 Desktop 输出目录有一份)。所有脚本从 settings.py 读配置(优先 local_config.py——git 忽略的真实凭据 → 环境变量 → 内置默认),日志滚动写入 script/log/。
| 脚本 | 角色 | 数据源 → 输出 |
|---|---|---|
tq_futures_pg.py | 国内期货实时采集(常驻) | tqsdk → quotes_realtime(3s 批) + quotes_daily + Redis |
tq_overseas_futures_pg.py | 境外期货实时采集(常驻,KQD 接口,UTC 日期) | tqsdk → 同上 |
unified_options_main.py | 期权实时采集(常驻,6 线程:SHFE/DCE/CZCE/INE/GFEX/CFFEX 各一个 TqApi,2s 错峰启动 + 看门狗重启) | tqsdk → quotes_option_realtime(2s) + quotes_option_daily + Redis(含 Greeks) |
options_utils.py | 期权共享库(BS 定价/Greeks/IV、合成指数、会话管理、DB/Redis 工具) | 被 unified_options_main 导入 |
daily_update_futures_pg.py | 收盘后日线补齐(~16:30,仅 UPDATE 已有行) | tqsdk get_quote → quotes_daily |
daily_update_options_pg.py | 收盘后期权日线补齐(跳过无实时数据的合约) | tqsdk → quotes_option_daily |
daily_update_overseas_pg.py | 收盘后境外日线补齐(UTC 日期,无记录则跳过) | tqsdk → quotes_daily |
tq_mapping_pg.py | 主力合约映射采集(一次性;stdout 输出 {"saved":N} 供调度器解析,日志走 stderr) | tqsdk query_cont_quotes → fut_mappings |
update_calendar.py | 交易日历同步(幂等,可重复运行;--years-back N) | tqsdk → trading_calendar |
init_timescaledb.py | 建库初始化:超表、种子数据(日历/交易所/合约/时段/期权),可选从 MySQL RDS 迁移 | tqsdk + 可选 RDS → 全表 |
check_sr_data.py / check_symbols.py | 只读诊断脚本 | PG 查询 |
Greeks 计算(options_utils.py):BS 公式(RISK_FREE_RATE=0.02),scipy.optimize.brentq 反解隐含波动率;商品期权用标的期货 last_price 作为 S,CFFEX 指数期权用看涨-看跌平价合成指数 S = K + (C−P)·e^(rT)(配对时间差 ≤ 2s)。historical_volatility 字段当前硬编码 0.2。
会话模型:国内按北京时间(夜盘 21:00-03:00 计入下一交易日),境外按 UTC 日期。会话门控优先读 product_trading_hours,兜底内置交易所默认品种。
7. 核心服务(Futures.Core)
目录:
src/Futures.Core/Data+Services。所有服务均以接口 + 实现成对出现,注册在 Desktop 的App.RegisterTypes中(详见 §8.1)。
7.1 交易执行(仿真撮合)
IBrokerService→SimulatedBrokerService(唯一实现,单例):- 账户表
broker_account(SimNow-001,初始余额 1,000,000,冻结/保证金/盈亏字段)。 - 撮合:市价单在交易时段内立即成交(默认 1 tick 滑点);非交易时段转挂单并冻结保证金;限价单冻结保证金挂 Pending,
RefreshAsync轮询价格穿越后成交。 - 保证金/手续费解析走回退链:
contract_params → product_params → 内置默认,确保"扣款 = 持仓记账"一致。 - 幂等对账:
ReconcileFrozenMarginAsync(冻结 == Σ活跃单冻结)、ReconcileAccountAsync(账户与持仓账本对齐,期权腿经 saved_strategies 走账)。 - 每个品种内置
TickSizes最小变动价位字典(DCE/SHFE/CZCE/CFFEX/INE)。
- 账户表
ITradingPositionService→TradingPositionService:trading_positions持仓账本 CRUD;RefreshPricesAsync批量刷价 + symbol 自动修复(损坏的合约代码自动 UPDATE 修复)。IPortfolioService→PortfolioService:期货持仓 + 期权策略(saved_strategies)统一视图。IPortfolioGreekService→PortfolioGreekService:组合级 Δ/Γ/Θ/ν/ρ 聚合(期货仅贡献方向性 Delta;期权腿从quotes_option_realtime拉实时 Greeks,DISTINCT ON (symbol)取最新)。
7.2 风控与结算
IRiskControlService→RiskControlService:规则引擎——6 类规则(MaxLoss/MaxDrawdown/MinMarginRatio/MaxLossPerDay/MaxPosition/MaxConcentration)× 作用域(global/product/symbol)× 动作(warn_only/reject_order/auto_close_position/auto_close_all)。权益 = 余额 + 保证金 + 冻结 + 浮动盈亏。预警去重(同一条未解决预警原地更新),恢复时重置已通知集合;ShouldRejectOrderAsync门控新报单。IDailySettlementService→DailySettlementService:逐日盯市——期初权益(上次结算)+ 浮动持仓盈亏 + 已实现交易盈亏 − 手续费(broker_orders当日,兜底 成交额×0.0001)→ 期末权益/保证金比例/风险等级,写settlement_history。
7.3 自动交易与止损止盈
IAutoStopService→AutoStopService:5s 后台定时器 + 信号量;扫描期货持仓与期权策略 → 刷价 → 判定 typed 规则/文本规则止盈止损 → 平仓(期货走 broker,期权走SavedStrategyService.CloseStrategyAsync)→ 触发OnAutoClose。ISignalAutoCloseService→SignalAutoCloseService:30s 后台监控signal_history中未平仓且有计划止盈止损的行;主力合约映射(MainContractMap+fut_mappings)解析合约 → 最新价(Redis→PG)→EvaluateTrigger(看多:价≤SL 止损失/价≥TP 止盈得,看空反转)→ 触发OnSignalAutoClosed。IAutoTradeExecutionService→AutoTradeExecutionService:默认关闭,需在交易机会页开启。机会评估 → 方向/去重/单品种单在途 守卫 → 挂单(策略名拼·AUTO)→ 10s 填充检查 → 记录 fill → 止盈止损联动(订阅OnAutoClose)→ 关闭关联信号。DB 唯一索引ux_auto_trade_log_place_dedup防重复挂单。ITradeReviewReportService→TradeReviewReportService:每周复盘(≥7 天幂等)——auto_trade_log执行统计 + 策略回测快照 + 规则引擎生成改进建议 →review_report*表 +OnReportGenerated托盘通知。
7.4 行情与数据读取
IRealtimePriceCache→RealtimePriceCache:Redis 优先(quote:{symbol}哈希last_price),批量接口并行 HashGet,未命中逐符号回退 PG(quotes_realtime→quotes_option_realtime)。懒加载ConnectionMultiplexer(双重检查锁)。IFuturesDataService→FuturesDataService:只读查询中枢,约 33 个方法覆盖futures/options/quotes_realtime/quotes_option_realtime/quotes_daily/quotes_option_daily/trading_calendar(列表、最新报价、日线、日历、到期提醒、合约/乘数等)。IFuturesMappingPersistenceService:主力映射fut_mappings(Python 采集,.NET 读取)。IProductSessionService→ProductSessionService:交易时段模型(product_trading_hours+session_types),判断夜盘/是否交易时段(撮合与下单门禁用)。ISystemMonitorService→SystemMonitorService:进程监护(WMIWin32_Process命令行指纹识别 Python 脚本)、数据库健康(各表行数与最新时间戳)、Redis 状态(DBSIZE)、日志文件列表/尾读。健康检查覆盖futures/options/quotes_realtime/quotes_daily/quotes_option_realtime/quotes_option_daily/trading_calendar/exchanges/product_trading_hours,并做脚本级存活检查(如tq_futures_pg→ 最近 5 分钟 quotes_realtime 行数)。
7.5 期权与波动率分析
IOptionPricingService(Services/OptionPricingService.cs):Black-76 期货期权定价 + 解析 Greeks +ImpliedVolatility(Brent 法,σ∈[0.001,5.0],容差 1e-8);CalculatePnL估值多腿策略。注意:UI 展示的实时 Greeks 直接来自 PG(Python 计算),本服务主要用于回测与策略估值。IGreekExposureService→GreekExposureService:行权价级 Greek 敞口分析(期权表国内交易所、未到期、净敞口区域检测、DetectZones净 GEX 阻力/支撑)。IVolatilityHeatmapService→VolatilityHeatmapService:期货热力图——单条 SQL(LATERAL JOIN索引命中)取 7 天最新价 + 45 天前结算价 →changeRate%→ 色强min(|Δ%|×10,100),按板块着色。IVolatilityCloudService→VolatilityCloudService:波动率云图——按品种/合约月分 7 个 Delta 桶(20P/30P/40P/50/40C/30C/20C),桶内 IV/ΔIV/持仓量;skew = IV(20P) − IV(20C);按板块分组。IVolatilityAnalysisService→VolatilityAnalysisService:IV 期限结构、IV 曲线、波动率分析行。IOptionsStrategyMatcher→OptionsStrategyMatcher:内存策略库匹配——输入市场条件 → 对内置OptionsStrategy.All预设打分(方向/波动率/Theta/Gamma 权重 + 复杂度 + 最低置信度)→ 生成执行计划(真实行权价选腿)。- 回测:
IOptionsBacktestService(Black-76 PnL 估值)、IStrategyBacktestService、IPlanBacktestService(计划回测,缓存日线)。
7.6 机会扫描与策略
ITradingOpportunityService→TradingOpportunityService:综合机会扫描——按品种融合 7 大维度(RAG 为第 7 路):- 期货信号投票
SignalVotingEngine(期限结构/仓单/席位趋势/基差 Z/均线结构/持仓量趋势 → 中线信号MidTermSignal); - 波动率云(
SelectMainCloudMonth、平均 ΔIV); - 期权策略匹配(
OptionsStrategyMatcher.Match); - 宏观评分(
MacroScoreEngine); - 市场状态;
- RAG 情报(
RagFactorService:Qdrant 检索 + LLM 提取 Top3 因素 → 加权方向分,SignalVotingEngine.W_RAG=1.5计入投票;RagClientService/RemoteRagClientService双实现,RagServerUrl配置即切远程共享); → 汇总为TradingOpportunity(方向/置信度/入场时机/总评分/推荐理由/通俗摘要)。事件:HotOpportunitiesDetected、MidTermReversalsDetected。
- 期货信号投票
IFuturesStrategyService→FuturesStrategyService:期货策略评分/执行计划/止盈止损文本生成。IMidTermSignalService/IMidTermBacktestService:双周期中线信号 + 回测(RolloverSplicer拼接主力/次主力日线 → 5/10/20 日收益采样 → 胜率/期望)。ISavedStrategyService:期权多腿策略持仓(saved_strategies)。ITermStructureService:期限结构状态(升水/贴水);ISpotBasisService:现货基差;ITechnicalSrService:支撑阻力;ISpreadAnalysisService跨品种价差;ISeatTrendService/IExchangeRankingService席位趋势/龙虎榜;IOvernightOverseasService隔夜外盘;IEventRadarServiceP1-6 事件雷达;IExitRuleComparisonService出场规则对比回测;IStatisticalTestingService统计检验。- 仓单/排名:
IWarehouseReceiptService(仓单)、IRankingPersistenceService(持仓排名入库)、IFutHoldingPersistenceService(fut_wsr)。
7.7 宏观(Macro)
- 表:
macro_event_rules(事件→影响品种/方向/分数)、macro_user_entries(用户录入值)、macro_product_weights(品种×事件权重)。 - 服务:
IMacroScoreEngine(评分引擎)、DbMacroCalendarService、DbUserMacroEntryService、DbProductMacroWeightService、DbMacroEventRuleService、IAutoMacroService → Jin10MacroService(金十数据自动采集)。 MacroDbInitializer:启动时由 Desktop 以连接串直接初始化上述 3 表 + 种子数据。
7.8 参数与品种管理
IProductParamService:product_params(品种级乘数/保证金/手续费),首次建表播种内置默认值。IContractParamService:contract_params(合约级覆盖,source='manual'/'exchange',手动行不被 Tushare 同步覆盖)。IContractParamSyncService:Tusharefut_settle每日结算参数 → contract_params;TsCodeToTqContract转换(如CU2601.SHF→SHFE.cu2601)。ISectorService:自定义板块与品种映射。ICalendarMemoService:日历备忘。
7.9 其他服务
IConfigService/ConfigEncryption:见 §9。LogManager(Logging/):全局日志门面(ILoggerFactory,默认 NoOp,Desktop 启动时装配 Console+Debug)。CustomStrategyStore:自定义策略变体持久化(静态,启动加载)。FuturesOptionProductMapper:CZCE C/P 后缀、CFFEX 希腊字母前缀映射。BrokerMarginAccounting(Helpers/):冻结保证金/盈亏记账公式。TradingTimeHelper(Helpers/):夜盘会话表工具。PythonScriptRunner(Data/Collectors/):启动 Python 脚本(输出目录py_scripts)。
8. 桌面应用(Futures.Desktop)
8.1 启动流程与依赖注入
入口:App : PrismApplication(DryIoc)。CreateShell() → ShellWindow(注意不是 MainWindow,MainWindow 是保留的空壳)。
ModuleInitializer:注册 GBK 代码页(CodePagesEncodingProvider)。
模块目录(ConfigureModuleCatalog):FuturesModule → StockModule → OptionsModule。
DI 注册(RegisterTypes,除特别标注外全部单例,按领域分组):
| 组 | 注册 |
|---|---|
| 配置/数据访问 | IConfigService、IDbConnectionFactory(工厂 lambda:new DbConnectionFactory(config.GetPgConnectionString())) |
| 行情 | IRealtimePriceCache、IFuturesDataService、IProductSessionService、IVolatilityHeatmapService |
| 交易 | IBrokerService→SimulatedBrokerService、ITradingPositionService、IPortfolioService、IPortfolioGreekService、IAutoStopService、ISignalAutoCloseService、IAutoTradeExecutionService、ITradeReviewReportService、ISavedStrategyService |
| 风控/结算 | IDailySettlementService、IRiskControlService |
| 期权/波动率 | IGreekExposureService、IOptionsStrategyMatcher、IVolatilityAnalysisService、IVolatilityCloudService、IOptionsBacktestService |
| 排名/行情持久化 | IRankingPersistenceService、IExchangeRankingService→TushareExchangeRankingService、IRankingAnalysisService、IFutHoldingPersistenceService、TushareApiClient |
| 股票 | IStockMarketService、IStockService、IStockWatchlistService、IStockPriceAlertService |
| 仓单/期限/价差 | ITermStructureService、IWarehouseReceiptPersistenceService、WarehouseReceiptCollectorService、IWarehouseReceiptService、ISpreadAnalysisService、ISpreadPairConfigService |
| 宏观 | IMacroCalendarService、IUserMacroEntryService、IProductMacroWeightService、IMacroScoreEngine、IAutoMacroService→Jin10MacroService、IMacroEventRuleService |
| 分析 | IEventRadarService、ISpotBasisService、ISeatTrendService、ITechnicalSrService、IMidTermSignalService、IMidTermBacktestService、IOvernightOverseasService、IFuturesStrategyService、IPlanBacktestService、IStrategyBacktestService、IExitRuleComparisonService、IStatisticalTestingService(transient) |
| 参数/调度/监控 | IProductParamService、IContractParamService、IContractParamSyncService、ISchedulerConfigService、ISchedulerLogService、ISystemMonitorService、ITrayNotificationService |
| 定时任务 | FutHoldingCollectionTask、WarehouseReceiptCollectionTask(Register<ScheduledTaskBase,...>,transient,自动注册进调度器) |
| 已移除 | IOpportunityScannerService、OpportunityScannerView(注释保留) |
视图注册:
- Desktop 自身注册 19 个导航视图(
RegisterForNavigation:Dashboard/Settings/CampSettings/TradingCalendar/StrategyBuilder/StrategyPnL/PositionMonitor/Backtest/OptionsBacktest/StrategyWeightEditor/StatisticalTesting/ExitComparison/PortfolioGreek/SystemMonitor/SchedulerConfig/ContractParam/ExchangeRanking/WarehouseReceiptCollector/FuturesMappingCollector)+ 4 个直接经 ViewMap 解析的视图(RiskDashboard/SchedulerLog/ProductParam/CampAnalysis,未走RegisterForNavigation,仅注册 VM + 由ContainerLocator.Current.Resolve(viewType)创建)。 - 模块各自注册:Futures 14、Options 4、Stock 3。
- 合计 19 + 4 + 14 + 4 + 3 = 44,与
ShellWindowViewModel.ViewMap条目数一致。
启动序列(OnStartup):
- 装配日志(Console+Debug,Information)。
base.OnStartup(Prism 初始化容器)→ 挂AppDomain.UnhandledException/DispatcherUnhandledException(弹框 + 日志)。CustomStrategyStore.Load()。IAutoStopService.Start()(5s 止盈止损)。ISignalAutoCloseService启动 +OnSignalAutoClosed→ 托盘通知 → 跳转信号历史页。ITrayNotificationService+IRiskControlService.OnAlertTriggered→ 托盘气泡。IAutoTradeExecutionService启动(默认关闭)+OnExecutionLogAdded→ 托盘 → 交易机会页。ITradeReviewReportService.OnReportGenerated→ 托盘;GenerateWeeklyIfDueAsync()(≥7 天幂等)。ITradingOpportunityService:HotOpportunitiesDetected(_notifiedHotKeys去重)→ 🔥 托盘 + 详情窗口;MidTermReversalsDetected→ 🔁 托盘 → 期货研判。IConfigService.EnsureEncrypted()(DPAPI 就地加密)+MacroDbInitializer.InitializeAsync()(宏观表 + 种子)。OnExit→ 释放托盘图标。
8.2 主界面(ShellWindow)与导航
- 布局:左侧深色侧边栏 7 个可折叠菜单组(市场总览/期货/期权/股票/机会与策略/数据采集/系统)+ 右侧可关闭标签页 TabControl(自定义 ItemContainerStyle 带 ✕ 按钮)+ 顶部
TodayReminderBar(今日到期期货/期权 + 备忘)。 - 导航模型:不使用 Prism RegionManager。
ShellWindowViewModel.ViewMap(静态字典:44 个视图名 → CLR Type)→ContainerLocator.Current.Resolve(type)创建标签页;NavigateTo(viewName)存在即选中(StockDetail 例外:每次重建),未知名弹本地化错误。标签关闭时调用 VM/视图的IDisposable.Dispose()(停定时器、退订静态事件,防页面切换泄漏)。 - 跨页通信:静态桥
NavigationBridge(NavigateTo、ShowAutoTradeChain)+ 3 个静态 Carrier:AnalysisPageSelectionCarrier(交易机会页 → 期货/期权研判的产品跳转);FuturesBacktestCarrier(研判页 → 回测页的一键回测请求);OptionsBacktestCarrier(同上,期权版)。
代码注释明确说明后续可重构为 Prism
IEventAggregator或INavigationService。 - 托盘:WinForms
NotifyIcon(ITrayNotificationService:ShowAlert/ShowOpportunityAlert/ShowMidTermReversalAlert/ShowInfoAlert),气泡点击可导航或打开详情窗口。 - 弹窗窗口:
StrategyPnLChartWindow(期权策略盈亏曲线)、AutoTradeChainWindow(自动执行全链路:挂单→成交→止盈/止损)、HotOpportunityDetailWindow(🔥 机会详情)。
8.3 各 UI 模块
Futures.Module.Futures(14 视图)
| 视图 | ViewModel | 功能 |
|---|---|---|
FuturesAnalysisView | FuturesAnalysisViewModel | 期货研判(旗舰页,注入 21 个服务):多因子分析(Greeks 敞口/龙虎榜/期限结构/仓单/跨品种价差/宏观/基差/席位/策略评分/中线信号/隔夜外盘/技术 SR)+ 一键回测 + 买入建仓/挂单 |
FuturesListView | FuturesListViewModel | 期货列表:按交易所/期限结构过滤,产品迷你价格图 |
FuturesRankingQueryView | FuturesRankingQueryViewModel | 持仓龙虎榜查询/采集 |
WarehouseReceiptCollectionView | WarehouseReceiptCollectionViewModel | 仓单分析:历史浏览 + 趋势图 |
FuturesMappingView | FuturesMappingViewModel | 主力合约映射查看 |
HeatmapView | HeatmapViewModel | 期货热力图(已注册导航并进入 ViewMap,但侧边栏无菜单入口,布局逻辑为 TODO 桩) |
SectorManagerView | SectorManagerViewModel | 板块管理 |
TradingOpportunityView | TradingOpportunityViewModel | 交易机会:🔥 扫描/评分过滤/记录信号/自动执行日志/周报;跨页跳转 + AutoTradeChainWindow |
SignalHistoryView | SignalHistoryViewModel | 信号历史:胜率统计、手动/计划平仓 |
MacroManualEntryView | MacroManualEntryViewModel | 宏观数据录入(触发评分引擎) |
MacroEventRuleManagementView | MacroEventRuleManagementViewModel | 宏观规则 CRUD |
MacroEventWeightManagementView | MacroEventWeightManagementViewModel | 宏观品种权重 CRUD |
EventRadarView | EventRadarViewModel | P1-6 事件雷达 |
SpreadPairConfigView | SpreadPairConfigViewModel | 跨品种套利配置 |
Futures.Module.Options(4 视图)
| 视图 | ViewModel | 功能 |
|---|---|---|
CombinedAnalysisView | CombinedAnalysisViewModel | 期权研判(旗舰页,注入 15 个服务):多因子评分 + 策略匹配 + 一键回测 + 买入建仓 |
OptionsListView | OptionsListViewModel | 期权列表:完整期权链、IV 微笑图、标的日内走势、5s 实时报价 + 30s 刷新 |
VolatilityAnalysisView | VolatilityAnalysisViewModel | 波动率分析:IV 期限结构、偏度 |
VolatilityCloudView | VolatilityCloudViewModel | 波动率云图(60s 自动刷新) |
Futures.Module.Stock(3 视图 + 调度)
| 视图 | ViewModel | 功能 |
|---|---|---|
StockAnalysisView | StockAnalysisViewModel | 股票研判:主要指数卡片(30s 刷新) |
StockListView | StockListViewModel | 股票列表:搜索 + 自选股 |
StockDetailView | StockDetailViewModel | 个股分析:K 线/成交量/RSI/MACD 4 图 + 财务 + 自选/预警 |
StockModule.OnInitialized:启动 IDataCollectionSchedulerService + IStockPriceAlertService.StartMonitoring()(30s 股价预警)。
Futures.Module.Shared
- 29 个转换器(
Converters/,类 + XAML 资源键成对):方向色、涨跌色、Bool→可见性/颜色、期权类型色、分数色等。 - 控件:
KLineChartControl(K 线 + 成交量双图 UserControl,DP:KLineBars/ShowVolume)、BindingProxy(Freezable 绑定桥)、SelectableTextBlock。 - 图表构建器:
KLineChartBuilder、IntradayChartBuilder(BuildFromFutures/BuildFromOptions)。 - 本地化:
UIStrings.resx(默认 zh-CN,约 117 个 key),UIStrings.Get/Format/TabTitle(TabTitle 字典含 emoji);XAML 用{local:Tr Key=...}标记扩展。部分硬编码中文仍在 Shell 与 Dashboard 中。 - 主题:
DarkTheme.xaml(深色重定义 SystemColors/控件样式)+SharedConverters.xaml合并进 App.xaml;Styles.xaml(DashboardCardStyle)为次要字典,未合并。
9. 配置管理
- 位置:
<程序运行目录>/config/appsettings.json(开发时源码位于src/Futures.Desktop/config/,随构建复制PreserveNewest)。另有appsettings.example.json模板(不含真实凭据)。 - 结构(对应
AppConfig):PgHost/PgPort/PgDatabase/PgUser/PgPassword、RedisHost/RedisPort/RedisPassword、TqUser/TqPassword(天勤凭据)、RefreshInterval(默认 3s)、TushareToken/TushareProxyUrl/TushareProxyEnabled/TushareBypassSsl/TushareUseHostHeader、CampSettings(五大机构/五大家人/外资 → 经纪商关键词)。 - 加载优先级(
ConfigService.Load):- 基础文件
appsettings.json; - 环境文件
appsettings.{DOTNET_ENVIRONMENT|ASPNETCORE_ENVIRONMENT}.json(非默认值覆盖); - 环境变量
PG_* / REDIS_* / TUSHARE_TOKEN / TQ_USER / TQ_PASSWORD(最高优先级)。
- 基础文件
- 加密:敏感字段(PgPassword/RedisPassword/TqPassword/TushareToken)用 DPAPI(
ProtectedData,CurrentUser 范围)加密,值前缀__ENC__;Encrypt幂等,Decrypt解最多 10 层(兼容历史叠加 bug);EnsureEncrypted()启动时幂等就地加密。注意:配置受加密的 Windows 用户绑定,换用户解密会抛异常。 - 缓存:
_cached双重检查锁;InvalidateCache()强制重读。
10. 后台定时任务与调度
- 框架:
Futures.Core/Data/Scheduling/。IDataCollectionSchedulerService(单例)编排ScheduledTaskBase任务(ScheduledTaskConfig配置、SchedulerLogService记录日志)。 - 任务注册:
StockModule注册 5 个股票采集任务 + Desktop 注册FutHoldingCollectionTask、WarehouseReceiptCollectionTask。 - 内置 Python 调度任务:
PythonScriptScheduledTask运行py_scripts下脚本(如tq_mapping_pg.py,解析 stdout 的{"saved":N}JSON——脚本日志必须走 stderr,否则破坏协议)。 - UI:系统菜单"数据采集"组的
SchedulerConfig(任务配置)、SchedulerLog(日志)、ExchangeRanking/WarehouseReceiptCollector/FuturesMappingCollector(手动触发采集)。 - 非调度常驻后台:AutoStopService(5s)、SignalAutoCloseService(30s)、AutoTradeExecutionService(10s 填充检查)、RiskControlService(风控告警)、StockPriceAlertService(30s)、IStockPriceAlertService。
11. 测试
- 工程:
tests/Futures.Core.Tests(xUnit,net9.0),引用 Core,InternalsVisibleTo("Futures.Core.Tests")暴露内部成员(如SignalAutoCloseService.EvaluateTrigger)。 - 运行:
dotnet test tests/Futures.Core.Tests/Futures.Core.Tests.csproj(当前 335 个用例全部通过,~300ms)。 - 覆盖重点:配置序列化/加密、价格缓存回退、撮合/保证金记账、止损止盈触发判定、风控规则、结算计算等纯逻辑(不依赖外部 DB/Redis 的用例)。
12. 开发与构建指南
powershell
# 还原并构建整个解决方案(.slnx 格式,VS2022 17.10+/dotnet 9 SDK)
dotnet build Futures.Desktop.slnx
# 仅运行 Core 测试
dotnet test tests/Futures.Core.Tests/Futures.Core.Tests.csproj
# 添加新工程到解决方案
dotnet sln Futures.Desktop.slnx add src/MyNew/MyNew.csproj新增一个页面的标准流程:
- 在对应模块(或 Desktop)新建
Views/MyView.xaml(.cs)+ViewModels/MyViewModel.cs(继承BindableBase)。 - 模块
RegisterTypes中RegisterForNavigation<MyView, MyViewModel>("MyView")(Desktop 页面则在App.RegisterTypes)。 - 若需出现在菜单:在
ShellWindowViewModel.ViewMap注册视图名 → 类型,并在ShellWindow.xaml对应菜单组添加子菜单按钮(OnMenuClick)。 - 服务注入:构造器注入所需 Core 接口(全部经 Prism/DryIoc 自动装配)。
- 若 VM 含定时器/事件订阅 → 实现
IDisposable(标签关闭时自动释放)。 - 跨页跳转用
NavigationBridge.NavigateTo;跨页传参用静态 Carrier。 - UI 文案走
UIStrings资源 +{local:Tr},颜色/方向用共享转换器。
新增一个 Core 服务:接口 + 实现成对放入 Futures.Core/Data(或 Services),App.RegisterTypes 注册单例;若需后台运行,参照 AutoStopService 的 timer + 事件 + 启动接线模式。
Python 采集脚本约定:
- 常驻采集:无限循环 + 会话感知休眠 + 批量刷库 + Redis 每 tick 写入 + 滚动日志到
log/。 - 一次性采集:stdout 输出机器可读结果(JSON),日志走 stderr。
- 配置文件:
settings.py→local_config.py(git 忽略,真实凭据)。严禁把真实凭据提交进仓库。
13. 维护注意事项与已知问题
13.1 已知待清理项(技术债)
- 空文件垃圾:
src/Futures.Core/ConfigService.cs、Data/nonexistent_file.cs、Data/NonExistentFile.cs、Data/TushareApiClient.cs(均 0 字节,重复/占位);.bak文件:Models/FutHoldingRecord.cs.bak、Data/IFutHoldingPersistenceService.cs.bak、Data/FutHoldingPersistenceService.cs.bak。可安全删除。 - Tushare 客户端重复:真实实现
Tushare/TushareApiClient.cs(Futures.Core.Tushare);Data/TushareApiClient.cs是空壳。 - MainWindow 未使用:内容为占位提示,
CreateShell用的是ShellWindow。可删。 - StockDataCollectorView/ViewModel:已在 csproj 中
Remove出构建,文件内容仅为 DELETED 占位,无任何引用。可彻底删除。 - HeatmapView 未接入菜单:已注册导航并进入 ViewMap,但
ShellWindow.xaml侧边栏无其菜单入口(44 个 ViewMap 条目中唯一无菜单项的视图),布局为 TODO。 - 部分硬编码中文:ShellWindow.xaml.cs、DashboardView 中的提示文案未走
UIStrings。 - 静态桥导航(NavigationBridge/Carrier):功能正常,但代码注释自述可重构为 Prism
IEventAggregator/INavigationService。 historical_volatility硬编码 0.2(options_utils.py):当前不是真实历史波动率。INavigationDescriptor接口:声明但未消费(Shell 侧边栏菜单硬编码)。
13.2 运维要点
- 凭据轮换:PG/Redis/MySQL 密码同时存在于
script/local_config.py(Python 侧)与appsettings.json(.NET 侧),需协同更新。 - Redis 不可用:系统自动回退 PG(
AbortOnConnectFail=false),UI 不报错但可能滞后最多一个批量周期。 - 采集脚本停止:Redis Key 10 分钟过期后 UI 读 PG 旧数据;
SystemMonitor页面(系统→系统监控)可查看各脚本存活/数据库新鲜度。 tq_mapping_pg.pystdout 协议:调度解析依赖 stdout JSON,脚本日志改动时勿污染 stdout。- 超表维护:
quotes_realtime/quotes_option_realtime按天分片,注意数据量与 TimescaleDB 压缩策略(当前未配置压缩/保留策略)。 - Npgsql 升级:务必保留
LegacyDateAndTimeResolverFactory(NPG9001 pragma)。 - DPAPI 绑定:
__ENC__加密值绑定当前 Windows 用户;换机/换用户需重新配置。 - 构建产物:仅 Desktop 输出目录有
py_scripts\(含 settings.py + local_config.py + 全部 .py),其余项目输出目录无脚本副本(2026-08 清理后的现状)。
13.3 数据一致性设计要点(勿破坏)
- 撮合扣款 = 持仓记账:SimulatedBrokerService 通过
contract_params → product_params → 内置默认回退链解析乘数/保证金率,保证扣款与trading_positions记账一致。 - 撤单恢复冻结:
BrokerMarginAccounting.ReleaseFrozenOnCancel按未成交数量比例释放冻结(修复过"撤单不恢复"历史 bug)。 - 对账幂等:
ReconcileFrozenMarginAsync/ReconcileAccountAsync幂等,可安全重复执行。 - 自动执行去重:DB 唯一索引
ux_auto_trade_log_place_dedup(同日同品种同方向只挂一次)+ 内存_loggedOrderIds双重守卫。 - 期权腿走 saved_strategies 账:组合对账时期权腿排除出 broker 账户总盈亏,避免双重记账。
14. 附录:名词对照表
| 名词 | 含义 |
|---|---|
| tqsdk / 天勤 | 国内期货行情数据 SDK(Python),采集主源 |
| Tushare | 财经数据接口(持仓排名/仓单/合约参数等) |
| 主力合约映射 (fut_mappings) | tqsdk query_cont_quotes 连续合约 → 实际主力合约代码 |
| 龙虎榜/持仓排名 | 交易所会员持仓排名(member_position_ranking) |
| 仓单 | 交易所注册仓单数据(warehouse_receipt / fut_wsr) |
| 波动率云 (Volatility Cloud) | 按 Delta 桶分布的 IV 曲面(7 桶 + skew) |
| Gamma 热力图 (Heatmap) | 期货涨跌幅 → 板块着色 treemap |
| 合成指数 | 指数期权用看涨-看跌平价计算的隐含标的价 S |
| ·AUTO | 自动交易标记(自动挂单/成交/平仓的策略名后缀) |
| typed 止盈止损规则 | TypedRuleSpec(tp_condition/tp_operator/tp_threshold/trailing 等结构化字段) |
| DPAPI | Windows 数据保护 API(配置加密) |
| TimescaleDB 超表 | 按 datetime 分片的 PostgreSQL 扩展表 |