Previous Day Recap (May 14, 2025);
Correct on 285 being directionally important. Did not offer for shorts but made nice long bids into 370s.
No setup.
No setup.
Did clear OVNHS but no 370 bid. (very small and fail at vwap from the initial high)
This worked nicely joining as it accepted < 370.. right to 285s.
No setup. Did not clear PDH.
It did bid initially for about 12-14P. It lost and recaptured and that took it into 19 above.
Did not work.
No setup.
Ideas For Today;
NQ;
Main idea is watch 370 failures if make LH vs OVNH. Ideally hold for OVNL break. Seek 065.
Other idea same overall thesis but 285 fails / offers into 065.
I like interim bids vs OVNL back into 285s.
ES;
I am open to 73 bids back into 01.
01 offers into 49.
Levels;
//@version=5
//May 15, 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(20025, string(na))
f_add_level(20095, string(na))
f_add_level(20145, string(na))
f_add_level(20230, string(na))
f_add_level(20315, string(na))
f_add_level(20405, string(na))
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(21660, string(na))
f_add_level(21710, string(na))
f_add_level(21750, string(na))
if (ticker == 'ES' or ticker == 'MES') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(5599, string(na))
f_add_level(5616, string(na))
f_add_level(5632, string(na))
f_add_level(5652, string(na))
f_add_level(5673, string(na))
f_add_level(5688, string(na))
f_add_level(5707, string(na))
f_add_level(5726, string(na))
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))
if (ticker == 'RTY' or ticker == 'M2K') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(1646, string(na))
f_add_level(1714, string(na))
f_add_level(1760, string(na))
f_add_level(1798, string(na))
f_add_level(1816, string(na))
f_add_level(1834, string(na))
f_add_level(1848, string(na))
f_add_level(1883, string(na))
f_add_level(1910, string(na))
if (ticker == 'YM' or ticker == 'MYM') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(37635, string(na))
if (ticker == 'BTC' or ticker == 'MBT') and plotHLines and timeframe.isintraday and f_can_load_levels()
f_add_level(40165, 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)