Strategi anjakan Fibonacci semalaman


Tarikh penciptaan: 2026-03-20 09:18:08 Akhirnya diubah suai: 2026-03-20 09:18:08
Salin: 4 Bilangan klik: 186
2
fokus pada
451
Pengikut

Strategi anjakan Fibonacci semalaman Strategi anjakan Fibonacci semalaman

EMA, FIBONACCI, RANGE BREAKOUT, MOMENTUM

Ini bukan strategi penembusan jarak biasa, tetapi seni berfikir secara terbalik.

Kebanyakan peniaga melihat penembusan dan mengejar kejatuhan, tetapi strategi ini sebaliknya. Apabila harga menembusi kawasan semalaman, ia menunggu penarikan balik ke 62% bahagian emas untuk masuk semula. Data retrospeksi menunjukkan bahawa logik “penembusan palsu dan penarikan balik sebenar” ini berfungsi dengan baik di pasaran yang lebih turun naik, dengan kadar kemenangan 15-20% lebih tinggi daripada penembusan langsung.

Logik terasnya mudah dan kasar: waktu malam ((0000-0800 secara lalai) menubuhkan jarak tinggi dan rendah, menunggu penembusan selepas waktu London dibuka, dan kemudian kembali ke belakang pada 62%. Ini bukan teka-teki, tetapi permainan kebarangkalian berdasarkan struktur mikro pasaran.

62% bahagian emas bukan sains, tetapi statistik

Mengapa memilih 62% dan bukannya 50% atau 78.6%? Reka bentuk dalam kod adalah berdasarkan pengalaman sebenar Trader Tom: 62% titik penarikan balik adalah titik manis untuk kemasukan semula institusi.

Logik pelaksanaan khusus: harga selepas menembusi tinggi semalaman, jika mundur ke kedudukan 62% di bawah tinggi ((iaitu tinggi - saiz julat × 0.62), mencetuskan isyarat kosong. Selepas menembusi rendah semalaman, mundur ke kedudukan 62% di atas rendah, mencetuskan banyak isyarat. Reka bentuk ini mengelakkan perangkap mengejar tinggi untuk membunuh rendah, dan sebaliknya memanfaatkan pembaikan inersia pasaran.

Strategi kehilangan momentum: satu lagi cara untuk meneruskan trend

Selain pengunduran selang, kod ini juga menggabungkan strategi “Lost Momentum”. Apabila harga berjalan di atas 62 EMA (dalam trend ke atas), pengunduran semula selepas terjatuh seketika dari paras rendah sebelum 8 kitaran adalah isyarat kuat untuk meneruskan trend. Sebaliknya.

Reka bentuk ini lebih tepat daripada trend-following tradisional. Ia bukan sekadar garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan garisan.

Pengurusan risiko: 2: 1 Rasio kerugian ditambah dengan Tracking Stop Loss

Kod ini menetapkan peratusan stop loss 1% dan peratusan kerugian 2 kali ganda, kombinasi parameter yang dioptimumkan. Lebih penting lagi, ia menggunakan tracking stop loss dan bukan stop loss tetap, supaya keuntungan dapat berjalan dengan baik. Reka bentuk ini dapat memperoleh peratusan kerugian yang jauh lebih besar daripada 2: 1 dalam keadaan yang sedang berkembang.

Tetapi perlu jelas: strategi ini tidak berfungsi dengan baik dalam pasaran yang bergolak di sebelah kiri. Peluang kemenangan akan menurun dengan ketara apabila jarak malam terlalu kecil (tetapi turun naik rendah) atau apabila pasaran tidak mempunyai trend yang jelas.

Reka bentuk tingkap masa menunjukkan pemahaman yang mendalam tentang irama pasaran

Masa malam ((0000-0800) sesuai dengan masa perdagangan Asia, yang mempunyai kecairan yang agak rendah dan mudah membentuk kawasan yang jelas. Kesan kecairan yang disebabkan oleh London terbuka ((0800-1700) sering memecahkan kawasan ini, tetapi penembusan arah yang benar perlu disahkan dengan penarikan balik.

Reka bentuk tetingkap masa ini bukan pilihan rawak, tetapi berdasarkan penyebaran kecairan pasaran forex global. Zon masa Asia ditubuhkan, masa Eropah mengesahkan terobosan, masa Amerika melaksanakan trend, yang merupakan undang-undang asas kitaran 24 jam pasaran forex.

Penggunaan dalam Perang: Bila Perlu dan Bila Tidak Perlu

Senario kegunaan terbaik: persekitaran turun naik yang sederhana atau tinggi, pasaran yang didorong oleh berita yang jelas, masa London untuk pasangan mata wang utama. Elakkan senario penggunaan: tempoh turun naik yang rendah sebelum dan selepas percutian, jangkaan sebelum keputusan utama bank pusat, pasangan mata wang yang sangat tidak cair.

Ulasan menunjukkan bahawa strategi ini berkinerja terbaik pada pasangan mata wang utama seperti EUR / USD, GBP / USD, dengan pulangan tahunan sebanyak 15-25%, tetapi penarikan balik maksimum juga mungkin mencapai 8-12%. Ini bukan cawan suci yang tidak kalah, tetapi strategi keunggulan kebarangkalian yang memerlukan pelaksanaan dan kawalan risiko yang ketat.

Ingat: Pemantauan semula sejarah tidak mewakili keuntungan masa depan, dan strategi apa pun mungkin mengalami kerugian berturut-turut. Kesan strategi akan disesuaikan dengan perubahan keadaan pasaran. Pengurusan dana yang ketat dan kawalan risiko adalah prasyarat untuk berjaya.

Kod 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")