VnpyOptionMaster模块基础数据结构解析

365 阅读2分钟

Vnpy OptionMaster模块的base.py文件定义了几个关键的数据结构,构成了整个系统的基础。以下是这些数据结构的详细解释:

image.png

1. InstrumentData

这是所有金融工具的基类,包含以下主要属性:

  • 基本信息: symbol, exchange, vt_symbol
  • 交易相关: pricetick, min_volume, size
  • 持仓信息: long_pos, short_pos, net_pos
  • 价格信息: mid_price
  • 其他: tick (最新行情), portfolio (所属投资组合)

主要方法包括更新持仓、更新行情等。

2. OptionData(InstrumentData)

继承自InstrumentData,专门用于表示期权。额外的属性包括:

  • 期权特征: strike_price, option_type, option_expiry, days_to_expiry
  • 定价模型相关: calculate_price, calculate_greeks, calculate_impv
  • 隐含波动率: bid_impv, ask_impv, mid_impv, pricing_impv
  • 希腊字母: theo_delta, theo_gamma, theo_theta, theo_vega
  • 持仓风险指标: pos_value, pos_delta, pos_gamma, pos_theta, pos_vega

方法包括计算隐含波动率、理论希腊字母、持仓风险等。

3. UnderlyingData(InstrumentData)

表示标的资产,继承自InstrumentData。主要增加了:

  • theo_delta: 理论delta,通常为合约大小
  • chains: 与该标的关联的期权链字典

4. ChainData

表示期权链,即同一标的的所有期权。主要属性包括:

  • 期权集合: options, calls, puts
  • 风险指标汇总: pos_value, pos_delta, pos_gamma, pos_theta, pos_vega
  • 标的资产: underlying
  • 其他: atm_price (平值期权价格), use_synthetic (是否使用合成标的)

方法包括添加期权、计算风险、更新行情等。

5. PortfolioData

代表整个期权投资组合。主要属性有:

  • 期权集合: options
  • 期权链集合: chains
  • 标的资产集合: underlyings
  • 汇总风险指标: pos_delta, pos_gamma, pos_theta, pos_vega

方法包括计算整体风险、更新行情和交易、设置利率和定价模型等。

这些数据结构形成了一个层次化的体系:

Portfolio > Chain > Option/Underlying > Instrument

每个层级都聚合了下一级的信息,并提供了相应的计算和更新方法。这种设计使得系统可以方便地管理复杂的期权组合,进行风险计算,并响应市场变化。