Change in Open Interest for non commercial traders from legacy commitment of traders (COT) report. For the main symbol but also allows to override it. Also allows to include options in consideration.
study("Noncommercial Interest Change", shorttitle="Noncom Int Chg", precision=0) force_root = input("", title="Override Product") is_includeoptions = input(false, type=bool, title="Include Options") fxroot = ticker == "USDCAD" ? "CD" : ticker == "USDCAD" ? "CD" : ticker == "USDCHF" ? "SF" : ticker == "USDCZK" ? "CZ" : ticker == "USDHUF" ? "FR" : ticker == "USDILS" ? "IS" : ticker == "USDJPY" ? "JY" : ticker == "USDMXN" ? "MP" : ticker == "USDNOK" ? "UN" : ticker == "USDPLN" ? "PZ" : ticker == "USDRUB" ? "RU" : ticker == "USDSEK" ? "SE" : ticker == "USDZAR" ? "RA" : ticker == "EURUSD" ? "EC" : ticker == "AUDUSD" ? "AD" : ticker == "GBPUSD" ? "BP" : ticker == "NZDUSD" ? "NE" : ticker == "BRLUSD" ? "BR" : "" root = force_root == "" ? fxroot == "" ? syminfo.root : fxroot : force_root code = root + (is_includeoptions ? "_FO" : "_F") + "_L_CHG" is_inversed = ticker == "USDCAD" ? true : ticker == "USDCAD" ? true : ticker == "USDCHF" ? true : ticker == "USDCZK" ? true : ticker == "USDHUF" ? true : ticker == "USDILS" ? true : ticker == "USDJPY" ? true : ticker == "USDMXN" ? true : ticker == "USDNOK" ? true : ticker == "USDPLN" ? true : ticker == "USDRUB" ? true : ticker == "USDSEK" ? true : ticker == "USDZAR" ? true : false long_noncom = security("QUANDL:CFTC/"+code+"|1", "D", close) short_noncom = security("QUANDL:CFTC/"+code+"|2", "D", close) spread = security("QUANDL:CFTC/"+code+"|3", "D", close) long = is_inversed ? short_noncom : long_noncom short = is_inversed ? long_noncom : short_noncom plot(long, color = green, title="Long") plot(short, color = red, title="Short") plot(long-short, color = yellow, title="Net", style=histogram) plot(spread, color = purple, title="Spread", style=area) hline(0, color=yellow, linestyle=dashed)