
Bạn có biết không? Chiến lược này giống như chơi trò “chạy mèo trốn mèo” trên thị trường chứng khoán! Ồ, khi thị trường có “ngày đóng gói” (ngày biến động ngày hôm nay hoàn toàn bị đóng gói bởi ngày hôm qua), giống như thị trường đang chơi trò chơi lớn, chuẩn bị cho một vụ nổ lớn!
Chiến lược này được thiết kế để bắt kịp những khoảnh khắc đột phá, đặc biệt là vào những ngày giao dịch vàng như thứ Hai, thứ Năm và thứ Sáu.
Hãy tưởng tượng rằng thị trường giống như một cái lò xo bị nén:
Khi giá phá vỡ mức cao nhất trong 3 chu kỳ qua, chiến lược này sẽ được sử dụng ngay lập tức để làm nhiều hơn!
Khóa 1: Giữ lỗ Bạn có thể chọn điểm dừng lỗ hoặc phần trăm dừng lỗ, giống như đặt cho mình một “mức giới hạn lỗ” và đừng tham lam!
Khóa 2: FPO rút khỏi luật Đây là nơi thông minh nhất! Một ngày nào đó, khi mở sàn giao dịch, bạn sẽ kiếm được lợi nhuận và ngay lập tức thu được lợi nhuận.
Chiến lược này chỉ được áp dụng vào các ngày thứ Hai, thứ Năm và thứ Sáu, không phải là những ngày ngẫu nhiên!
Hãy tránh những ngày bình thường như thứ Ba và thứ Tư, hãy chọn những ngày có những câu chuyện!
Nếu bạn là một người thích giao dịch nhanh và không muốn mất nhiều thời gian, thì chiến lược này hoàn toàn phù hợp với bạn! Nó có các tín hiệu đầu vào rõ ràng, các quy tắc dừng lỗ rõ ràng và cơ chế rút tiền có lợi nhuận thông minh.
Hãy nhớ rằng: Thị trường giống như một cái bẩy, càng chặt càng cao!
/*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)