declare lower;
input aggregation = aggregationperiod.day;
input ShowAllLabels = no;
input Showput = no;
input Showput1 = no;
input Showput2 = no;
input Showput3 = no;
input Showput4 = no;
input Showput5 = no;
input Showput6 = no;
input Showput7 = no;
input Showput8 = no;
input Showput9 = no;
input Showput10 = no;
input Showput11 = no;
input Showput12 = no;
input Showput13 = no;
input Showput14 = no;
input Showput15 = no;
input Showput16 = no;
input Showput17 = no;
input Showput18 = no;
input Showput19 = no;
input Showput20 = no;
input Showcall = no;
input Showcall1 = no;
input Showcall2 = no;
input Showcall3 = no;
input Showcall4 = no;
input Showcall5 = no;
input Showcall6 = no;
input Showcall7 = no;
input Showcall8 = no;
input Showcall9 = no;
input Showcall10 = no;
input Showcall11 = no;
input Showcall12 = no;
input Showcall13 = no;
input Showcall14 = no;
input Showcall15 = no;
input Showcall16 = no;
input Showcall17 = no;
input Showcall18 = no;
input Showcall19 = no;
input Showcall20 = no;
def pricerange1 = if close(period=aggregation, symbol = "SPX")[1]<=2 then 1 else 0; #.5
def pricerange2 = if close(period=aggregation, symbol = "SPX")[1]>5 and close(period=aggregation)[1]<=150 then 1 else 0; #1
def pricerange3 = if close(period=aggregation, symbol = "SPX")[1]>150 and close(period=aggregation)[1]<=500 then 1 else 0; #2.5
def pricerange4 = if close(period=aggregation, symbol = "SPX")[1]>550 and close(period=aggregation)[1]<=4000 then 1 else 0; #5
#def pricerange5 = if getsymbol()== "SPY" or getsymbol()== "QQQ" then 1 else 0;
#def pricerange6 = if close(period=aggregation)[1]>500 then 1 else 0; #25
def series = 1;
def RTHopen = open(period =aggregation, symbol = "SPX");
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 6 - 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 absvalue(Rounddown(absvalue(ExpDOM) / 10,0)) # get day first digit
else 0; # else return 0
def ExpD2 = if ExpDOM > 9 # if double digit
then absvalue((Round((ExpDOM/10) - ExpD1,1) * 10)) # isolate tenths of M.M as whole number -- fixed
else absvalue(ExpDOM); # otherwise return unprocessed single digit month
#MK - easier to see current expiry date label
AddLabel(1, "SPX" + " 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
#if pricerange5 then 5
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 = Ceil(close(symbol = "SPX")/10)*10;
def CallStrike = Floor(close(symbol = "SPX")/10)*10;
### Put Option Volume
#MK retooled with updated options code format inputs
#MK option code test label
addlabel(No, ("." + GetSymbol() + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0)));
### putvols #
def putOptionVolume = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0));
def putOptionVolume1 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1));
def putOptionVolume2 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2));
def putOptionVolume3 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3));
def putOptionVolume4 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4));
def putOptionVolume5 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5));
def putOptionVolume6 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6));
def putOptionVolume7 =if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7));
def putOptionVolume8 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8));
def putOptionVolume9 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9));
def putOptionVolume10 =if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10));
def putOptionVolume11 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11));
def putOptionVolume12 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12));
def putOptionVolume13 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13));
def putOptionVolume14 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14));
def putOptionVolume15 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15));
def putOptionVolume16 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16));
def putOptionVolume17 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17));
def putOptionVolume18 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18));
def putOptionVolume19 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19));
def putOptionVolume20 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20))) then 0 else volume("." + "SPXW" + 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("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 0))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 0));
def callOptionVolume1 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 1))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 1));
def callOptionVolume2 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 2))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 2));
def callOptionVolume3 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 3))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 3));
def callOptionVolume4 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 4))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 4));
def callOptionVolume5 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 5))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 5));
def callOptionVolume6 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 6))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 6));
def callOptionVolume7 =if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 7))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 7));
def callOptionVolume8 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 8))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 8));
def callOptionVolume9 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 9))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 9));
def callOptionVolume10 =if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 10))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 10));
def callOptionVolume11 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 11))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 11));
def callOptionVolume12 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 12))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 12));
def callOptionVolume13 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 13))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 13));
def callOptionVolume14 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 14))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 14));
def callOptionVolume15 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 15))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 15));
def callOptionVolume16 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 16))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 16));
def callOptionVolume17 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 17))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 17));
def callOptionVolume18 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 18))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 18));
def callOptionVolume19 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 19))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 19));
def callOptionVolume20 = if IsNaN(volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 20))) then 0 else volume("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 20));
### putOIs #
def putOptionOI = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0));
def putOptionOI1 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1));
def putOptionOI2 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2));
def putOptionOI3 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3));
def putOptionOI4 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4));
def putOptionOI5 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5));
def putOptionOI6 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6));
def putOptionOI7 =if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7));
def putOptionOI8 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8));
def putOptionOI9 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9));
def putOptionOI10 =if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10));
def putOptionOI11 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11));
def putOptionOI12 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12));
def putOptionOI13 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13));
def putOptionOI14 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14));
def putOptionOI15 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15));
def putOptionOI16 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16));
def putOptionOI17 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17));
def putOptionOI18 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18));
def putOptionOI19 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19));
def putOptionOI20 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20));
###Call Option OI
def callOptionOI = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 0))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 0));
def callOptionOI1 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 1))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 1));
def callOptionOI2 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 2))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 2));
def callOptionOI3 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 3))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 3));
def callOptionOI4 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 4))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 4));
def callOptionOI5 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 5))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 5));
def callOptionOI6 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 6))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 6));
def callOptionOI7 =if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 7))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 7));
def callOptionOI8 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 8))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 8));
def callOptionOI9 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 9))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 9));
def callOptionOI10 =if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 10))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 10));
def callOptionOI11 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 11))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 11));
def callOptionOI12 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 12))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 12));
def callOptionOI13 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 13))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 13));
def callOptionOI14 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 14))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 14));
def callOptionOI15 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 15))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 15));
def callOptionOI16 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 16))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 16));
def callOptionOI17 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 17))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 17));
def callOptionOI18 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 18))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 18));
def callOptionOI19 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 19))) then 0 else open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 19));
def callOptionOI20 = if IsNaN(open_interest("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(CallStrike + strikeSpacing * 20))) then 0 else open_interest("." + "SPXW" + 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("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 0));
def putOptionohlc41 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 1));
def putOptionohlc42 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 2));
def putOptionohlc43 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3))) then 0 else ohlc4("." + “SPXW” + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 3));
def putOptionohlc44 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 4));
def putOptionohlc45 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 5));
def putOptionohlc46 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 6));
def putOptionohlc47 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 7));
def putOptionohlc48 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 8));
def putOptionohlc49 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 9));
def putOptionohlc410 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 10));
def putOptionohlc411 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 11));
def putOptionohlc412 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 12));
def putOptionohlc413 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 13));
def putOptionohlc414 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 14));
def putOptionohlc415 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 15));
def putOptionohlc416 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 16));
def putOptionohlc417 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 17));
def putOptionohlc418 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18))) then 0 else ohlc4("." + “SPXW” + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 18));
def putOptionohlc419 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 19));
def putOptionohlc420 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "P" + AsPrice(PutStrike - strikeSpacing * 20))) then 0 else ohlc4("." + "SPXW" + 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("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 0))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 0));
def callOptionohlc41 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 1))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 1));
def callOptionohlc42 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 2))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 2));
def callOptionohlc43 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 3))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 3));
def callOptionohlc44 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 4))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 4));
def callOptionohlc45 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 5))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 5));
def callOptionohlc46 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 6))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 6));
def callOptionohlc47 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 7))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 7));
def callOptionohlc48 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 8))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 8));
def callOptionohlc49 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 9))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 9));
def callOptionohlc410 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 10))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 10));
def callOptionohlc411 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 11))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 11));
def callOptionohlc412 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 12))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 12));
def callOptionohlc413 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 13))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 13));
def callOptionohlc414 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 14))) then 0 else ohlc4("." + “SPXW” + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 14));
def callOptionohlc415 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 15))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 15));
def callOptionohlc416 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 16))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 16));
def callOptionohlc417 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 17))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 17));
def callOptionohlc418 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 18))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 18));
def callOptionohlc419 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 19))) then 0 else ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 19));
def callOptionohlc420 = if IsNaN(ohlc4("." + "SPXW" + Concat((ExpY1),"") + Concat((ExpY2),"") + Concat((ExpM1),"") + Concat((ExpM2),"") + Concat((ExpD1),"") + Concat((ExpD2),"") + "C" + AsPrice(callStrike + strikeSpacing * 20))) then 0 else ohlc4("." + "SPXW" + 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;
def CallOIdef = if !isNan(close) then
((callOptionOI * callOptionohlc4 * 100) + (callOptionOI1 * callOptionohlc41 * 100) + (callOptionOI2 * callOptionohlc42 * 100) + (callOptionOI3 * callOptionohlc43 * 100) + (callOptionOI4 * callOptionohlc44 * 100) + (callOptionOI5 * callOptionohlc45 * 100) + (callOptionOI6 * callOptionohlc46 * 100) + (callOptionOI7 * callOptionohlc47 * 100) + (callOptionOI8 * callOptionohlc48 * 100) + (callOptionOI9 * callOptionohlc49 * 100) + (callOptionOI10 * callOptionohlc410 * 100) + (callOptionOI11 * callOptionohlc411 * 100) + (callOptionOI12 * callOptionohlc412 * 100) + (callOptionOI13 * callOptionohlc413 * 100) + (callOptionOI14 * callOptionohlc414 * 100) + (callOptionOI15 * callOptionohlc415 * 100) + (callOptionOI16 * callOptionohlc416 * 100) + (callOptionOI17 * callOptionohlc417 * 100) + (callOptionOI18 * callOptionohlc418 * 100) + (callOptionOI19 * callOptionohlc419 * 100) + (callOptionOI20 * callOptionohlc420 * 100)) / 1000
else double.nan;
def PutOIdef = if !isNan(close) then
((putOptionOI * putOptionohlc4 * 100) + (putOptionOI1 * putOptionohlc41 * 100) + (putOptionOI2 * putOptionohlc42 * 100) + (putOptionOI3 * putOptionohlc43 * 100) + (putOptionOI4 * putOptionohlc44 * 100) + (putOptionOI5 * putOptionohlc45 * 100) + (putOptionOI6 * putOptionohlc46 * 100) + (putOptionOI7 * putOptionohlc47 * 100) + (putOptionOI8 * putOptionohlc48 * 100) + (putOptionOI9 * putOptionohlc49 * 100) + (putOptionOI10 * putOptionohlc410 * 100) + (putOptionOI11 * putOptionohlc411 * 100) + (putOptionOI12 * putOptionohlc412 * 100) + (putOptionOI13 * putOptionohlc413 * 100) + (putOptionOI14 * putOptionohlc414 * 100) + (putOptionOI15 * putOptionohlc415 * 100) + (putOptionOI16 * putOptionohlc416 * 100) + (putOptionOI17 * putOptionohlc417 * 100) + (putOptionOI18 * putOptionohlc418 * 100) + (putOptionOI19 * putOptionohlc419 * 100) + (putOptionOI20 * putOptionohlc420 * 100)) / 1000
else double.nan;
def CallOI = if CallOIdef>=0 then CallOIdef else double.nan;
def PutOI = if PutOIdef>=0 then PutOIdef else double.nan; #MK made put volume negative
def Callvol = if Callvoldef>=0 then Callvoldef else double.nan;
def Putvol = if Putvoldef>=0 then Putvoldef else double.nan; #MK made put volume negative
def putratio = putvol/putoi;
def callratio = callvol/calloi;
def MS = (putratio/callratio);
def OIRatio = (putoi/calloi);
def VolRatio = (putvol/callvol);
#NPTrading : Rounding to whole number
#AddLabel(yes, "Total OI :" + (AsPrice(Round(calloi*1000,0))+ AsPrice(Round(putoi*1000, 0))) + " | " + AsPercent(((calloi+putoi)-(calloi[1]+putoi[1]))/(calloi[1]+putoi[1])),Color.GRAY) ;
#AddLabel(yes, "Total Vol :" + (AsPrice(Round(callvol*1000,0))+ AsPrice(Round(putvol*1000, 0))) + " | " + AsPercent(((callvol+putvol)-(callvol[1]+putvol[1]))/(callvol[1]+putvol[1])),Color.GRAY) ;
#AddLabel(yes, "Call OI :" + AsPrice(Round(calloi*1000,0)) + " | " + AsPercent((calloi-calloi[1])/calloi[1]),CreateColor(0,120,0));
#AddLabel(yes, "Put OI: " + AsPrice(Round(putoi*1000, 0)) + " | " + AsPercent((putoi-putoi[1])/calloi[1]), CreateColor(120,0,0));
#AddLabel(yes, "Call Volume :" + AsPrice(Round(Callvol*1000,0)) + " | " + AsPercent((callvol-callvol[1])/callvol[1]), CreateColor(0,120,0));
#AddLabel(yes, "Put Volume: " + AsPrice(Round(Putvol*1000, 0)) + " | " + AsPercent((putvol-putvol[1])/putvol[1]), CreateColor(120,0,0)) ;
AddLabel(yes, "MS:" + MS, color = Color.CYAN);
AddLabel(yes, "OI Ratio:" + OIRatio, color = Color.CYAN);
AddLabel(yes, "Vol Ratio:" + Volratio, color = Color.CYAN);
####Show Individual Put Volume Labels
AddLabel(Showput or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 0) + ": " + putOptionVolume + " | " + putoptionoi + " | " + Aspercent((putoptionoi-putoptionoi[1])/putoptionoi[1]));
AddLabel(Showput1 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 1) + ": " + putOptionVolume1 + " | " + putoptionoi1 + " | " + Aspercent((putoptionoi1-putoptionoi1[1])/putoptionoi1[1]));
AddLabel(Showput2 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 2) + ": " + putOptionVolume2 + " | " + putoptionoi2 + " | " + Aspercent((putoptionoi2-putoptionoi2[1])/putoptionoi2[1]));
AddLabel(Showput3 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 3) + ": " + putOptionVolume3 + " | " + putoptionoi3 + " | " + Aspercent((putoptionoi3-putoptionoi3[1])/putoptionoi3[1]));
AddLabel(Showput4 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 4) + ": " + putOptionVolume4 + " | " + putoptionoi4 + " | " + Aspercent((putoptionoi4-putoptionoi4[1])/putoptionoi4[1]));
AddLabel(Showput5 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 5) + ": " + putOptionVolume5 + " | " + putoptionoi5 + " | " + Aspercent((putoptionoi5-putoptionoi5[1])/putoptionoi5[1]));
AddLabel(Showput6 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 6) + ": " + putOptionVolume6 + " | " + putoptionoi6 + " | " + Aspercent((putoptionoi6-putoptionoi6[1])/putoptionoi6[1]));
AddLabel(Showput7 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 7) + ": " + putOptionVolume7 + " | " + putoptionoi7 + " | " + Aspercent((putoptionoi7-putoptionoi7[1])/putoptionoi7[1]));
AddLabel(Showput8 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 8) + ": " + putOptionVolume8 + " | " + putoptionoi8 + " | " + Aspercent((putoptionoi8-putoptionoi8[1])/putoptionoi8[1]));
AddLabel(Showput9 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 9) + ": " + putOptionVolume9 + " | " + putoptionoi9 + " | " + Aspercent((putoptionoi9-putoptionoi9[1])/putoptionoi9[1]));
AddLabel(Showput10 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 10) + ": " + putOptionVolume10 + " | " + putoptionoi10 + " | " + Aspercent((putoptionoi10-putoptionoi10[1])/putoptionoi10[1]));
AddLabel(Showput11 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 11) + ": " + putOptionVolume11 + " | " + putoptionoi11 + " | " + Aspercent((putoptionoi11-putoptionoi11[1])/putoptionoi11[1]));
AddLabel(Showput12 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 12) + ": " + putOptionVolume12 + " | " + putoptionoi12 + " | " + Aspercent((putoptionoi12-putoptionoi12[1])/putoptionoi12[1]));
AddLabel(Showput13 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 13) + ": " + putOptionVolume13 + " | " + putoptionoi13 + " | " + Aspercent((putoptionoi13-putoptionoi13[1])/putoptionoi13[1]));
AddLabel(Showput14 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 14) + ": " + putOptionVolume14 + " | " + putoptionoi14 + " | " + Aspercent((putoptionoi14-putoptionoi14[1])/putoptionoi14[1]));
AddLabel(Showput15 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 15) + ": " + putOptionVolume15 + " | " + putoptionoi15 + " | " + Aspercent((putoptionoi15-putoptionoi15[1])/putoptionoi15[1]));
AddLabel(Showput16 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 16) + ": " + putOptionVolume16 + " | " + putoptionoi16 + " | " + Aspercent((putoptionoi16-putoptionoi16[1])/putoptionoi16[1]));
AddLabel(Showput17 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 17) + ": " + putOptionVolume17 + " | " + putoptionoi17 + " | " + Aspercent((putoptionoi17-putoptionoi17[1])/putoptionoi17[1]));
AddLabel(Showput18 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 18) + ": " + putOptionVolume18 + " | " + putoptionoi18 + " | " + Aspercent((putoptionoi18-putoptionoi18[1])/putoptionoi18[1]));
AddLabel(Showput19 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 19) + ": " + putOptionVolume19 + " | " + putoptionoi19 + " | " + Aspercent((putoptionoi19-putoptionoi19[1])/putoptionoi19[1]));
AddLabel(Showput20 or ShowAllLabels, "P" + AsPrice(PutStrike - strikeSpacing * 20) + ": " + putOptionVolume20 + " | " + putoptionoi20 + " | " + Aspercent((putoptionoi20-putoptionoi20[1])/putoptionoi20[1]));
#Show Individual Call Volume Labels
AddLabel(Showcall or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 0) + ": " + callOptionVolume + " | " + calloptionoi + " | " + Aspercent((calloptionoi-calloptionoi[1])/calloptionoi[1]),Color.CYAN);
AddLabel(Showcall1 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 1) + ": " + callOptionVolume1 + " | " + calloptionoi1 + " | " + Aspercent((calloptionoi1-calloptionoi1[1])/calloptionoi1[1]),Color.CYAN);
AddLabel(Showcall2 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 2) + ": " + callOptionVolume2 + " | " + calloptionoi2 + " | " + Aspercent((calloptionoi2-calloptionoi2[1])/calloptionoi2[1]),Color.CYAN);
AddLabel(Showcall3 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 3) + ": " + callOptionVolume3 + " | " + calloptionoi3 + " | " + Aspercent((calloptionoi3-calloptionoi3[1])/calloptionoi3[1]),Color.CYAN);
AddLabel(Showcall4 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 4) + ": " + callOptionVolume4 + " | " + calloptionoi4 + " | " + Aspercent((calloptionoi4-calloptionoi4[1])/calloptionoi4[1]),Color.CYAN);
AddLabel(Showcall5 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 5) + ": " + callOptionVolume5 + " | " + calloptionoi5 + " | " + Aspercent((calloptionoi5-calloptionoi5[1])/calloptionoi5[1]),Color.CYAN);
AddLabel(Showcall6 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 6) + ": " + callOptionVolume6 + " | " + calloptionoi6 + " | " + Aspercent((calloptionoi6-calloptionoi6[1])/calloptionoi6[1]),Color.CYAN);
AddLabel(Showcall7 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 7) + ": " + callOptionVolume7 + " | " + calloptionoi7 + " | " + Aspercent((calloptionoi7-calloptionoi7[1])/calloptionoi7[1]),Color.CYAN);
AddLabel(Showcall8 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 8) + ": " + callOptionVolume8 + " | " + calloptionoi8 + " | " + Aspercent((calloptionoi8-calloptionoi8[1])/calloptionoi8[1]),Color.CYAN);
AddLabel(Showcall9 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 9) + ": " + callOptionVolume9 + " | " + calloptionoi9 + " | " + Aspercent((calloptionoi9-calloptionoi9[1])/calloptionoi9[1]),Color.CYAN);
AddLabel(Showcall10 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 10) + ": " + callOptionVolume10 + " | " + calloptionoi10 + " | " + Aspercent((calloptionoi10-calloptionoi10[1])/calloptionoi10[1]),Color.CYAN);
AddLabel(Showcall11 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 11) + ": " + callOptionVolume11 + " | " + calloptionoi11 + " | " + Aspercent((calloptionoi11-calloptionoi11[1])/calloptionoi11[1]),Color.CYAN);
AddLabel(Showcall12 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 12) + ": " + callOptionVolume12 + " | " + calloptionoi12 + " | " + Aspercent((calloptionoi12-calloptionoi12[1])/calloptionoi12[1]),Color.CYAN);
AddLabel(Showcall13 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 13) + ": " + callOptionVolume13 + " | " + calloptionoi13 + " | " + Aspercent((calloptionoi13-calloptionoi13[1])/calloptionoi13[1]),Color.CYAN);
AddLabel(Showcall14 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 14) + ": " + callOptionVolume14 + " | " + calloptionoi14 + " | " + Aspercent((calloptionoi14-calloptionoi14[1])/calloptionoi14[1]),Color.CYAN);
AddLabel(Showcall15 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 15) + ": " + callOptionVolume15 + " | " + calloptionoi15 + " | " + Aspercent((calloptionoi15-calloptionoi15[1])/calloptionoi15[1]),Color.CYAN);
AddLabel(Showcall16 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 16) + ": " + callOptionVolume16 + " | " + calloptionoi16 + " | " + Aspercent((calloptionoi16-calloptionoi16[1])/calloptionoi16[1]),Color.CYAN);
AddLabel(Showcall17 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 17) + ": " + callOptionVolume17 + " | " + calloptionoi17 + " | " + Aspercent((calloptionoi17-calloptionoi17[1])/calloptionoi17[1]),Color.CYAN);
AddLabel(Showcall18 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 18) + ": " + callOptionVolume18 + " | " + calloptionoi18 + " | " + Aspercent((calloptionoi18-calloptionoi18[1])/calloptionoi18[1]),Color.CYAN);
AddLabel(Showcall19 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 19) + ": " + callOptionVolume19 + " | " + calloptionoi19 + " | " + Aspercent((calloptionoi19-calloptionoi19[1])/calloptionoi19[1]),Color.CYAN);
AddLabel(Showcall20 or ShowAllLabels, "C" + AsPrice(CallStrike + strikeSpacing * 20) + ": " + callOptionVolume20 + " | " + calloptionoi20 + " | " + Aspercent((calloptionoi20-calloptionoi20[1])/calloptionoi20[1]),Color.CYAN);