Put-Call Parity Calculation in R
What is Put-Call Parity?
Put-Call Parity is a fundamental principle in options pricing theory that establishes a relationship between the prices of European call and put options with the same strike price and expiration date. This relationship allows investors to verify the fairness of option prices and identify arbitrage opportunities.
Key Concepts
- European Options: Options that can only be exercised at expiration.
- Call Option: Gives the holder the right to buy an asset at a specified price.
- Put Option: Gives the holder the right to sell an asset at a specified price.
- Strike Price: The predetermined price at which the option can be exercised.
- Risk-Free Rate: The interest rate of a risk-free investment over the option's life.
Put-Call Parity is a theoretical concept that assumes no arbitrage opportunities exist in the market. In practice, small discrepancies may occur due to transaction costs, bid-ask spreads, and other market imperfections.
Put-Call Parity Formula
The Put-Call Parity formula establishes the relationship between the prices of European call and put options:
Put-Call Parity Formula:
C - P = S - K × e-rT
Where:
- C = Price of the call option
- P = Price of the put option
- S = Current price of the underlying asset
- K = Strike price of the option
- r = Risk-free interest rate
- T = Time to expiration (in years)
The formula shows that the difference between the call option price and the put option price should equal the difference between the current price of the underlying asset and the discounted strike price.
Derivation of the Formula
The Put-Call Parity formula can be derived by considering the payoff of both options and the risk-free investment:
- Create a portfolio consisting of one call option and one risk-free bond with face value equal to the strike price.
- This portfolio can be replicated by purchasing the underlying asset and selling one put option.
- By equating the values of these two portfolios, the Put-Call Parity formula is obtained.
Calculating Put-Call Parity in R
R is a powerful statistical programming language that can be used to calculate Put-Call Parity. Below is an example of how to implement the Put-Call Parity formula in R:
R Code for Put-Call Parity:
# Put-Call Parity Calculation in R
put_call_parity <- function(C, P, S, K, r, T) {
# Calculate the difference between call and put prices
call_put_diff <- C - P
# Calculate the difference between asset price and discounted strike price
asset_diff <- S - K * exp(-r * T)
# Return the results
list(
call_put_diff = call_put_diff,
asset_diff = asset_diff,
parity_violation = abs(call_put_diff - asset_diff)
)
}
# Example usage
result <- put_call_parity(C = 5.0, P = 3.0, S = 50.0, K = 50.0, r = 0.05, T = 1.0)
print(result)
This R function calculates the Put-Call Parity and returns the difference between the call and put prices, the difference between the asset price and the discounted strike price, and the absolute value of the parity violation.
Interpreting the Results
The output of the R function provides three key pieces of information:
- call_put_diff: The difference between the call option price and the put option price.
- asset_diff: The difference between the current price of the underlying asset and the discounted strike price.
- parity_violation: The absolute value of the difference between call_put_diff and asset_diff, which indicates the degree of Put-Call Parity violation.
A small parity violation is expected due to market imperfections, but a large violation may indicate an arbitrage opportunity or a pricing error.
Example Calculation
Let's consider an example where we have the following option prices and parameters:
| Parameter | Value |
|---|---|
| Call Option Price (C) | $5.00 |
| Put Option Price (P) | $3.00 |
| Current Asset Price (S) | $50.00 |
| Strike Price (K) | $50.00 |
| Risk-Free Rate (r) | 5% |
| Time to Expiration (T) | 1 year |
Using the Put-Call Parity formula:
C - P = $5.00 - $3.00 = $2.00
S - K × e-rT = $50.00 - $50.00 × e-0.05×1 ≈ $50.00 - $48.77 = $1.23
Parity Violation = |$2.00 - $1.23| = $0.77
In this example, the Put-Call Parity is violated by $0.77, which may indicate an arbitrage opportunity or a pricing error.
Interpretation of Results
The Put-Call Parity calculation helps investors understand the relationship between call and put options and identify potential arbitrage opportunities. Here's how to interpret the results:
No Arbitrage Condition
If the Put-Call Parity is satisfied (i.e., the parity violation is close to zero), the option prices are fair, and no arbitrage opportunities exist.
Arbitrage Opportunity
If the Put-Call Parity is violated, it may indicate an arbitrage opportunity. For example:
- If C - P > S - K × e-rT, the call option is overpriced, and the put option is underpriced.
- If C - P < S - K × e-rT, the call option is underpriced, and the put option is overpriced.
Practical Implications
Investors can use Put-Call Parity to:
- Verify the fairness of option prices.
- Identify arbitrage opportunities.
- Understand the relationship between call and put options.
- Assess the impact of interest rates and time on option prices.
Put-Call Parity is a theoretical concept that assumes no transaction costs, bid-ask spreads, or other market imperfections. In practice, small violations may occur, but large violations may indicate arbitrage opportunities.
Frequently Asked Questions
What is the difference between Put-Call Parity and the Black-Scholes model?
Put-Call Parity is a fundamental principle in options pricing that establishes a relationship between call and put options. The Black-Scholes model, on the other hand, is a mathematical model used to calculate the theoretical value of European options. While Put-Call Parity provides a relationship between option prices, the Black-Scholes model calculates the theoretical value of individual options.
Can Put-Call Parity be used for American options?
No, Put-Call Parity is specifically applicable to European options, which can only be exercised at expiration. American options, which can be exercised at any time before expiration, do not satisfy Put-Call Parity due to the early exercise feature.
How does Put-Call Parity relate to the concept of arbitrage?
Put-Call Parity establishes a no-arbitrage condition that must be satisfied for option prices to be fair. If Put-Call Parity is violated, it may indicate an arbitrage opportunity, where investors can profit by exploiting the price discrepancy.
What factors can cause Put-Call Parity violations?
Put-Call Parity violations can occur due to various factors, including transaction costs, bid-ask spreads, market imperfections, and differences in option liquidity. Additionally, changes in interest rates and time to expiration can affect the Put-Call Parity relationship.
How can investors use Put-Call Parity to make trading decisions?
Investors can use Put-Call Parity to verify the fairness of option prices, identify arbitrage opportunities, and understand the relationship between call and put options. By monitoring Put-Call Parity violations, investors can make more informed trading decisions and potentially profit from market inefficiencies.