期权数据
# 获取期权数据
# 获取指定期权标的对应的期权品种列表(仅支持内部python)
ContextInfo.get_option_undl_data
用法: ContextInfo.get_option_undl_data(undl_code_ref)
释义: 获取指定期权标的对应的期权品种列表
参数:
- undl_code_ref:期权标的代码,如'510300.SH',传空字符串时获取全部标的数据
返回:
指定期权标的代码时返回对应该标的的期权合约列表list
期权标的代码为空字符串时返回全部标的对应的品种列表的字典dict
示例:
data=ContextInfo.get_option_undl_data('510300.SH')
# 获取历史期权列表 (仅支持内部python)
ContextInfo.get_option_list
用法: ContextInfo.get_option_list(undl_code,dedate,opttype,isavailable)
释义: 获取指定期权列表。如获取历史期权,需先下载过期合约列表
参数:
- undl_code:期权标的代码,如'510300.SH'
- dedate:期权到期月或当前交易日期,"YYYYMM"格式为期权到期月,"YYYYMMDD"格式为获取当前日期交易的期权
- opttype:期权类型,默认值为空,"CALL","PUT",为空时认购认沽都取
- isavailable:是否可交易,当dedate的格式为"YYYYMMDD"格式为获取当前日期交易的期权时,isavailable为True时返回当前可用,为False时返回当前和历史可用
返回: 期权合约列表list
示例:
# 获取到期月份为202101的上交所510300ETF认购合约
data=ContextInfo.get_option_list('510300.SH','202101',"CALL")
# 获取20210104当天上交所510300ETF可交易的认购合约
data=ContextInfo.get_option_list('510300.SH','20210104',"CALL",True)
# 获取20210104当天上交所510300ETF已经上市的认购合约(包括退市)
data=ContextInfo.get_option_list('510300.SH','20210104',"CALL",False)
2
3
4
5
6
7
8
# 获取指定期权品种的详细信息(仅支持内部python)
ContextInfo.get_option_detail_data(optioncode)
用法: ContextInfo.get_option_detail_data(optioncode)
释义: 获取指定期权品种的详细信息
参数:
- optioncode:期权代码,如'10001506.SHO',当填写空字符串时候默认为当前主图的期权品种
返回:
dict
字段
ExchangeID:期权市场代码
InstrumentID:期权代码
ProductID:期权标的的产品ID
OpenDate:发行日期
ExpireDate:到期日
PreClose:前收价格
SettlementPrice:前结算价格
UpStopPrice:当日涨停价
DownStopPrice:当日跌停价
LongMarginRatio:多头保证金率
ShortMarginRatio:空头保证金率
PriceTick:最小变价单位
VolumeMultiple:合约乘数
MaxMarketOrderVolume:涨跌停价最大下单量
MinMarketOrderVolume:涨跌停价最小下单量
MaxLimitOrderVolume:限价单最大下单量
MinLimitOrderVolume:限价单最小下单量
OptUnit:期权合约单位
MarginUnit:期权单位保证金
OptUndlCode:期权标的证券代码
OptUndlMarket:期权标的证券市场
OptExercisePrice:期权行权价
NeeqExeType:全国股转转让类型
OptUndlRiskFreeRate:期权标的无风险利率
OptUndlHistoryRate:期权标的历史波动率
EndDelivDate:期权行权终止日
示例:
def handlebar(ContextInfo):
print ContextInfo.get_option_detail_data('10001506.SHO')
2
# 获取股票期权的实时隐含波动率 (仅支持内部python)
ContextInfo.get_option_iv
用法: ContextInfo.get_option_iv(optioncode)
释义: 获取股票期权的实时隐含波动率
参数:
- optioncode:期权代码,如'10003280.SHO'
返回: double
示例:
def handlebar(ContextInfo):
print( ContextInfo.get_option_iv('10003280.SHO'))
2
# 基于BS模型计算欧式期权理论价格(仅支持内部python)
ContextInfo.bsm_price
用法: ContextInfo.bsm_price(optionType,objectPrices,strikePrice,riskFree,sigma,days,dividend)
释义: 基于Black-Scholes-Merton模型,输入期权标的价格、期权行权价、无风险利率、期权标的年化波动率、剩余天数、标的分红率、计算期权的理论价格
参数:
- optionType:期权类型,认购:'C',认沽:'P'
- objectPrices:期权标的价格,可以是价格列表或者单个价格
- strikePrice:期权行权价
- riskFree:无风险收益率
- sigma:标的波动率
- days:剩余天数
- dividend:分红率
返回:
objectPrices为float时,返回float
objectPrices为list时,返回list
计算结果最小值0.0001,结果保留4位小数,输入非法参数返回nan
示例:
import numpy as np
object_prices=list(np.arange(3,4,0.01));
#计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0,标的年化波动率为23%时标的价格从3元到4元变动过程中期权理论价格序列
prices=ContextInfo.bsm_price('C',object_prices,3.5,0.03,0.23,15,0)
print(prices);
#计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0,标的年化波动率为23%时标的价格为3.51元的平值期权的理论价格
price=ContextInfo.bsm_price('C',3.51,3.5,0.03,0.23,15,0)
print(price);
2
3
4
5
6
7
8
# 基于BS模型计算欧式期权隐含波动率 (仅支持内部python)
ContextInfo.bsm_iv
用法: ContextInfo.bsm_iv(optionType,objectPrices,strikePrice,optionPrice,riskFree,days,dividend)
释义: 基于Black-Scholes-Merton模型,输入期权标的价格、期权行权价、期权现价、无风险利率、剩余天数、标的分红率,计算期权的隐含波动率
参数:
- optionType:期权类型,认购:'C',认沽:'P'
- objectPrice:期权标的价格
- strikePrice:期权行权价
- optionPrice:期权现价
- riskFree:无风险收益率
- days:剩余天数
- dividend:分红率
返回: double
示例:
iv=ContextInfo.bsm_iv('C',3.51,3.5,0.0725,0.03,15);
#计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0时,标的现价3.51元,期权价格0.0725元时的隐含波动率
2
# 行情数据
行情数据的获取方式与股票相同, 接口说明 http://docs.thinktrader.net/vip/pages/cc95b6/#_1-qmt行情数据基础概念 (opens new window)
# 获取行情数据
get_market_data(field_list=[], stock_list=[], period='1d', start_time='', end_time='', count=-1, dividend_type='none', fill_data=True)
释义
- 从缓存获取行情数据,是主动获取行情的主要接口
- 获取实时行情需要先调用单股订阅接口subscribe_quote订阅实时行情
- 当已经提前用download_history_data下载数据或subscribe_quote订阅历史数据时,该接口可以获取到历史行情
参数
- field_list - list 数据字段列表,传空则为全部字段
周期为1m、5m、1d 时,字段可选 含义说明
field 含义 time
时间
open
开盘价
high
最高价
low
最低价
close
收盘价
volume
成交量
amount
成交额
settle
今结算
openInterest
持仓量
preClose
前收盘价
suspendFlag
停牌
1停牌,0 不停牌周期为tick 时,字段可选 含义说明
field 含义 time
时间
lastPrice
最新价
lastClose
前日收盘价
open
开盘价
high
最高价
low
最低价
close
收盘价
volume
成交量
amount
成交额
settle
今结算
pvolume
成交总量
openInterest
持仓量
stockStatus
证券状态
openInt
持仓量
lastSettlementPrice
前结算
askPrice
卖一价~卖五价
bidPrice
买一价~买五价
askVol
卖一量~卖五量
bidVol
买一量~买五量
- stock_list - list 合约代码列表
- period - string 周期 1m、5m、1d、tick
- start_time - string 起始时间 %Y%m%d或%Y%m%d%H%M%S
- end_time - string 结束时间 %Y%m%d或%Y%m%d%H%M%S
- count - int 数据个数
- dividend_type - string 除权方式
- fill_data - bool 是否向后填充空缺数据
- field_list - list 数据字段列表,传空则为全部字段
返回
- period为
1m
5m
1d
K线周期时- 返回dict { field1 : value1, field2 : value2, ... }
- field1, field2, ... :数据字段
- value1, value2, ... :pd.DataFrame 数据集,index为stock_list,columns为time_list
- 各字段对应的DataFrame维度相同、索引相同
- period为
tick
分笔周期时- 返回dict { stock1 : value1, stock2 : value2, ... }
- stock1, stock2, ... :合约代码
- value1, value2, ... :np.ndarray 数据集,按数据时间戳
time
增序排列
- period为
备注
- 仅用于获取level1数据
# 获取全推数据
get_full_tick(code_list)
- 释义
- 获取全推数据
- 参数
- code_list - 代码列表,支持传入市场代码或合约代码两种方式
- 传入市场代码代表订阅全市场,示例:['SH', 'SZ']
- 传入合约代码代表订阅指定的合约,示例:['600000.SH', '000001.SZ']
- code_list - 代码列表,支持传入市场代码或合约代码两种方式
- 返回
- dict 数据集 { stock1 : tick1, stock2 : tick2, ... }
- tick字段说明
- 备注
- 无