General Lean;
I believe that as long as we are under 535-440 we should lean bearish and look for us to trade lower. A break of OVNL and PDL should take us near the previous week low and then I would look for consolidation.
Ideas For Today;
NQ;
285 failures to seek OVNL break.. especially if we do not clear OVNHs in the process. I would seek 990s.
I like 990 bids back into 125-065.
125 or 065 offers to seek into 785. I am especially interested in this if the bounce from 990 is very weak.
Consolidate < 065 and fail to touch either levels above I would join short on the 990 break to seek 785.
Clear and consolidate before 440 break.. I would try and bid into 535. Ie consolidate between 440-370s.
Clear OVNHs / Consolidate > 370s try and bid 370s for 440 clear into 535.
Previous Day Recap;
No bid at all. Failed breakout.
No setup. 665 would have been a better level to pick to short.
This worked into 370. There was no initial bid at 535. It broke and backtested 535 and continued down into 370.
No setup.
Levels;
//@version=5
//June 2, 2025.
//Economic Data.
indicator('NQ LEVELS', overlay=true, shorttitle='NQLEVELS')
i_trackprice = input.bool(false, 'Extend Line', 'Extends lines into future bars (dotted lines).')
i_showLevelNumber = input.bool(false, 'Append Level # (all levels)', tooltip = 'If no comment then Level # would be added to all comments')
var linecolor = color.rgb(76, 173, 253) // color.blue // color.rgb(250, 236, 157)
var linewidth = 2
var commentBoxColor = linecolor // color.black
var commentTextColor = color.white
var commentStyle = label.style_label_up
var ticker = syminfo.root
// Create series vars marking six SR prices for each pair
plotHLines = input(title='plotHLines', defval=true)
//timeperiod = input(title="timeframe", type=input.string)
type lvl
float v // value/price
string c // comment
var levels_array = array.new<lvl>()
var levels_loaded = false
var labels_array = array.new<label>()
f_get_value(p_array, p_index) =>
if p_index < array.size(p_array)
var item = array.get(p_array, p_index)
item.v
else
float(na)
f_get_level(p_index) => f_get_value(levels_array, p_index)
// f_add_level_no_comment(p_value) => array.push(levels_array, lvl.new(p_value, string(na)))
// f_add_level_with_comment(p_value, p_comment) => array.push(levels_array, lvl.new(p_value, p_comment))
f_add_level(p_value, p_comment) => array.push(levels_array, lvl.new(p_value, p_comment))
f_can_load_levels() => levels_loaded == false and array.size(levels_array) == 0
// if condition is true then the hline plots
// --------------------------------
if (ticker == 'NQ' or ticker == 'MNQ') and plotHLines and timeframe.isintraday and f_can_load_levels()
// if no comment/label then put 'string(na)' without the single quotes, e.g. string(na)
// if comment, type comment between double quotes "this is a comment".
// if comment with multiple lines use \n. Example: "This is Line 1\nThis is Line 2\nThis is Line 3."
f_add_level(20485, string(na))
f_add_level(20590, string(na))
f_add_level(20700, string(na))
f_add_level(20785, string(na))
f_add_level(20890, string(na))
f_add_level(20990, string(na))
f_add_level(21065, string(na))
f_add_level(21125, string(na))
f_add_level(21190, string(na))
f_add_level(21285, string(na))
f_add_level(21370, string(na))
f_add_level(21440, string(na))
f_add_level(21535, string(na))
f_add_level(21665, string(na))
f_add_level(21770, string(na))
f_add_level(21875, string(na))
f_add_level(21970, string(na))
f_add_level(22050, string(na))
if (ticker == 'ES' or ticker == 'MES') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(5748, string(na))
f_add_level(5770, string(na))
f_add_level(5790, string(na))
f_add_level(5812, string(na))
f_add_level(5826, string(na))
f_add_level(5849, string(na))
f_add_level(5873, string(na))
f_add_level(5901, string(na))
f_add_level(5919, string(na))
f_add_level(5935, string(na))
f_add_level(5965, string(na))
f_add_level(5953, string(na))
f_add_level(5982, string(na))
f_add_level(5995, string(na))
f_add_level(6013, string(na))
f_add_level(6024, string(na))
f_add_level(6033, string(na))
f_add_level(6046, string(na))
f_add_level(6060, string(na))
if (ticker == 'RTY' or ticker == 'M2K') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(1946, string(na))
f_add_level(1966, string(na))
f_add_level(1974, string(na))
f_add_level(1998, string(na))
f_add_level(2013, string(na))
f_add_level(2026, string(na))
f_add_level(2036, string(na))
f_add_level(2052, string(na))
f_add_level(2064, string(na))
f_add_level(2082, string(na))
f_add_level(2094, string(na))
f_add_level(2111, string(na))
f_add_level(2132, string(na))
f_add_level(2149, string(na))
f_add_level(2167, string(na))
f_add_level(2186, string(na))
f_add_level(2205, string(na))
f_add_level(2219, string(na))
f_add_level(2250, string(na))
f_add_level(2270, string(na))
if (ticker == 'YM' or ticker == 'MYM') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(41050, string(na))
f_add_level(41350, string(na))
f_add_level(41655, string(na))
f_add_level(41780, string(na))
f_add_level(41920, string(na))
f_add_level(42125, string(na))
f_add_level(42495, string(na))
f_add_level(42705, string(na))
f_add_level(42915, string(na))
f_add_level(43115, string(na))
f_add_level(43295, string(na))
f_add_level(43430, string(na))
f_add_level(43740, string(na))
f_add_level(44000, string(na))
f_add_level(44250, string(na))
f_add_level(44550, string(na))
f_add_level(44755, string(na))
f_add_level(44910, string(na))
f_add_level(45120, string(na))
f_add_level(45255, string(na))
if (ticker == 'BTC' or ticker == 'MBT') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(62750, string(na))
f_add_level(64280, string(na))
f_add_level(66455, string(na))
f_add_level(68665, string(na))
f_add_level(70880, string(na))
f_add_level(72520, string(na))
f_add_level(74320, string(na))
f_add_level(76165, string(na))
f_add_level(77535, string(na))
f_add_level(82605, string(na))
f_add_level(87055, string(na))
f_add_level(91980, string(na))
f_add_level(93700, string(na))
f_add_level(97650, string(na))
f_add_level(101460, string(na))
f_add_level(103650, string(na))
f_add_level(105060, string(na))
f_add_level(106990, string(na))
f_add_level(108890, string(na))
// isUp = close >= open
// Warning: Keep this line after the levels are added and before the plots.
levels_loaded := true
// Note: Level Index starts at 0, but label starts at 1.
plot(f_get_level(0 ), 'level.1',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(1 ), 'level.2',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(2 ), 'level.3',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(3 ), 'level.4',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(4 ), 'level.5',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(5 ), 'level.6',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(6 ), 'level.7',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(7 ), 'level.8',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(8 ), 'level.9',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(9 ), 'level.10',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(10), 'level.11',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(11), 'level.12',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(12), 'level.13',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(13), 'level.14',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(14), 'level.15',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(15), 'level.16',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(16), 'level.17',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(17), 'level.18',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(18), 'level.19',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(19), 'level.20',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
plot(f_get_level(20), 'level.21',linecolor, linewidth, plot.style_line, offset=0, trackprice=i_trackprice)
if barstate.islast
if array.size(levels_array) != 0
if array.size(labels_array) == 0
for [idx, item] in levels_array
if i_showLevelNumber or (not na(item.c) and str.length(item.c) != 0)
labels_array.push(label.new(bar_index, item.v, i_showLevelNumber ? 'level.' + str.tostring(idx+1) + (na(item.c) ? '' : '\n' + item.c) : item.c, color=commentBoxColor, style=commentStyle, textcolor=commentTextColor))
else
for [idx, item] in labels_array
label.set_x(item, bar_index)