《Option Volatility & Pricing》阅读笔记之 Theoretical Pricing Model(理论定价模型)

这节内容主要是关于理论定价模型。

1、what a option trader concerns about market?

在期货交易中,如果你对市场的方向足够敏感,那么就可以在它上涨前做多,在它下跌前做空;而在期权交易中,单单预测市场的方向是不够的,还需要感受市场变化的速度
如果对同一个标的物进行做多操作,当市场行情的确上涨了,那么多头期货持有者必然是获利的,而多头期权的持有者并不一定获利,因为行情的上涨不一定可以弥补时间价值的支出,或者说是由于作为买方,需要交纳权力金,当上涨的价格达不到这个 Breakeven 保本的点,那么最终还是亏损的。所以说,在期权交易中,对市场速度的感知是很重要的,这个速度也就是后面提到的 Volatility 波动率。
在这里插入图片描述

2、Expected Value (期望价值) & Theoretical Value (理论价值)

期望价值就是通过标的物的价格的达到行权价的概率与之行权价得到的得数学期望。
理论价值就是现在支付,最终长远看只能达到收支平衡的价格。

举个例子,有一个六面骰,投到 1-6 可以得到对应的奖励金额。可以得到它的期望价值为(1+2+3+4+5+6)/ 6 = 3.5,如果这个游戏每次需要花费的金额小于这个期望价值,那么通过很多次的游戏,我们最终会得到一个正的收益;如果花费的金额大于这个期望价值,那么我们最后是负收益。如果这是在一家赌场,赌场为了获得收益,就会把这个游戏的价格订到比3.5 更高。但是如果赌场更改了游戏规则,玩家可以以期望价值 3.5 进行游戏,但是如果输了就需要现在支付3.5,如果赢了赌场会在两个月之后支付他的奖金,这样还是收益平衡吗。如果玩家在进入赌场之前去银行取了3.5作为游戏的费用,那么他现在支付这笔费用的话就会放弃3.5金额在银行中两个月的利息,所以他支付的理论金额应该是(假设年利息是12%):3.5 / (1+0.12×2/12) = 3.43,所以即使玩家以期望价值3.5进行游戏,那么他损失了0.07的利息,另一方面,如果赌场将这3.5存入了银行,那么它将获得0.07的利息,所以对于玩家来说,3.43则是他的理论价值,如果以3.43进行游戏,那么长远看来玩家和赌场将收支平衡。所以说游戏费用的理论值实际上是其期望值的现值,即3.5的期望值被利息折现后的价值。

当前某种期权的价格如果是10$,而你通过自己的定价模型推算出它的理论价值要比它高或者低,就可以选择去做多或者做空它。期权评估的目的是通过理论定价模型来确定期权的理论价值。由于理论价值是基于概率得到的,所以它可能会出现短时间的 bad luck,所以采用合适的风险管理也是同样重要的。
由于这节内容主要是关于定价模型的,所以主要还是关于 how to develop a theoretical pricing model。正如这句话,“Garbage in,garbage out”,选择合适的数据,构建合理的模型是很有意义的。通过实际价格和理论价值的比较,可以更好地选择如何对当前期权进行操作,所以说构建一个正确合适的定价模型的价值是无限的。

3、A Simple Pricing Model

构建一个简单的定价模型的步骤:
1、规划标的物不同到期日的行权价。
2、计算不同到期日的行权价的概率。这里有一个限制条件,就是标的物市场是 abitrage-free(无套利)的,也就是标的物的期望价格应该与远期的价格是一样的。
3、通过1和2中的价格和对应的价格来计算期望价格。
4、根据期权结算的方式的不同,计算目前的理论价格。

4、The Black-Scholes Model (布莱克-舒尔斯定价模型)

BS定价模型的历史就不再复述,虽然有很多定价模型的出现,但是BS定价模型依旧是最广泛使用的期权定价模型。

用BS定价模型计算期权的理论价值时,至少需要来期权和它的标的物的五个基本特征:
1、期权的行权价。
2、距离到期所剩的时间。
3、目前标的物的价格。
4、在期权持有期的利率。
5、标的物的波动率。
在这里插入图片描述
关于波动率,后面的章节会详细介绍。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
To price a barrier option on FX rate by Monte Carlo simulation, you can follow these steps: 1. Define the basic parameters of the barrier option, including the spot FX rate, strike price, option expiration date, barrier level, barrier type (up/down), barrier monitoring frequency, volatility, and risk-free rate. Store these parameters in variables. 2. Generate the simulated FX rate paths. Use a random number generator (such as the normal distribution) to generate a set of random shocks to the FX rate at each time step. Use these random shocks to simulate a set of possible FX rate paths for the option's life. Store these paths in a matrix. 3. Determine if the barrier has been breached for each simulated path. At each monitoring frequency, check if the FX rate has crossed the barrier level. If it has, take note of the time and location of the first breach. 4. Calculate the payoff for each simulated path. If the FX rate breached the barrier before the option expiration, the option expires worthless. If the FX rate did not breach the barrier before the option expiration, the option payoff is the maximum of 0 and the difference between the FX rate and the strike price. 5. Discount the payoff to the present value. Use the risk-free rate and the option's time to expiration to calculate the discount factor and present value for each simulated path. 6. Calculate the option price. Take the average of all the present values calculated in step 5 to get the option price. Here's an example of how to implement these steps in Python: ```python import numpy as np # Define basic parameters S0 = 1.2 # Spot FX rate K = 1.3 # Strike price T = 1 # Time to expiration B = 1.1 # Barrier level barrier_type = 'up' # Barrier type monitoring_freq = 10 # Barrier monitoring frequency sigma = 0.2 # Volatility r = 0.05 # Risk-free rate N = 10000 # Number of simulations dt = 1/252 # Time step # Generate the simulated FX rate paths ST = np.zeros((N, monitoring_freq+1)) ST[:,0] = S0 for i in range(N): for j in range(1, monitoring_freq+1): ST[i,j] = ST[i,j-1] * np.exp((r-sigma**2/2)*dt + sigma*np.sqrt(dt)*np.random.normal()) # Determine if the barrier has been breached for each simulated path breached = np.zeros(N, dtype=bool) time_to_breach = np.zeros(N) for i in range(N): for j in range(1, monitoring_freq+1): if barrier_type == 'up': if ST[i,j] > B: breached[i] = True time_to_breach[i] = j break else: if ST[i,j] < B: breached[i] = True time_to_breach[i] = j break # Calculate the payoff for each simulated path payoff = np.zeros(N) for i in range(N): if breached[i]: payoff[i] = 0 else: payoff[i] = max(0, ST[i,-1] - K) # Discount the payoff to the present value df = np.exp(-r*T) pv = payoff * df # Calculate the option price price = np.mean(pv) ``` This code generates random FX rate shocks at each time step to simulate possible FX rate paths for the option's life. It then checks if the barrier is breached for each path and calculates the payoff for each path. Finally, it discounts the payoff to the present value and calculates the option price as the average present value across all paths. Note that this is a simplified example and more advanced techniques may be required to get accurate option prices.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值