# Options Formula
Sure, here are the generalized formulas for calculating profits and losses for buyers and sellers of call and put options, including the impact of premiums:
Here are the assumptions
```
K = 100 # Strike price
premium = 10 # Premium paid/received for the option
```
## Call Option
### Call Option Buyer Profit/Loss
$
\begin{align}
\text{Profit/Loss} = \max(0, S_T - K) - \text{Premium}
\end{align}
$
Where:
- $S_T$ = Stock price at expiration
- $K$ = Strike price
- $\text{Premium}$ = Premium paid for the call option
![[Options Formula.png|500]]
### Call Option Seller Profit/Loss
$
\begin{align}
\text{Profit/Loss} = \text{Premium} - \max(0, S_T - K)
\end{align}
$
Where:
- $\text{Premium}$ = Premium received for the call option
![[Options Formula-1.png|500]]
## Put Option
### Put Option Buyer Profit/Loss
$
\begin{align}
\text{Profit/Loss} = \max(0, K - S_T) - \text{Premium}
\end{align}
$
Where:
- $S_T$ = Stock price at expiration
-$K$ = Strike price
- $\text{Premium}$ = Premium paid for the put option
![[Options Formula-2.png|500]]
### Put Option Seller Profit/Loss
$
\begin{align}
\text{Profit/Loss} = \text{Premium} - \max(0, K - S_T)
\end{align}
$
Where:
- $\text{Premium}$ = Premium received for the put option
![[Options Formula-3.png|500]]
## Explanation
1. **Call Option Buyer**:
- Profits if the stock price at expiration ($S_T$) is above the strike price ($K$).
- The profit is the difference between $S_T$ and $K$, minus the premium paid.
- If $S_T$ is less than or equal to $K$, the option expires worthless, and the loss is the premium paid.
2. **Call Option Seller**:
- Profits if the stock price at expiration ($S_T$) is less than or equal to the strike price ($K$).
- The profit is the premium received minus any amount the stock price exceeds the strike price.
- If $S_T$ is above $K$, the seller incurs a loss equal to the difference between $S_T$ and $K$, minus the premium received.
3. **Put Option Buyer**:
- Profits if the stock price at expiration ($S_T$) is below the strike price ($K$).
- The profit is the difference between $K$ and $S_T$, minus the premium paid.
- If $S_T$ is greater than or equal to $K$, the option expires worthless, and the loss is the premium paid.
4. **Put Option Seller**:
- Profits if the stock price at expiration ($S_T$) is greater than or equal to the strike price ($K$).
- The profit is the premium received minus any amount the strike price exceeds the stock price.
- If $S_T$ is below $K$, the seller incurs a loss equal to the difference between $K$ and $S_T$, minus the premium received.
These formulas provide a general framework for understanding the profit and loss scenarios for both buyers and sellers in options trading.
```python
import numpy as np
import matplotlib.pyplot as plt
# Parameters
S_T = np.linspace(50, 150, 500) # Stock price at expiration
K = 100 # Strike price
premium = 10 # Premium paid/received for the option
# Call Option
call_buyer_profit = np.maximum(0, S_T - K) - premium
call_seller_profit = premium - np.maximum(0, S_T - K)
# Put Option
put_buyer_profit = np.maximum(0, K - S_T) - premium
put_seller_profit = premium - np.maximum(0, K - S_T)
# Plotting Call Option Buyer
plt.figure(figsize=(10, 6))
plt.plot(S_T, call_buyer_profit, label='Call Buyer Profit/Loss', color='blue')
plt.axhline(0, color='black', lw=1)
plt.axvline(K, color='gray', linestyle='--', lw=1)
plt.title('Call Option Buyer Profit/Loss')
plt.xlabel('Stock Price at Expiration ($S_T$)')
plt.ylabel('Profit/Loss')
plt.legend()
plt.grid(True)
plt.show()
# Plotting Call Option Seller
plt.figure(figsize=(10, 6))
plt.plot(S_T, call_seller_profit, label='Call Seller Profit/Loss', color='red')
plt.axhline(0, color='black', lw=1)
plt.axvline(K, color='gray', linestyle='--', lw=1)
plt.title('Call Option Seller Profit/Loss')
plt.xlabel('Stock Price at Expiration ($S_T$)')
plt.ylabel('Profit/Loss')
plt.legend()
plt.grid(True)
plt.show()
# Plotting Put Option Buyer
plt.figure(figsize=(10, 6))
plt.plot(S_T, put_buyer_profit, label='Put Buyer Profit/Loss', color='blue')
plt.axhline(0, color='black', lw=1)
plt.axvline(K, color='gray', linestyle='--', lw=1)
plt.title('Put Option Buyer Profit/Loss')
plt.xlabel('Stock Price at Expiration ($S_T$)')
plt.ylabel('Profit/Loss')
plt.legend()
plt.grid(True)
plt.show()
# Plotting Put Option Seller
plt.figure(figsize=(10, 6))
plt.plot(S_T, put_seller_profit, label='Put Seller Profit/Loss', color='red')
plt.axhline(0, color='black', lw=1)
plt.axvline(K, color='gray', linestyle='--', lw=1)
plt.title('Put Option Seller Profit/Loss')
plt.xlabel('Stock Price at Expiration ($S_T$)')
plt.ylabel('Profit/Loss')
plt.legend()
plt.grid(True)
plt.show()
```