其他示例
Python SDK 的示例代码在 GitHub 仓库中持续更新。使用中如有疑问,见联系我们。
期权计算工具
SDK 在 tigeropen/examples/option_helpers/helpers.py 提供期权计算工具,可计算希腊字母、期权价格和隐含波动率。
该工具依赖 quantlib 库,使用前先安装:pip install quantlib==1.40。
用法一:在代码中导入
美式期权(美股、港股期权及 ETF 期权)用 FDAmericanDividendOptionHelper;欧式期权(指数期权)用 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))
# 传入期权价格(例如买卖价中位数)计算隐含波动率
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()}')用法二:作为脚本运行
以下命令假设 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
# 由买卖价中位数计算隐含波动率
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期权指标计算工具
该工具封装了 SDK 请求,传入期权标识即可计算希腊字母、买入盈利概率、卖出年化收益率等指标。
代码路径:tigeropen/examples/option_helpers/util.py
get_option_metrics 的 return_type 支持 'dataframe'(默认)和 'list',后者返回 OptionMetric 对象列表。
import QuantLib as ql
from tigeropen.tiger_open_config import TigerOpenClientConfig
from tigeropen.quote.quote_client import QuoteClient
from tigeropen.trade.trade_client import TradeClient
from tigeropen.examples.option_helpers.util import OptionUtil
client_config = TigerOpenClientConfig(props_path='your_config_directory_path')
quote_client = QuoteClient(client_config)
trade_client = TradeClient(client_config)
option_util = OptionUtil(quote_client, trade_client)
# 计算指定期权的指标
identifiers = ['TSLA 260220C00385000']
# 示例 1:返回 DataFrame
print("示例 1:返回 DataFrame")
metrics_df = option_util.get_option_metrics(identifiers, return_type='dataframe')
print(f"\n{metrics_df}")
# 示例 2:返回 OptionMetric 对象列表
print("示例 2:返回 OptionMetric 对象列表")
metrics_list = option_util.get_option_metrics(identifiers, return_type='list')
for metric in metrics_list:
print(metric)
print(f" Greeks: delta={metric.delta}, gamma={metric.gamma}, "
f"theta={metric.theta}, vega={metric.vega}")
print(f" Risk: implied_vol={metric.implied_vol}, leverage={metric.leverage_ratio}")
print(f" Probability: profit_prob={metric.profit_probability}")Updated 14 days ago
Did this page help you?
