| Current Members Log-In | View Your Shopping Cart

 › CRB Home Page Data Products: › CRB DataCenter › Final Markets › More ... Publications: › CRB PriceCharts › CRB Encyclopedia of Commodity and Financial Charts › CRB Commodity Yearbook › More ... Fundamentals: › Crop Production Calendar Maps › Weekly Precipitation Maps (NOAA) › More ... CRB Index: › Index Quotes and Charts › Daily Closing Values › More ... B2B Products: › Publications › Data Products › More ...

 - Option Implied Volatility and Futures Historical Volatility

VOLATILITY:

Volatility is one of the most important factors when pricing options -- when volatility is high, options premiums are relatively expensive; when volatility is low, options premiums are relatively cheap. Volatility is a measure of the amount and speed of price changes, regardless of directions.

HISTORICAL VOLATILITY:

This is a measure of how volatile the underlying futures contracts has been for the 20 trading days prior to each observation date in the data series. It is an annualized standard deviation of price changes expressed as a percentage.

IMPLIED VOLATILITY:

This volatility is measured by entering the prices of options premiums into an options pricing model, then solving for volatility. The implied volatility value is based on the mean of the two nearest-the-money calls and the two nearest-the-money puts using the Black options pricing model. This value is the market's estimate of how volatile the underlying futures will be from the present until the option's expiration.

CALCULATIONS:
HISTORICAL VOLATILITY (20-day):

STEP 1
For the past 20 days, calculate: today's close / previous close (requires 21 days of data)

STEP 2
Calculate the natural log of the results calculated in STEP 1.

STEP 3
Calculate the sum of the natural logs over the past 20 days.
Calculate the sum of the squares of the natural logs over the past 20 days.

STEP 4
Divide the sum of the natural logs by 20.......................#1
Divide the sum of the squares of the natural logs by 20........#2
Calculate: RESULT 2 - the square of RESULT 1...................#3
Calculate the (square root of RESULT 3) x (sq. root of 252) x 100
This is the 20-day historic volatility for today.

IMPLIED VOLATILITY: Black Model and Derivatives:

The Black Model (for futures contracts) is a result of the Black-Scholes Model (for securities). Its values cannot be calculated exactly. The formula below, however, is a very good approximation. This formula has been streamlined to allow the fastest possible processing time. For example, at one point you will see variables multiplied together a1*a1*a1. The computer can process this formula faster than a1^3.

The first half of the program is for calculating call premiums and derivatives while the last half is for puts. Each half is broken into two parts. The first part calculates the theoretical premium only. The second part calculates the option derivatives (delta, gamma, theta, and vega). NOTE: to calculate the derivatives, you must first calculate the premium. However, you need not run the derivatives calculation if you don't need the answer.

Here is a list of variables that must be supplied to calculate any or all of the outputs.

Variable Description
Price The futures PRICE level.
Strike The desired STRIKE price level.
Rate The short term risk-free interest RATE.
Based on 3-Month T-Bill Yield (TB----Y)
Days The number of DAYS to expiration.
VOL The estimated VOLATILITY of the underlying futures contract until expiration.

To speed up processing. The following variables were added.

Note you can calculate these values before you enter these subroutines (if you do, then remove the lines that calculate these variables).

Variable Equivalent Description
PART.YEAR DAYS/365 portion of a year
PART.SQR PART.YEAR ^ 0.5 square root of PART.YEAR

The calculated results will be found in the following variables:

Variable Description
PREM.CALL The theoretical call option premium.
DELTA.CALL The DELTA factor (or hedge ratio; percent of option premium change for a small change in the underlying futures price).
GAMMA.CALL The GAMMA (amount of delta change for a one point futures move).
THETA.CALL The THETA (amount of premium lost due to one day passing by).
VEGA.CALL The VEGA (also called ZETA or KAPPA; amount of premium change for a one percent change in volatility).

Similarly, for put variables just substitute .PUT for .CALL.

NOTE: The following code cannot run by itself - They are only subroutines. You must write your own code that sets the values described above, then call these subroutines, then write more code to display the newly calculated values.

