void run()
{
StartDate = 20120101;
EndDate = 20181231;
BarPeriod = 1440;
// optimized parameters
var TRADE_ENTRY_DTE = 6*7; // days to expiration to enter trade
History = "*.t8";
assetList("AssetsOptions");
asset("RUT");
Multiplier = 100;
// get the underlying closing price
var p = priceClose();
// load today's contract chain
if(!contractUpdate(Asset,0,CALL|PUT)) return;
printf("\n%s Asset=%s, contractsFound=%i",strdate(YMD,ldate(ET,0)),Asset,NumContracts);
int i;
for (i=0; i < NumContracts; i++)
{
CONTRACT* C = &Contracts[i];
contract(C);
print(TO_CSV,"\nRecord=%i; Time=%s, Type=%i; Expiry=%i; Strike=%f; Bid=%f; Ask=%f; Vol=%f; Unl=%f; Delta=%f;",i,strdate(YMD,ldate(ET,0)),ContractType,ContractExpiry,ContractStrike,ContractBid,ContractAsk,ContractVol,ContractUnl,ContractVal);
}
CONTRACT* initCall = contractFind(CALL,TRADE_ENTRY_DTE,p,6);
}