Python画期权的payoff图,同时要展示出不同到期时间的损益图
时间: 2024-02-27 09:56:58 浏览: 243
Python LC Loan贷款数据集 文本字符串预处理转换 方差阈值 pearson相关系数 柱状图 2D 3D 散点图统计图
好的,您可以使用Python中的Matplotlib库来画期权的payoff图。以下是一个简单的例子,展示了一个看涨期权和看跌期权的payoff图,同时展示了不同到期时间的损益图:
```python
import numpy as np
import matplotlib.pyplot as plt
# 看涨期权的payoff函数
def call_payoff(sT, strike_price, premium):
return np.where(sT > strike_price, sT - strike_price, 0) - premium
# 看跌期权的payoff函数
def put_payoff(sT, strike_price, premium):
return np.where(sT < strike_price, strike_price - sT, 0) - premium
# 设置参数
spot_price = 100
strike_price = 105
premium = 2
# 生成股票价格数组
sT = np.arange(80, 120, 1)
# 画图
plt.figure(figsize=(10,5))
plt.plot(sT, call_payoff(sT, strike_price, premium), label='Call Option')
plt.plot(sT, put_payoff(sT, strike_price, premium), label='Put Option')
plt.xlabel('股票价格')
plt.ylabel('收益')
plt.title('看涨和看跌期权的Payoff图')
plt.legend()
plt.show()
# 不同到期时间的损益图
expiries = [30, 60, 90] # 到期时间
plt.figure(figsize=(10,5))
for expiry in expiries:
t = expiry/365
call_profit = call_payoff(sT, strike_price, premium) - premium
put_profit = put_payoff(sT, strike_price, premium) - premium
call_profit = call_profit * np.exp(-r*t)
put_profit = put_profit * np.exp(-r*t)
plt.plot(sT, call_profit, label='Call Option, T={}'.format(expiry))
plt.plot(sT, put_profit, label='Put Option, T={}'.format(expiry))
plt.xlabel('股票价格')
plt.ylabel('收益')
plt.title('不同到期时间的损益图')
plt.legend()
plt.show()
```
在这个例子中,我们首先定义了看涨期权和看跌期权的payoff函数,然后设置了一些参数,如股票价格、执行价格和期权费用。接下来,我们生成了一个股票价格数组,并使用Matplotlib库来画出看涨期权和看跌期权的payoff图。最后,我们使用不同的到期时间来计算不同的损益图,并使用Matplotlib库将其画出。
阅读全文