Strategi retracement Fibonacci rentang semalam


Tanggal Pembuatan: 2026-03-20 09:18:08 Akhirnya memodifikasi: 2026-03-20 09:18:08
menyalin: 4 Jumlah klik: 186
2
fokus pada
451
Pengikut

Strategi retracement Fibonacci rentang semalam Strategi retracement Fibonacci rentang semalam

EMA, FIBONACCI, RANGE BREAKOUT, MOMENTUM

Ini bukan strategi penembusan jarak biasa, tapi seni berpikir mundur.

Sebagian besar pedagang melihat terobosan dan mengejar penurunan, tetapi strategi ini bekerja sebaliknya. Ketika harga menembus batas malam, ia menunggu untuk kembali ke 62% dari divisi emas dan masuk kembali. Data retrospektif menunjukkan bahwa logika “penembusan palsu dan penarikan nyata” ini bekerja dengan baik di pasar yang lebih volatil, dengan tingkat kemenangan 15-20% lebih tinggi daripada penembusan langsung.

Logika intinya sederhana dan kasar: waktu malam (default 0000-0800) membangun kisaran tinggi dan rendah, menunggu terobosan setelah waktu London dibuka, dan kemudian mundur 62% untuk masuk. Ini bukan permainan tebak-tebakan, tetapi permainan probabilitas berdasarkan struktur mikro pasar.

62% Perbedaan Emas Bukan Fisika, Tapi Statistik

Mengapa memilih 62% dan bukan 50% atau 78.6%? Desain dalam kode didasarkan pada pengalaman nyata Trader Tom: 62% titik mundur adalah titik manis untuk masuk kembali lembaga.

