Stratégie Williams Inside Day Breakout

INSIDE DAY BREAKOUT STOP LOSS FPO
Date de création: 2025-10-11 16:55:28 Dernière modification: 2025-10-11 16:55:28
Copier: 0 Nombre de clics: 212
2
Suivre
319
Abonnés

Stratégie Williams Inside Day Breakout Stratégie Williams Inside Day Breakout

Je ne sais pas ce qu’il y a dans cette stratégie.

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.

La logique de base de la stratégie 🔍 est très simple

Imaginez le marché comme un ressort compressé:

  • Hier, c’était un “jour de l’enveloppe” (complètement emballé par le jour précédent).
  • La veille, c’était une journée très ensoleillée.
  • Aujourd’hui, le cours d’ouverture est en dessous de la résistance critique.

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 contrôle des risques: un double verrouillage

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 !✨

Pourquoi choisir un jour particulier ?

La stratégie consiste à ne négocier que le lundi, le jeudi et le vendredi, et ce n’est pas un choix au hasard !

  • Lundi: Définition de la nouvelle semaine
  • Jeudi: date de sortie des données importantes
  • Vendredi: le jour du dépôt des fonds

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”.

Pour qui est-ce une stratégie ?

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 !

Code source de la stratégie
/*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)