# Option Volume/Open Interest Indicator
# NPTrading : modified script provided by DeusMecanicus in Post #21
# NPTrading : AsPrice function used to support stock price in 4 digits
# NPTrading : Concat((ExpYear-2000),"") + Concat((ExpMonth2),"") + Concat((ExpDOM),"") is the option expiry date in format YYMMDD. This Expiry date can be determined automatically (for monthly and weekly options both )but as of now it is manual modification.
# NPTrading : Strike price determined based on current close price but could be previous day close
# NPTrading : Script is work in progress, shared as requested for other to use and modify as per their need
# NPTrading : please read comments in the script
# MountainKing/MK : fixed option code expiry date incompatibility and it seems to be working fine now. Zeros will now appear in single digits of YYMMDD date, and i tried to account for all years/months/day outcomes. Please check for errors due to a lot of copy/paste i may have left a few c's as p's or callstrike as putstrike etc. Tickcount does not seem to be working at this time.
declare lower;
input aggregation = aggregationperiod.day;
def pricerange1 = if close(period=aggregation)[1]<=2 then 1 else 0; #.5
def pricerange2 = if close(period=aggregation)[1]>2 and close(period=aggregation)[1]<=10 then 1 else 0; #1
def pricerange3 = if close(period=aggregation)[1]>10 and close(period=aggregation)[1]<=25 then 1 else 0; #2.5
def pricerange4 = if close(period=aggregation)[1]>25 and close(period=aggregation)[1]<=50 then 1 else 0; #5
def pricerange5 = if close(period=aggregation)[1]>50 and close(period=aggregation)[1]<=500 then 1 else 0; #10
def pricerange6 = if close(period=aggregation)[1]>500 then 1 else 0; #25
def series = 1;
def RTHopen = open(period =aggregation);
def CurrentYear =GetYear();
def CurrentMonth = GetMonth();
def CurrentDOM = GetDayOfMonth(GetYYYYMMDD());
def Day1DOW1 = GetDayOfWeek((CurrentYear * 10000) + (CurrentMonth * 100) + 1); # First DOM is this DOW
def FirstFridayDOM1 = if Day1DOW1 < 6
then Day1DOW1
else if Day1DOW1 == 6
then 7
else 6;
def SecondFridayDOM = FirstFridayDOM1 + 7;
def ThirdFridayDOM = FirstFridayDOM1 + 14;
def FourthFridayDOM = FirstFridayDOM1 + 21;
def RollDOM = FirstFridayDOM1 + 21; #14; changed to 21 to pick up all Fridays of the current month for weekly options
def ExpMonth1 = if RollDOM > CurrentDOM
then CurrentMonth + series - 1
else CurrentMonth + series;
def ExpMonth2 = if ExpMonth1 > 12 #options month input
then ExpMonth1 - 12
else ExpMonth1;
def ExpYear = if ExpMonth1 > 12 #options year input
then CurrentYear + 1
else CurrentYear;
def Day1DOW = GetDayOfWeek(ExpYear * 10000 + ExpMonth2 * 100 + 1); #first friday expiry calc
def FirstFridayDOM = if Day1DOW < 6
then 6 - Day1DOW
else if Day1DOW == 6
then 7
else 6;
def ExpDOM = if currentDOM < FirstFridayDOM -1 #options code day of month input
then FirstFridayDOM1
else if between(currentDOM, FirstFridayDOM, SecondFridayDOM-1)
then SecondFridayDOM
else if between(currentDOM, SecondFridayDOM, ThirdFridayDOM-1)
then ThirdFridayDOM
else if between(currentDOM, ThirdFridayDOM, FourthFridayDOM-1)
then FourthFridayDOM
else FirstFridayDOM;
#MK BEGIN NEXT WEEKLY OPEX OPTIONS CODE CALL SYSTEM WITH YYMMDD FORMAT FIX --- MountainKing
#MK get correct double digit year for TOS option code format whether single or double digit.
#MK Year Exp Digit Format - MK
def ExpYY = ExpYear - 2000; # convert YYYY to 0-10 number YY or Y
def ExpY1 = if ExpYY > 9 # if year is double digit
then Round(ExpYY / 10,0) # use round to shear off first digit of YY (ex. 19, 1.9, 9)
else 0; # otherwise make first digit zero
def ExpY2 = if ExpYY > 9 # if year is double digit
then Round((ExpYY/10) - ExpY1,1) * 10 # isolate tenths of Y.Y as whole number # isolate tenths of Y.Y as whole number (ex. 1.9, 0.9, 9) -- fixed
else ExpYY; # otherwise return unprocessed single digit year
#MK Month Expiry Digit Format -MK
def ExpM1 = if ExpMonth2 > 9 # if double digit
then Round(ExpMonth2 / 10,0) # get month first digit
else 0; # else return 0
def ExpM2 = if ExpMonth2 > 9 # if double digit
then Round((ExpMonth2/10) - ExpM1,1) * 10 # isolate tenths of M.M as whole number -- fixed
else ExpMonth2; # otherwise return unprocessed single digit monthly
#MK Day Expiry Digit Format -MK
def ExpD1 = if ExpDOM > 9 # if double digit
then Round(ExpDOM / 10,0) # get day first digit
else 0; # else return 0
def ExpD2 = if ExpDOM > 9 # if double digit
then Round((ExpDOM/10) - ExpD1,1) * 10 # isolate tenths of M.M as whole number -- fixed
else ExpDOM; # otherwise return unprocessed single digit month
#MK - easier to see current expiry date label
AddLabel(1, GetSymbol() + " Exp:" + Concat((ExpM1),"") + Concat((ExpM2),"") + "-" + Concat((ExpD1),"") + Concat((ExpD2),"") + "-" + Concat((ExpY1),"") + Concat((ExpY2),""), CreateColor(135,135,135));
#def optionSeriesPrefix = Concat((ExpYear-2000),"") + Concat((ExpMonth2),"") + Concat((ExpDOM),"");
#NPTrading : manually update option expiry date in format YYMMDD
def strikeSpacing =
if pricerange6 then 25
else if pricerange5 then 10
else if pricerange4 then 5
else if pricerange3 then 2.5
else if pricerange2 then 1
else if pricerange1 then .5
else double.nan;
#{ default ".5", "1", "2.5", "5", "10", "25" }; #default 10 for large price stock
#NPTrading : Strike price determined based on current close price but could be previous day close
def PutStrike = Floor(close/10)*10;
def CallStrike = Floor(close/10)*10;
### Put Option Volume
#MK retooled with updated options code format inputs
#MK option code test label
addlabel(yes, ("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0)));
### putvols #
def putOptionVolume = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0));
def putOptionVolume1 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1));
def putOptionVolume2 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2));
def putOptionVolume3 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3));
def putOptionVolume4 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4));
def putOptionVolume5 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5));
def putOptionVolume6 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6));
def putOptionVolume7 =if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7));
def putOptionVolume8 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8));
def putOptionVolume9 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9));
def putOptionVolume10 =if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10));
def putOptionVolume11 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11));
def putOptionVolume12 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12));
def putOptionVolume13 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13));
def putOptionVolume14 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14));
def putOptionVolume15 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15));
def putOptionVolume16 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16));
def putOptionVolume17 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17));
def putOptionVolume18 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18));
def putOptionVolume19 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19));
def putOptionVolume20 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20));
###Call Option Volume
def callOptionVolume = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 0))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 0));
def callOptionVolume1 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 1))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 1));
def callOptionVolume2 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 2))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 2));
def callOptionVolume3 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 3))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 3));
def callOptionVolume4 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 4))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 4));
def callOptionVolume5 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 5))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 5));
def callOptionVolume6 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 6))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 6));
def callOptionVolume7 =if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 7))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 7));
def callOptionVolume8 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 8))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 8));
def callOptionVolume9 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 9))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 9));
def callOptionVolume10 =if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 10))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 10));
def callOptionVolume11 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 11))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 11));
def callOptionVolume12 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 12))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 12));
def callOptionVolume13 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 13))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 13));
def callOptionVolume14 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 14))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 14));
def callOptionVolume15 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 15))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 15));
def callOptionVolume16 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 16))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 16));
def callOptionVolume17 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 17))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 17));
def callOptionVolume18 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 18))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 18));
def callOptionVolume19 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 19))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 19));
def callOptionVolume20 = if IsNaN(volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 20))) then 0 else volume("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike - strikeSpacing * 20));
### Put Option ohlc4
def putOptionohlc4 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0));
def putOptionohlc41 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1));
def putOptionohlc42 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2));
def putOptionohlc43 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3));
def putOptionohlc44 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4));
def putOptionohlc45 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5));
def putOptionohlc46 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6));
def putOptionohlc47 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7));
def putOptionohlc48 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8));
def putOptionohlc49 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9));
def putOptionohlc410 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10));
def putOptionohlc411 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11));
def putOptionohlc412 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12));
def putOptionohlc413 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13));
def putOptionohlc414 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14));
def putOptionohlc415 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15));
def putOptionohlc416 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16));
def putOptionohlc417 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17));
def putOptionohlc418 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18));
def putOptionohlc419 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19));
def putOptionohlc420 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20));
####Call Option ohlc4
def callOptionohlc4 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 0))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 0));
def callOptionohlc41 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 1))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 1));
def callOptionohlc42 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 2))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 2));
def callOptionohlc43 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 3))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 3));
def callOptionohlc44 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 4))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 4));
def callOptionohlc45 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 5))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 5));
def callOptionohlc46 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 6))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 6));
def callOptionohlc47 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 7))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 7));
def callOptionohlc48 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 8))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 8));
def callOptionohlc49 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 9))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 9));
def callOptionohlc410 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 10))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 10));
def callOptionohlc411 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 11))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 11));
def callOptionohlc412 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 12))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 12));
def callOptionohlc413 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 13))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 13));
def callOptionohlc414 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 14))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 14));
def callOptionohlc415 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 15))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 15));
def callOptionohlc416 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 16))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 16));
def callOptionohlc417 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 17))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 17));
def callOptionohlc418 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 18))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 18));
def callOptionohlc419 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 19))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 19));
def callOptionohlc420 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 20))) then 0 else ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 20));
### Put Option tick_count
def putOptiontick_count = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1));
def putOptiontick_count1 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1));
def putOptiontick_count2 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2));
def putOptiontick_count3 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3));
def putOptiontick_count4 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4));
def putOptiontick_count5 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5));
def putOptiontick_count6 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6));
def putOptiontick_count7 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7));
def putOptiontick_count8 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8));
def putOptiontick_count9 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9));
def putOptiontick_count10 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10));
def putOptiontick_count11 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11));
def putOptiontick_count12 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12));
def putOptiontick_count13 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13));
def putOptiontick_count14 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14));
def putOptiontick_count15 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15));
def putOptiontick_count16 = if IsNaN(ohlc4("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16));
def putOptiontick_count17 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17));
def putOptiontick_count18 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18));
def putOptiontick_count19 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19));
def putOptiontick_count20 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20));
####Call Option tick_count
def callOptiontick_count = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpYear-2000),"") + Concat((ExpMonth2),"") + Concat((ExpDOM),"") + "C" + AsPrice(CallStrike + strikeSpacing * 0))) then 0 else tick_count("." + GetSymbol() + Concat((ExpYear-2000),"") + Concat((ExpMonth2),"") + Concat((ExpDOM),"") + "C" + AsPrice(CallStrike + strikeSpacing * 0));
def callOptiontick_count1 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 1))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 1));
def callOptiontick_count2 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 2))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 2));
def callOptiontick_count3 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 3))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 3));
def callOptiontick_count4 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 4))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 4));
def callOptiontick_count5 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 5))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 5));
def callOptiontick_count6 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 6))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 6));
def callOptiontick_count7 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 7))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 7));
def callOptiontick_count8 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 8))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 8));
def callOptiontick_count9 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 9))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 9));
def callOptiontick_count10 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 10))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 10));
def callOptiontick_count11 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 11))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 11));
def callOptiontick_count12 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 12))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 12));
def callOptiontick_count13 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 13))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 13));
def callOptiontick_count14 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 14))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 14));
def callOptiontick_count15 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 15))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 15));
def callOptiontick_count16 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 16))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 16));
def callOptiontick_count17 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 17))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 17));
def callOptiontick_count18 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 18))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 18));
def callOptiontick_count19 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 19))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 19));
def callOptiontick_count20 = if IsNaN(tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 20))) then 0 else tick_count("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike - strikeSpacing * 20));
def Callvoldef = if !isNan(close) then
((callOptionVolume * callOptionohlc4 * 100) + (callOptionVolume1 * callOptionohlc41 * 100) + (callOptionVolume2 * callOptionohlc42 * 100) + (callOptionVolume3 * callOptionohlc43 * 100) + (callOptionVolume4 * callOptionohlc44 * 100) + (callOptionVolume5 * callOptionohlc45 * 100) + (callOptionVolume6 * callOptionohlc46 * 100) + (callOptionVolume7 * callOptionohlc47 * 100) + (callOptionVolume8 * callOptionohlc48 * 100) + (callOptionVolume9 * callOptionohlc49 * 100) + (callOptionVolume10 * callOptionohlc410 * 100) + (callOptionVolume11 * callOptionohlc411 * 100) + (callOptionVolume12 * callOptionohlc412 * 100) + (callOptionVolume13 * callOptionohlc413 * 100) + (callOptionVolume14 * callOptionohlc414 * 100) + (callOptionVolume15 * callOptionohlc415 * 100) + (callOptionVolume16 * callOptionohlc416 * 100) + (callOptionVolume17 * callOptionohlc417 * 100) + (callOptionVolume18 * callOptionohlc418 * 100) + (callOptionVolume19 * callOptionohlc419 * 100) + (callOptionVolume20 * callOptionohlc420 * 100)) / 1000
else double.nan;
def Putvoldef = if !isNan(close) then
((putOptionVolume * putOptionohlc4 * 100) + (putOptionVolume1 * putOptionohlc41 * 100) + (putOptionVolume2 * putOptionohlc42 * 100) + (putOptionVolume3 * putOptionohlc43 * 100) + (putOptionVolume4 * putOptionohlc44 * 100) + (putOptionVolume5 * putOptionohlc45 * 100) + (putOptionVolume6 * putOptionohlc46 * 100) + (putOptionVolume7 * putOptionohlc47 * 100) + (putOptionVolume8 * putOptionohlc48 * 100) + (putOptionVolume9 * putOptionohlc49 * 100) + (putOptionVolume10 * putOptionohlc410 * 100) + (putOptionVolume11 * putOptionohlc411 * 100) + (putOptionVolume12 * putOptionohlc412 * 100) + (putOptionVolume13 * putOptionohlc413 * 100) + (putOptionVolume14 * putOptionohlc414 * 100) + (putOptionVolume15 * putOptionohlc415 * 100) + (putOptionVolume16 * putOptionohlc416 * 100) + (putOptionVolume17 * putOptionohlc417 * 100) + (putOptionVolume18 * putOptionohlc418 * 100) + (putOptionVolume19 * putOptionohlc419 * 100) + (putOptionVolume20 * putOptionohlc420 * 100)) / 1000
else double.nan;
plot Callvol = if Callvoldef>=0 then Callvoldef else double.nan;
plot Putvol = if Putvoldef>=0 then - Putvoldef else double.nan; #MK made put volume negative
#NPTrading : Rounding to whole number
AddLabel(yes, "Call Volume :" + AsPrice(Round(Callvol*1000,0)), CreateColor(0,120,0));
AddLabel(yes, "Put Volume: " + AsPrice(Round(Putvol*1000, 0)), CreateColor(120,0,0));
#plot Calltick = callOptiontick_count + callOptiontick_count1 + callOptiontick_count2 + callOptiontick_count3 + callOptiontick_count4 + callOptiontick_count5 + callOptiontick_count6 + callOptiontick_count7 + callOptiontick_count8 + callOptiontick_count9 + callOptiontick_count10 + callOptiontick_count11 + callOptiontick_count12 + callOptiontick_count13 + callOptiontick_count14 + callOptiontick_count15 + callOptiontick_count16 + callOptiontick_count17 + callOptiontick_count18 + callOptiontick_count19 + callOptiontick_count20;
#plot Puttick = putOptiontick_count + putOptiontick_count1 + putOptiontick_count2 + putOptiontick_count3 + putOptiontick_count4 + putOptiontick_count5 + putOptiontick_count6 + putOptiontick_count7 + putOptiontick_count8 + putOptiontick_count9 + putOptiontick_count10 + putOptiontick_count11 + putOptiontick_count12 + putOptiontick_count13 + putOptiontick_count14 + putOptiontick_count15 + putOptiontick_count16 + putOptiontick_count17 + putOptiontick_count18 + putOptiontick_count19 + putOptiontick_count20;
#AddLabel(yes, "CallTick :" + Calltick, Color.PLUM);
#AddLabel(yes, "PutTick: " + Puttick, Color.YELLOW);
DefineGlobalColor("CallVolCloud",Color.dark_green);
DefineGlobalColor("PutVolCloud",Color.dark_Red);
Putvol.SetPaintingStrategy(PaintingStrategy.LINE);
Callvol.SetPaintingStrategy(PaintingStrategy.LINE);
Putvol.SetDefaultColor(GlobalColor("PutVolCloud"));
Callvol.SetDefaultColor(GlobalColor("CallVolCloud"));
plot ZeroLine = 0;
ZeroLine.SetDefaultColor(Color.yellow);
#Diff Cloud ?
#addCloud(Callvol, putvol, GlobalColor("CallVolCloud"), GlobalColor("PutVolCloud"));
#AddCloud(Callvol, Putvol, GlobalColor("CallVolCloud"), GlobalColor("PutVolCloud"));
#individual Cloud ?
AddCloud(Callvol, ZeroLine, GlobalColor("CallVolCloud"), GlobalColor("PutVolCloud"));
AddCloud(Zeroline, putvol, GlobalColor("PutVolCloud"), GlobalColor("CallVolCloud"));
#hull moving averages of putvol and callvol
plot putavg = hullmovingavg(putvol);
putavg.setdefaultcolor(color.orange);
putavg.setstyle(curve.medium_DASH);
plot callavg = hullmovingavg(callvol);
callavg.setdefaultcolor(color.light_green);
callavg.setstyle(curve.medium_DASH);
#MK -- nice little color gradient average
plot avg = average(callvol + putvol);
def colornormlength = 14;
avg.setlineweight(3);
avg.definecolor("Default", Color.yellow);
avg.definecolor("Highest", Color.GREEN);
avg.DefineColor("Lowest", Color.RED);
avg.AssignNormGradientColor(colorNormLength,avg.Color("Lowest"), avg.Color("Highest"));
AddCloud(avg, ZeroLine, color.green, color.red);
#NPTrading : Using PaintingStrategy.LINE_VS_SQUARES for visiblitity
#Puttick.SetPaintingStrategy(PaintingStrategy.LINE_VS_SQUARES);
#Calltick.SetPaintingStrategy(PaintingStrategy.LINE_VS_SQUARES);
#Puttick.SetDefaultColor(Color.YELLOW);
#Calltick.SetDefaultColor(Color.PLUM);
#Puttick.Hide(); # added by me
#Calltick.Hide(); # added by me
#NPTrading : ??
#AddCloud(Calltick, Puttick, Color.plum, Color.light_RED);
#NPTrading : ??
#AddCloud(Calltick, ZeroLine, Color.CYAN, Color.RED);
#AddCloud(Puttick, ZeroLine, Color.RED, Color.CYAN);
###################################
#StudyName: Dilbert_BlockTrade_V1
#Description: Identify bars with high volume relative to the tick_count. Such bars could indicate a block trade, or a possible change in trend.
#Author: Dilbert
#Requested By:
# Ver Date Auth Change
# V1 090717 Dilbert 1st code cut
# TOS.mx Link:
# Trading Notes: Identify bars with high volume relative to the tick_count. Such bars could indicate a block trade, or a possible change in trend.