Chiến lược đột phá trong ngày của Williams

INSIDE DAY BREAKOUT STOP LOSS FPO
Ngày tạo: 2025-10-11 16:55:28 sửa đổi lần cuối: 2025-10-11 16:55:28
sao chép: 0 Số nhấp chuột: 212
2
tập trung vào
319
Người theo dõi

Chiến lược đột phá trong ngày của Williams Chiến lược đột phá trong ngày của Williams

Ồ, chiến lược này đang làm gì vậy?

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.

Chính sách của 🔍 rất đơn giản

Hãy tưởng tượng rằng thị trường giống như một cái lò xo bị nén:

  • Hôm qua là một ngày “được bao bọc” (được bao bọc hoàn toàn bởi ngày hôm trước).
  • Ngày hôm trước là một ngày rất tuyệt vời (cảm giác rất phấn khích)
  • Giá mở cửa hôm nay thấp hơn ngưỡng kháng cự quan trọng

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!

Kiểm soát rủi ro: hai khóa an toà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.

Tại sao lại chọn ngày giao dịch cụ thể?

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!

  • Thứ Hai: Định hướng cho tuần mới
  • Thứ Năm: Ngày công bố số liệu quan trọng
  • Thứ Sáu: Ngày chuyển khoả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!

Ồ, ai là người thích hợp với chiến lược này?

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!

Mã nguồn chiến lược
/*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)