Calculate call option premium subroutine:

```100 PART.YEAR = DAYS/365 'remove these two lines if have
PART.SQR = PART.YEAR ^ 0.5 'already calculated these values.
T1 = EXP (-RATE*PART.YEAR)
D1 = (LOG(PRICE/STRIKE)+(VOL*VOL*DAYS/730))/(VOL*PART.SQR)
A1 = 1/(ABS(D1)*.33267+1)
A2 = A1*.4361836-A1*A1*.1201676+A1*A1*A1*.937298
A3 = 1-.398423*A2*EXP(-D1*D1/2)
if D1 < 0 then A4 = 1-A3 else A4 = A3
D2 = (LOG(PRICE/STRIKE)-(VOL*VOL*DAYS/730))/(VOL*PART.SQR)
B1 = 1/ (ABS(D2)*.33267+1)
B2 = B1*.4361836-B1*B1*.1201676+B1*B1*B1*.937298
B3 = 1-.398423*B2*EXP(-D2*D2/2)
if D2 < 0 then B4 = 1-B3 else B4 = B3
PREM.CALL = -(T1*(PRICE*A4-STRIKE*B4)
RETURN```
Calculate call option derivatives subroutine:
```110 T2 = .3989423*EXP(-D1*D1/2)
T3 = .3989423*EXP(-D2*D2/2)
DELTA.CALL = T1*A4
GAMMA.CALL = T1*T2/PRICE/VOL/PARTSQR
THETA.CALL = (T1*PRICE*VOL*T2/2/PART.SQR+STRIKE*RATE*T1*(1-T3)-
PRICE*RATE*T1*(1-T2))/365
VEGA.CALL = PRICE*T1*PART.SQR*T2/100
RETURN```
Calculate put option premium subroutine:
```200 PART.YEAR = DAYS/365 'remove these two lines if have
PART.SQR = PART.YEAR ^ 0.5 'already calculated these values.
T1 = EXP (-RATE*PART.YEAR)
D1 = (LOG(PRICE/STRIKE)+(VOL*VOL*DAYS/730))/(VOL*PART.SQR)
A1 = 1/(ABS(D1)*.33267+1)
A2 = A1*.4361836-A1*A1*.1201676+A1*A1*A1*.937298
A3 = 1-.398423*A2*EXP(-D1*D1/2)
if D1 < 0 then A4 = 1-A3 else A4 = A3
D2 = (LOG(PRICE/STRIKE)-(VOL*VOL*DAYS/730))/(VOL*PART.SQR)
B1 = 1/ (ABS(D2)*.33267+1)
B2 = B1*.4361836-B1*B1*.1201676+B1*B1*B1*.937298
B3 = 1-.398423*B2*EXP(-D2*D2/2)
if D2 < 0 then B4 = 1-B3 else B4 = B3
PREM.PUT = -(T1*(PRICE*A4-STRIKE*B4)
RETURN```
Calculate put option derivatives subroutine:
```210 T2 = .3989423*EXP(-D1*D1/2)
T3 = .3989423*EXP(-D2*D2/2)
DELTA.PUT = T1*A4
GAMMA.PUT = T1*T2/PRICE/VOL/PARTSQR
THETA.PUT = (T1*PRICE*VOL*T2/2/PART.SQR+STRIKE*RATE*T1*(1-T3)-
PRICE*RATE*T1*(1-T2))/365
VEGA.PUT = PRICE*T1*PART.SQR*T2/100
RETURN```

 Quotes & Charts | About CRB | Contact CRB | Support Pages | Sitemap
 Copyright © 1934 - 2017 by Commodity Research Bureau - CRB. All Rights Reserved. Market data provided by ddf and subject to user agreement and privacy policy. 209 W. Jackson Blvd. • Suite 200 • Chicago, Illinois 60606-6940 • USA Phone: 800.621.5271 or 312.554.8456 • Fax: 312.939.4135 • Email: info@crbtrader.com