主要内容

Explore Single-Period Asset Arbitrage

This example explores basic arbitrage concepts in a single-period, two-state asset portfolio. The portfolio consists of a bond, a long stock, and a long call option on the stock.

It uses these Symbolic Math Toolbox™ functions:

  • 方程式stomatrixto convert a linear system of equations to a matrix.

  • linsolveto solve the system.

  • Symbolic equivalents of standard MATLAB® functions, such asdiag

这个例子symbolically derives the risk-neutral probabilities and call price for a single-period, two-state scenario.

Define Parameters of the Portfolio

创建符号变量rrepresenting the risk-free rate over the period. Set the assumption thatr是一个积极的价值。

symsrpositive

Define the parameters for the beginning of a single period,time = 0。HereS0is the stock price, andC0是罢工的呼叫期权价格,K

symsS0C0Kpositive

Now, define the parameters for the end of a period,time = 1。Label the two possible states at the end of the period as U (the stock price over this period goes up) and D (the stock price over this period goes down). Thus,SUSD是u和d州的股价,以及CU是州的电话的价值。请注意 S D < = K < = S U

symsSUSDCUpositive

The bond price attime = 0is 1. Note that this example ignores friction costs.

Collect the prices attime = 0into a column vector.

价格= [1 S0 C0]'
prices =

( 1 S 0 C 0 )

Collect the payoffs of the portfolio attime = 1into thepayoffmatrix. The columns ofpayoffcorrespond to payoffs for states D and U. The rows correspond to payoffs for bond, stock, and call. The payoff for the bond is1 + r。由于未行使,状态D中的电话的回报为零(因为 S D < = K )。

payoff = [(1 + r), (1 + r); SD, SU; 0, CU]
payoff =

( r + 1 r + 1 SD SU 0 CU )

CUis worth苏- Kin state U. Substitute this value inpayoff

payoff = subs(payoff, CU, SU - K)
payoff =

( r + 1 r + 1 SD SU 0 SU - K )

Solve for Risk-Neutral Probabilities

Define the probabilities of reaching states U and D.

symspuPD真实的

Under no-arbitrage,eqns == 0must always hold true with positivepuPD

eqns =payoff*[pD; pU] - prices
eqns =

( PD r + 1 + pu r + 1 - 1 SD PD - S 0 + SU pu - C 0 - pu K - SU )

Transform equations to use风险中立概率。

symsPDrnpurn真实的;eqns = subs(eqns,[pd; pu],[pdrn; purn]/(1 + r))
eqns =

( PDrn + purn - 1 SD PDrn r + 1 - S 0 + SU purn r + 1 - C 0 - purn K - SU r + 1 )

The unknown variables arePDrn,purn, 和C0。使用这些未知变量将线性系统转换为矩阵形式。

[A, b] = equationsToMatrix(eqns, [pDrn, pUrn, C0]')
A =

( 1 1 0 SD r + 1 SU r + 1 0 0 - K - SU r + 1 - 1 )

b =

( 1 S 0 0 )

Usinglinsolve, find the solution for the risk-neutral probabilities and call price.

x = linsolve(a,b)
x =

( S 0 - SU + S 0 r SD - SU - S 0 - SD + S 0 r SD - SU K - SU S 0 - SD + S 0 r SD - SU r + 1 )

Verify the Solution

Verify that under risk-neutral probabilities,x(1:2), the expected rate of return for the portfolio,E_returnequals the risk-free rate,r

E_return = diag(prices)\(payoff - [prices,prices])*x(1:2); E_return = simplify(subs(E_return, C0, x(3)))
E_return =

( r r r )

测试无容易违规行为

As an example of testing no-arbitrage violations, use the following values:r = 5%,S0 = 100, 和K = 100。ForSU < 105, the no-arbitrage condition is violated becausepdrn = xsol(1)是负的(SU >= SD)。此外,除了任何其他电话价格xSol(3), there is arbitrage.

XSOL =simplify(subs(x, [r,S0,K], [0.05,100,100]))
XSOL =

( - SU - 105 SD - SU SD - 105 SD - SU 20 SD - 105 SU - 100 21 SD - SU )

情节呼叫价格作为表面

Plot the call price,C0 = xSol(3), for50 <= SD <= 100105 <= su <= 150。Note that the call is worth more when the "variance" of the underlying stock price is higher for example,SD = 50, SU = 150

FSURF(XSOL(3),[50,100,105,150])XLABELSDylabelSUtitle'Call Price'

Figure contains an axes object. The axes object with title Call Price contains an object of type functionsurface.

Reference

Advanced Derivatives, Pricing and Risk Management: Theory, Tools and Programming Applications由Albanese,C.,Campolieti,G。