
Vous savez, c’est un peu comme jouer à cache-cache en bourse: quand le marché est en “journée d’emballage” (c’est-à-dire que les fluctuations d’aujourd’hui sont complètement emballées par celles d’hier), c’est comme si le marché faisait un grand tour, prêt à exploser !
Cette stratégie est conçue pour capturer les moments de rupture les plus difficiles, en particulier les “jours de l’or” qui se déroulent le lundi, le jeudi et le vendredi.
Imaginez le marché comme un ressort compressé:
Quand le prix atteint les sommets des 3 derniers cycles, comme si la résistance était libérée, la stratégie consiste à entrer immédiatement et à faire plus !
Le premier verrou: arrêt fixe Vous pouvez choisir entre une perte de points ou une perte de pourcentage, comme si vous vous fixiez un “limite de perte”, et ne soyez pas avide !
Deuxième verrouillage: la sortie de la FPO C’est l’endroit le plus intelligent ! Une fois que la bourse est ouverte, elle est rentable, elle est immédiatement rentable. C’est comme la sagesse du “bonjour et reçois” sans attendre que le marché se repent !✨
La stratégie consiste à ne négocier que le lundi, le jeudi et le vendredi, et ce n’est pas un choix au hasard !
Il y a des jours où il est facile d’écrire des histoires, mais il faut éviter les mardis et les mercredis qui sont “sans intérêt”.
Si vous êtes du genre à vouloir “aller vite” et ne pas vouloir être à la dérive toute la journée, cette stratégie est faite pour vous ! Elle a des signaux d’entrée clairs, des règles de stop-loss claires et un mécanisme de retrait intelligent pour gagner.
N’oubliez pas: le marché est comme un ressort, plus vous serrez, plus il rebondira !
/*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)