
You know what? This strategy is like playing βhide and seekβ in the stock market! π When the market shows an βinside dayβ (todayβs range is completely contained within yesterdayβs), itβs like the market is holding its breath, preparing for a big explosion!
Key point! This strategy specifically captures those βcanβt hold it anymoreβ breakout moments, especially on the βgolden trading daysβ of Monday, Thursday, and Friday.
Imagine the market as a compressed spring: - Yesterday was an βinside dayβ (completely contained within the day before) - The day before yesterday was a big bullish candle (bulls were excited) - Todayβs opening price must be below key resistance levels
When price breaks above the highest point of the past 3 periods, itβs like releasing a compressed spring - the strategy immediately goes long! π
First Lock: Fixed Stop Loss You can choose point-based or percentage-based stop loss, like setting a βloss limitβ for yourself - never be greedy!
Second Lock: FPO Exit Rule This is the smartest part! Once any day opens with profit, immediately take profits. Itβs like the wisdom of βquit while youβre aheadβ - donβt wait for the market to change its mind! β¨
The strategy only trades on Monday, Thursday, and Friday - this isnβt random! These days are typically:
- Monday: Direction setting for the new week
- Thursday: Important data release day
- Friday: Fund rebalancing day
Avoid the βbland daysβ of Tuesday and Wednesday, only strike when thereβs a story to tell!
If youβre the type of trader who likes βquick in, quick outβ and doesnβt want to watch screens all day, this strategy is tailor-made for you! It has clear entry signals, clean stop-loss rules, and smart profit-taking mechanisms.
Remember: The market is like a spring - the tighter itβs compressed, the higher it bounces! π―
/*backtest
start: 2025-01-01 00:00:00
end: 2025-10-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT","balance":500000}]
*/
//@version=5
strategy("Larry Williams Bonus Track Pattern", overlay=true)
//ββββββββββββββββββββββββββββββββββ
// Inputs
//ββββββββββββββββββββββββββββββββββ
useDayFilter = input.bool(true, "Trade only Mon/Thu/Fri")
sl_type = input.string("Points", "Stop Loss Type", options=["Points","Percent"])
sl_value = input.float(1.0, "Stop Loss Value (points or %)", step=0.1, minval=0.0)
debugPlot = input.bool(false, "Show Levels")
//ββββββββββββββββββββββββββββββββββ
// DAILY SERIES for SIGNAL
//ββββββββββββββββββββββββββββββββββ
hD = request.security(syminfo.tickerid, "D", high, lookahead=barmerge.lookahead_off)
lD = request.security(syminfo.tickerid, "D", low, lookahead=barmerge.lookahead_off)
oD = request.security(syminfo.tickerid, "D", open, lookahead=barmerge.lookahead_off)
cD = request.security(syminfo.tickerid, "D", close, lookahead=barmerge.lookahead_off)
// Inside bar (yesterday) and prior bar (two days ago) is bullish
inside_prev = hD[1] < hD[2] and lD[1] > lD[2]
prev_of_inside_bull = cD[2] > oD[2]
// Relevant highs: inside (t-1) + two prior bars (t-2, t-3)
inside_high = hD[1]
max_pre_inside_two = math.max(hD[2], hD[3])
entry_stop_price = math.max(inside_high, max_pre_inside_two) // highest of the last 3 bars
//ββββββββββββββββββββββββββββββββββ
// DAILY LOGIC (first bar of the day)
//ββββββββββββββββββββββββββββββββββ
isNewDay = ta.change(time("D")) // true on the FIRST bar of each day
dayOpen = open // real daily open
dow = dayofweek // day of week (works intraday)
passDay = not useDayFilter or (dow == dayofweek.monday or dow == dayofweek.thursday or dow == dayofweek.friday)
open_ok = dayOpen < inside_high and dayOpen < max_pre_inside_two
// Valid setup ONLY for the day immediately after the inside bar
longSetupToday = isNewDay and passDay and inside_prev and prev_of_inside_bull and open_ok
//ββββββββββββββββββββββββββββββββββ
// Helper function to create a βday identifierβ as a numeric value
//ββββββββββββββββββββββββββββββββββ
getDayId() =>
year(time) * 10000 + month(time) * 100 + dayofmonth(time)
//ββββββββββββββββββββββββββββββββββ
// Pending order management / exact entry the day after inside bar
//ββββββββββββββββββββββββββββββββββ
var float entryPrice = na
var int entryDayId = na
if isNewDay
// Cancel any pending stop from the previous day (TIF: 1 day)
strategy.cancel("LE")
// If today is the next day after inside and open is valid:
if longSetupToday and strategy.position_size == 0
if dayOpen >= entry_stop_price
// Gap above stop β enter at MARKET on todayβs open
strategy.entry("LE", strategy.long)
else
// No gap β place a STOP valid only for today
strategy.entry("LE", strategy.long, stop=entry_stop_price)
// Record the entry day when position opens
enteredNow = strategy.position_size > 0 and strategy.position_size[1] == 0
if enteredNow
entryPrice := strategy.position_avg_price
entryDayId := getDayId()
//ββββββββββββββββββββββββββββββββββ
// Fixed Stop Loss
//ββββββββββββββββββββββββββββββββββ
if strategy.position_size > 0
avg = strategy.position_avg_price
sl_price = sl_type == "Points" ? (avg - sl_value) : (avg * (1.0 - sl_value/100.0))
strategy.exit(id="SL", from_entry="LE", stop=sl_price)
else
strategy.cancel("SL")
//ββββββββββββββββββββββββββββββββββ
// FPO: Close on the FIRST profitable open AFTER entry day
// (never on the same day)
//ββββββββββββββββββββββββββββββββββ
if isNewDay and strategy.position_size > 0 and not na(entryDayId)
if getDayId() > entryDayId and dayOpen > strategy.position_avg_price
strategy.close("LE", comment="FPO")
//ββββββββββββββββββββββββββββββββββ
// Optional Plots
//ββββββββββββββββββββββββββββββββββ
plot(debugPlot ? inside_high : na, "Inside High (D-1)")
plot(debugPlot ? max_pre_inside_two : na, "High (D-2/D-3)")
plot(debugPlot ? entry_stop_price : na, "Entry (max of last 3 highs)", linewidth=2)