其他示例

其他示例

Python SDK的其他示例正在不断更新中,如有新的例子,我们会及时同步在Github代码仓库。于此同时,如果您对SDK的使用有任何疑问,请直接联系我们

期权计算工具

在 sdk 代码路径下 tigeropen/examples/option_helpers/helpers.py , 提供了期权计算工具,可用于期权希腊值计算、期权价格计算、隐含波动率计算。 相关算法基于 quantlib 库,使用前需要先安装:pip install quantlib==1.32

使用方式1,在代码中引用

FDAmericanDividendOptionHelper 为美式期权计算类(包括美股期权,港股期权, ETF期权都使用此类) FDEuropeanDividendOptionHelper 为欧式期权计算类(指数期权使用此类)

import quantlib as ql
from tigeropen.examples.option_helpers.helpers import FDAmericanDividendOptionHelper


# 根据期权价格计算隐含波动率:
ql.Settings.instance().evaluationDate = ql.Date(19, 4, 2022)
helper = FDAmericanDividendOptionHelper(option_type=ql.Option.Call,
                                        underlying=985,
                                        strike=990,
                                        risk_free_rate=0.017,
                                        dividend_rate=0,
                                        volatility=0, # 隐含波动率临时设置为0
                                        settlement_date=ql.Date(14, 4, 2022),
                                        expiration_date=ql.Date(22, 4, 2022))

# 计算隐含波动率,参数为期权价格,可用盘口价(ask,bid)计算. (ask + bid) / 2
volatility = helper.implied_volatility(33.6148)
helper.update_implied_volatility(volatility)

print(f'implied volatility:{volatility}')
print(f'value:{helper.NPV()}')
print(f'delta:{helper.delta()}')
print(f'gamma:{helper.gamma()}')
print(f'theta:{helper.theta()}')
print(f'vega:{helper.vega()}')
print(f'rho:{helper.rho()}')




# 直接使用隐含波动率计算期权价格:
ql.Settings.instance().evaluationDate = ql.Date(19, 4, 2022)
helper = FDAmericanDividendOptionHelper(option_type=ql.Option.Call,  # PUT/CALL
                                        underlying=985,  # 结算日股价
                                        strike=990,      # 行权价
                                        risk_free_rate=0.017,  # 无风险利率
                                        dividend_rate=0,       # 股息率
                                        volatility=0.6153,     # 隐含波动率
                                        settlement_date=ql.Date(14, 4, 2022),  # 结算日期
                                        expiration_date=ql.Date(22, 4, 2022))  # 期权到期日
print(f'value:{helper.NPV()}')
print(f'delta:{helper.delta()}')
print(f'gamma:{helper.gamma()}')
print(f'theta:{helper.theta()}')
print(f'vega:{helper.vega()}')
print(f'rho:{helper.rho()}')

使用方式2,作为脚本命令调用

假设将 tigeropen/examples/option_helpers/helpers.py 保存在当前目录

# 计算期权价格
python helpers.py -t PUT -e '2022-05-20' -s 2022-04-24 -p 215 -u 215.52 -r 0.0078 -v 0.5919

# 根据期权价格计算隐含波动率. -n 指定期权价格
python helpers.py -t CALL -e '2022-04-22' -s 2022-04-14 -p 990 -u 985 -r 0.017 -n 33.6148
# 根据期权盘口数据计算隐含波动率.(使用 ask bid 的均值作为期权价格)
python helpers.py -t CALL -e '2022-04-22' -s 2022-04-14 -p 990 -u 985 -r 0.017 -a 35 -b 36

# 查看命令帮助
python helpers.py -h