TOS IV Percentile

In case anyone saw Tasty Trade's discussion on IV Percentile vs IV Rank with Jacob, you may want to get your hands on the Think or Swim (TOS) IV Percentile script. I have included the thinkScript code I developed below. If you do not know how to add a script to TOS, there are tons of resources online. Just Google "add study to TOS" and you'll find a plethora of examples and guides.


~\Desktop\LCM_PercentileSTUDY.ts.html
declare lower;

# Mark Laczynski
# 3.13.2014

# look at 1 year of history
input length = 252;
#clean up the IV data from TOS
rec clean_iv_r = if (isNaN(imp_volatility()) and !isNaN(close)) then clean_iv_r[1] else imp_volatility();

rec iv_today_r = GetValue(clean_iv_r, -length);


rec bar_number_of_todays_iv_projected_back =
    if IsNaN(bar_number_of_todays_iv_projected_back[1]) then 0
    else if (isNaN(iv_today_r)) then BarNumber()
    else bar_number_of_todays_iv_projected_back [1];


rec iv_today_projected_back_r =
    if(IsNAN(iv_today_projected_back_r[1])) then double.nan
    else if(!isNaN(iv_today_r)) then iv_today_r
    else if(isNaN(clean_iv_r)) then double.nan
    else iv_today_projected_back_r[1];

rec is_considered_for_counting_r =
    if(isNan(iv_today_projected_back_r)) then double.nan
    else if (BarNumber() - bar_number_of_todays_iv_projected_back != 0) then double.nan
    else 1;

rec count_is_under_iv_today_r =
    if if (isNan(close)) then double.nan
    else (isNan(is_considered_for_counting_r )) then 0
    else if (clean_iv_r < iv_today_projected_back_r and !isNan(is_considered_for_counting_r )) then count_is_under_iv_today_r[1] + 1
    else count_is_under_iv_today_r[1];


AddLabel(yes,concat("Percentile: ", round(count_is_under_iv_today_r * 100 / length,2)));



Comments

Popular posts from this blog

Introduction