For the

**volatility** value you can use the

*Historical_Volatility* field from the underlying asset's fundamental data. DTN's official description of this field is: “

*30-trading day volatility, calculated using Black-Scholes*”. Apparently, the actual calculation (which is updated once a day, after midnight) for options computes the volatility of day-to-day price change values of the last 30 trading days, using the last 31 daily close prices, as follows:

100*sqrt(252)*std(ln(close(i+1)/close(i)))

, rounded to the nearest 0.01. For futures, the calculation is similar but apparently based on 90 (not 30) values. When a contract is newly-listed, fewer values are used, with a minimum of 4 values.

You can also calculate the historic volatility yourself, using historic prices of the underlying asset (use IQFeed's historic bars query for this). In this case, you can use a different number of historic prices for the calculation, ignore outlier values etc., without relying on DTN's built-in opaque calculation.

As an alternative to using the historic volatility, you can also calculate the

*implied volatility* using Black-Scholes. This will typically be easier for European derivatives than for American/Asian/exotic ones.

In my IQML connector I enable the user to choose whether to use IQFeed's built-in

*Historical_Volatility* field, or a calculated Implied Volatility, or a fixed value.

For the

**risk-free rate**, you can either set a fixed rate (in the current financial situation, a simple value of 0 may be close enough for practical purposes), or use the current value of assets such as LIBOR/IRX.XO.

See

http://forums.iqfeed.net/index.cfm?page=topic&topicID=4387 for some detailed discussion of these matters.

Yair Altman

IQML - IQFeed-MATLAB connector

https://UndocumentedMatlab.com/IQML

*I am not a DTN employee; my post reflects my personal opinion*Edited by altmany on Feb 21, 2021 at 02:58 AM