def greenBars; def higherHighsLows; if (GetSymbol() == "/CL:XNYM" or GetSymbol() == "/ES:XCME" or GetSymbol() == "/NQ:XCME" or GetSymbol() == "/SI:XCEC" or GetSymbol() == "/UB:XCBT" or GetSymbol() == "/ZS:XCBT") then { greenBars = sum(close > open, 4) >= 4; higherHighsLows = high[0] > open[1] and low[0] > low[1] and high[1] > high[2] and low[1] > low[2] and high[2] > high[3] and low[2] > low[3]; } else { greenBars = 0; higherHighsLows = 0; } plot scan = greenBars and higherHighsLows; Backtesting: What I have done was applied the code shown above, without the GetSymbol() functions, to the Stock Hacker Scanner. Next I run a scan to search for Futures with 4 consecutive green candles, higher highs, and higher lows. For example, /UBZ20 appeared on the Stock Hacker Scanner as a result. I then quickly referred to the Futures dxfeed ticker for the /UB and appended the following to my dynamic watchlist: if (GetSymbol() == "/UB:XCBT" Even after appending this function to my dynamic watchlist, the Futures ticker /UB did not populate on my dynamic watchlist even though it appears, and continued to reappear on the Stock Hacker Scanner after pressing the Scan button multiple times. To confirm that /UB met the condition of my code, I added my code to a custom chart study, and it has been confirmed that /UB met the condition of my code because the custom study returned a value of 1. Please know I have tested this very code with Stocks, using the GetSymbol() function with only TSLA, ZM, AAPL and it works as expected; just not for Futures. I have also added alerts for changes to the dynamic watchlist and received none.