




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 nearestthemoney calls and the two nearestthemoney 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 (20day): STEP 1 STEP 2 STEP 3 STEP 4 IMPLIED VOLATILITY: Black Model and Derivatives: The Black Model (for futures contracts) is a result of the BlackScholes 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.
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).
The calculated results will be found in the following variables:
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*.4361836A1*A1*.1201676+A1*A1*A1*.937298 A3 = 1.398423*A2*EXP(D1*D1/2) if D1 < 0 then A4 = 1A3 else A4 = A3 D2 = (LOG(PRICE/STRIKE)(VOL*VOL*DAYS/730))/(VOL*PART.SQR) B1 = 1/ (ABS(D2)*.33267+1) B2 = B1*.4361836B1*B1*.1201676+B1*B1*B1*.937298 B3 = 1.398423*B2*EXP(D2*D2/2) if D2 < 0 then B4 = 1B3 else B4 = B3 PREM.CALL = (T1*(PRICE*A4STRIKE*B4) RETURNCalculate 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*(1T3) PRICE*RATE*T1*(1T2))/365Calculate 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*.4361836A1*A1*.1201676+A1*A1*A1*.937298 A3 = 1.398423*A2*EXP(D1*D1/2) if D1 < 0 then A4 = 1A3 else A4 = A3 D2 = (LOG(PRICE/STRIKE)(VOL*VOL*DAYS/730))/(VOL*PART.SQR) B1 = 1/ (ABS(D2)*.33267+1) B2 = B1*.4361836B1*B1*.1201676+B1*B1*B1*.937298 B3 = 1.398423*B2*EXP(D2*D2/2) if D2 < 0 then B4 = 1B3 else B4 = B3 PREM.PUT = (T1*(PRICE*A4STRIKE*B4) RETURNCalculate 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*(1T3) PRICE*RATE*T1*(1T2))/365 

Copyright © 1934  2020 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 606066940 • USA Phone: 800.238.5814 or 312.554.8122 • Fax: 312.939.4135 • Email: cmdty@barchart.com 
Press Ctrl+D to bookmark this page  Set http://www.crbtrader.com as your Home Page 