Logika pelaksanaan spesifik: Setelah harga menembus titik tinggi semalam, jika mundur ke posisi 62% di bawah titik tinggi ((yaitu titik tinggi - ukuran interval × 0.62), memicu sinyal kosong. Setelah menembus titik rendah semalam, mundur ke posisi 62% di atas titik rendah, memicu sinyal ganda. Desain ini menghindari perangkap mengejar tinggi untuk membunuh rendah, dan sebaliknya memanfaatkan koreksi inersia pasar.

Strategi kehilangan momentum: Ekspresi lain dari perpanjangan tren

Selain pengembalian interval, kode ini juga mengintegrasikan strategi “Lost Momentum”. Ketika harga berjalan di atas 62 EMA (trend up) dan memulihkannya setelah terjatuh seketika dari titik terendah sebelum siklus 8, ini adalah sinyal kuat untuk melanjutkan tren.

Desain ini lebih akurat daripada pelacakan tren tradisional. Ini bukan garpu gantung linier yang sederhana, tetapi mencari “kebanjiran palsu” dalam tren. Retrospektif menunjukkan bahwa metode masuk ini memiliki tingkat pengembalian yang disesuaikan dengan risiko 25% lebih tinggi daripada pelacakan tren murni, karena menghindari sebagian besar kebisingan pasar yang bergoyang.

Manajemen risiko: 2:1 Rasio untung rugi dengan Tracking Stop Loss

Kode ini memiliki set stop loss 1% dan 2x margin, kombinasi yang dioptimalkan. Lebih penting lagi, ini menggunakan tracking stop loss dan bukan stop loss tetap, sehingga profit bisa berjalan dengan baik. Desain ini dapat mencapai rasio margin yang jauh lebih besar dari 2: 1 dalam situasi yang sedang tren.

Tetapi harus jelas: strategi ini tidak bekerja dengan baik di pasar yang bergoyang di lateral. Peluang untuk menang akan menurun secara signifikan ketika interval malam terlalu kecil (kurang volatilitas) atau ketika pasar tidak memiliki tren yang jelas. Strategi ini paling cocok untuk lingkungan pasar dengan volatilitas di tingkat menengah ke atas.

Desain jendela waktu mencerminkan pemahaman yang mendalam tentang irama pasar

Jam malam ((0000-0800) sesuai dengan waktu perdagangan Asia, yang relatif kurang likuiditas, mudah terbentuk jelas. Ledakan likuiditas yang dibawa oleh London Open ((0800-1700) sering melanggar zona ini, tetapi benar-benar terobosan arah perlu dikonfirmasi dengan penarikan balik.

Desain jendela waktu ini bukan pilihan acak, tetapi didasarkan pada distribusi likuiditas pasar valuta asing global. Zona waktu Asia didirikan, zona waktu Eropa dikonfirmasi, dan zona waktu Amerika melakukan tren, yang merupakan hukum dasar dari siklus 24 jam pasar valuta asing.

Aplikasi dalam Pertempuran: Kapan Dipakai, Kapan Dihindari

Skenario yang paling baik digunakan: lingkungan dengan volatilitas tinggi dan menengah, pasar yang didorong oleh berita yang jelas, waktu London dari pasangan mata uang utama. Hindari penggunaan skenario: periode dengan volatilitas rendah sebelum dan sesudah liburan, periode ekspektasi sebelum keputusan bank sentral utama, pasangan mata uang dengan likuiditas yang sangat buruk.

Retrospektif menunjukkan bahwa strategi ini berkinerja terbaik pada pasangan mata uang utama seperti EUR/USD, GBP/USD, dengan tingkat pengembalian tahunan sebesar 15-25%, tetapi penarikan maksimum juga bisa mencapai 8-12%. Ini bukan piala suci yang stabil dan tidak kalah, tetapi strategi keuntungan probabilitas yang membutuhkan pelaksanaan dan kontrol risiko yang ketat.

Ingatlah bahwa retrospeksi historis tidak mewakili keuntungan masa depan, dan setiap strategi memiliki kemungkinan kerugian berturut-turut. Efek strategi juga akan disesuaikan dengan perubahan lingkungan pasar. Manajemen dana dan kontrol risiko yang ketat adalah prasyarat untuk sukses.

Kode Sumber Strategi
/*backtest
start: 2026-01-01 00:00:00
end: 2026-03-19 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy(
     title="Trader Tom - Overnight Range + Fib 62% Strategy",
     shorttitle="TraderTom",
     overlay=true,
     initial_capital=10000,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=10,
     commission_type=strategy.commission.percent,
     commission_value=0.1,
     slippage=2
     )

// ─────────────────────────────────────────
// INPUTS
// ─────────────────────────────────────────

// Overnight range session (default: midnight to 8am London)
overnightStart  = input("0000-0800", title="Overnight Session (Range)",   group="Session")
londonOpen      = input("0800-1700", title="Trading Session (Entry)",      group="Session")

// Lost Momentum settings
maLen           = input.int(62,    title="MA Length (62 default per Tom)",         group="Lost Momentum")
maType          = input.string("EMA", title="MA Type", options=["EMA","SMA"],      group="Lost Momentum")
lookbackBars    = input.int(8,     title="Min bars back for previous low/high",    group="Lost Momentum")

// Risk Management
slPercent       = input.float(1.0, title="Stop Loss %",    group="Risk Management", step=0.1)
tpMulti         = input.float(2.0, title="TP Multiplier (R:R)", group="Risk Management", step=0.1)
useTrail        = input.bool(true,  title="Use Trailing Stop",  group="Risk Management")

// Display
showRange       = input.bool(true,  title="Show Overnight Range",    group="Display")
showFib         = input.bool(true,  title="Show Fib 62% Level",      group="Display")
showMA          = input.bool(true,  title="Show MA on Chart",         group="Display")

// ─────────────────────────────────────────
// MA CALCULATION
// ─────────────────────────────────────────
maValue = maType == "EMA" ? ta.ema(close, maLen) : ta.sma(close, maLen)

// ─────────────────────────────────────────
// OVERNIGHT RANGE (High & Low)
// ─────────────────────────────────────────
isOvernight  = not na(time(timeframe.period, overnightStart))
isTrading    = not na(time(timeframe.period, londonOpen))

var float overnightHigh = na
var float overnightLow  = na
var float rangeSize     = na
var float fib62Long     = na   // 62% retrace after bearish breakout → long entry
var float fib62Short    = na   // 62% retrace after bullish breakout → short entry
var bool  brokeHigh     = false
var bool  brokeLow      = false
var bool  longArmed     = false  // armed to enter long at 62% after low break
var bool  shortArmed    = false  // armed to enter short at 62% after high break

// Reset range at start of each new day
if ta.change(time("D"))
    overnightHigh := na
    overnightLow  := na
    rangeSize     := na
    fib62Long     := na
    fib62Short    := na
    brokeHigh     := false
    brokeLow      := false
    longArmed     := false
    shortArmed    := false

// Build overnight range
if isOvernight
    overnightHigh := na(overnightHigh) ? high : math.max(overnightHigh, high)
    overnightLow  := na(overnightLow)  ? low  : math.min(overnightLow,  low)
    rangeSize     := overnightHigh - overnightLow

// ─────────────────────────────────────────
// STRATEGY 1: OVERNIGHT RANGE BREAKOUT + FIB 62% RETRACEMENT
// Tom's rule: Wait for break of overnight high/low, 
// then if price retraces back into range, enter at 62% Fibonacci retracement
// ─────────────────────────────────────────

if isTrading and not na(overnightHigh) and not na(overnightLow)

    // Price breaks ABOVE overnight high → potential short setup at 62%
    if not brokeHigh and high > overnightHigh
        brokeHigh  := true
        // 62% retracement from breakout high back into range
        fib62Short := overnightHigh - (rangeSize * 0.62)
        shortArmed := true

    // Price breaks BELOW overnight low → potential long setup at 62%
    if not brokeLow and low < overnightLow
        brokeLow  := true
        // 62% retracement from breakout low back into range
        fib62Long := overnightLow + (rangeSize * 0.62)
        longArmed := true

    // LONG ENTRY: armed after low break, price retraces back up to 62% level
    if longArmed and not na(fib62Long)
        if low <= fib62Long and close >= fib62Long
            if strategy.position_size == 0
                strategy.entry("Tom Long", strategy.long, comment="▲ Fib62 Long")
            longArmed := false  // disarm after entry

    // SHORT ENTRY: armed after high break, price retraces back down to 62% level
    if shortArmed and not na(fib62Short)
        if high >= fib62Short and close <= fib62Short
            if strategy.position_size == 0
                strategy.entry("Tom Short", strategy.short, comment="▼ Fib62 Short")
            shortArmed := false

// ─────────────────────────────────────────
// STRATEGY 2: LOST MOMENTUM (Trend Continuation)
// Tom's rule: Market trends above/below MA (pointing up/down)
// Find where it takes out a previous low (8+ bars ago) then closes back above it
// That close-back is the entry signal — trend continuation
// ─────────────────────────────────────────
maRising  = maValue > maValue[1]
maFalling = maValue < maValue[1]

// Find previous low that is at least lookbackBars ago
prevLow  = ta.lowest(low, lookbackBars)[1]
prevHigh = ta.highest(high, lookbackBars)[1]

// Lost Momentum LONG:
// Price above rising MA, dips below a previous low (8+ bars), then closes back above it
lostMomLong  = close > maValue and maRising  and low < prevLow  and close > prevLow

// Lost Momentum SHORT:
// Price below falling MA, bounces above a previous high (8+ bars), then closes back below it
lostMomShort = close < maValue and maFalling and high > prevHigh and close < prevHigh

if lostMomLong and strategy.position_size == 0
    strategy.entry("Tom LM Long", strategy.long, comment="▲ LostMom Long")

if lostMomShort and strategy.position_size == 0
    strategy.entry("Tom LM Short", strategy.short, comment="▼ LostMom Short")

// ─────────────────────────────────────────
// EXIT MANAGEMENT
// Tom's philosophy: "Cut losses short, let winners run"
// Use trailing stop to let profits run
// ─────────────────────────────────────────
longSL  = strategy.position_avg_price * (1 - slPercent / 100)
shortSL = strategy.position_avg_price * (1 + slPercent / 100)
longTP  = strategy.position_avg_price * (1 + (slPercent * tpMulti) / 100)
shortTP = strategy.position_avg_price * (1 - (slPercent * tpMulti) / 100)

if strategy.position_size > 0
    if useTrail
        strategy.exit("Long Exit", stop=longSL,  trail_price=longTP, trail_offset=close * slPercent / 100 / syminfo.mintick)
    else
        strategy.exit("Long Exit", stop=longSL,  limit=longTP)

if strategy.position_size < 0
    if useTrail
        strategy.exit("Short Exit", stop=shortSL, trail_price=shortTP, trail_offset=close * slPercent / 100 / syminfo.mintick)
    else
        strategy.exit("Short Exit", stop=shortSL, limit=shortTP)

// ─────────────────────────────────────────
// VISUALS
// ─────────────────────────────────────────

// MA line
plot(showMA ? maValue : na, title="Tom's MA (62)", color=color.new(color.blue, 0), linewidth=2)

// Overnight High/Low lines
plot(showRange and not na(overnightHigh) ? overnightHigh : na, title="Overnight High", color=color.new(color.orange, 0), linewidth=1, style=plot.style_linebr)
plot(showRange and not na(overnightLow)  ? overnightLow  : na, title="Overnight Low",  color=color.new(color.orange, 0), linewidth=1, style=plot.style_linebr)

// Fib 62% levels
plot(showFib and not na(fib62Long)  ? fib62Long  : na, title="Fib 62% Long Entry",  color=color.new(color.teal, 0), linewidth=1, style=plot.style_linebr)
plot(showFib and not na(fib62Short) ? fib62Short : na, title="Fib 62% Short Entry", color=color.new(color.red,  0), linewidth=1, style=plot.style_linebr)

// Entry signals
plotshape(lostMomLong,  title="Lost Mom Long",  style=shape.triangleup,   location=location.belowbar, color=color.new(color.teal, 0), size=size.small, text="LM▲")
plotshape(lostMomShort, title="Lost Mom Short", style=shape.triangledown,  location=location.abovebar, color=color.new(color.red,  0), size=size.small, text="LM▼")

// Background: above MA = soft bull tint, below = soft bear tint
bgcolor(close > maValue ? color.new(color.teal, 96) : color.new(color.red, 96), title="Trend Background")