General Lean;
Consolidation OVN but < PWH. Seeking dips into 535 / 440 to try and get long for clear of PWH in the coming days.
Ideas For Today;
NQ;
665 break into 535-440.
Would attempt both 535 and 440 bids to see rally. Best case scenario for bulls is 535 bid and immediate recapture of 665. Do not want stiff rejection at 665 if 535 bids.
Tag of 370 and consolidation 440-370 would seek to try and join short for deeper sell into 285-190.
Clear 770 / OVNHS without 665 break can try and snag a long into 875/PWH.
Can try and sell 875/PWH to position for a pullback. Would want to see weak bid at 665 and accept back under it. Could aim for 535-440s.
Previous Day Recap;
Made new high. Backtested 535 and ran into 665-770. Main problem is it ran past 535 about 30P. The recapture was the safest spot to join.
This setup but had no followthru. Stiff rejection at PDH and it tried to offer 535s. It failed to take the previous low and recaptured.
No setup.
This general idea worked but just missed the 770 tag by 10P. Sent it right back to 665.
No setup.
Levels;
//@version=5
//June 4, 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(106280, string(na))
f_add_level(107520, string(na))
f_add_level(108890, string(na))
f_add_level(110830, string(na))
f_add_level(112545, 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)