// The script is not set to enter any trades, just solely to observe what is retrieved from the
// contractval and contractvol functions
#include <r.h>
#include <contract.c>
void run()
{
BarPeriod = 1440;
assetList("assetsIB");
assetHistory("SPY",FROM_YAHOO|UNADJUSTED);
asset("SPY");
if(is(INITRUN)){
initRQL();
dataLoad(1,"SPY_Options.t8",9);
}
Multiplier = 100;
contractUpdate("SPY",1,CALL|PUT);
int Type = PUT; // Then change to CALL to see difference
var delta_check = 0;
var strike_price = 0;
var con_value;
var current_IV;
var Dividend = 0.02;
var HistVolOV = VolatilityOV(20);
var Interest = 0.01*2; // original: var Interest = 0.01*yield();
strike_price = priceClose();
CONTRACT* dtest = contract(Type,30,strike_price);
con_value = contractVal(dtest,priceClose(),HistVolOV,Dividend,Interest,&delta_check);
if(!is(FIRSTINITRUN)) current_IV = contractVol(dtest,priceClose(),HistVolOV,con_value,Dividend,Interest);
watch("!S_$",strike_price,"C_V",con_value,"D",delta_check,"IV",current_IV);
}