Strategi Jurang FVG Lanjutan Pro+

FVG MTF IIR Trend RISK
Tarikh penciptaan: 2025-09-01 18:05:50 Akhirnya diubah suai: 2025-09-01 18:05:50
Salin: 0 Bilangan klik: 274
2
fokus pada
319
Pengikut

Strategi Jurang FVG Lanjutan Pro+ Strategi Jurang FVG Lanjutan Pro+

Bagaimana agaknya taktik ini?

Adakah anda tahu? 90% peniaga di pasaran sedang mengejar kejatuhan, tetapi peniaga yang benar-benar mahir mencari “zon harga kosong”! Advanced FVG Strategy Pro + adalah senjata super khusus untuk menangkap celah misteri ini.

FVG (Fair Value Gap) secara ringkasnya adalah “ruang kosong” yang ditinggalkan apabila harga melompat, seperti anda berjalan melintasi lubang air, anda akan kembali untuk “memulihkan lubang” suatu hari nanti.

Tiga Teknologi Hitam Utama

1. Analisis pelbagai kerangka masa Tidak lagi terhad kepada satu kitaran! Strategi boleh dilaksanakan pada peta 5 minit, tetapi dengan isyarat FVG 1 jam, ia seperti melihat gunung jauh dengan teleskop, melihat butiran dengan kaca pembesar, pandangan lebih luas!

Penapis Trend IIR
Ini bukan purata bergerak biasa! Ia menggunakan penapis rendah IIR yang direka untuk mengenal pasti arah trend.

3. Pengurusan Risiko Pintar Menyokong kedua-dua mod risiko peratusan dan jumlah tetap, dan perlindungan simpanan anti letupan. Seperti memandu dengan perlindungan tali pinggang keselamatan dan kedua-dua airbag, menjadikan akaun anda lebih selamat!

Senario penggunaan dalam peperangan

Ini adalah situasi yang paling sesuai untuk:

  • Mencari peluang dalam keadaan yang bergolak
  • Kembali dalam trend: titik masuk
  • Sniper tepat berhampiran tempat rintangan sokongan penting

Panduan untuk mengelakkan lubang:

  • Gantung semasa berita penting
  • Perhatian terhadap mata wang kecil yang kurang cair
  • Ingatlah untuk menyesuaikan parameter risiko mengikut turun naik pasaran

Kenapa anda memilih strategi ini?

Strategi tradisional adalah dengan terlalu sedikit isyarat yang terlepas peluang, atau terlalu banyak isyarat yang terganggu oleh penembusan palsu. Strategi ini menggunakan mekanisme penapisan berganda untuk membuat serangan tepat “lebih baik kekurangan”.

Dan yang paling menarik, semua parameter boleh disesuaikan, seperti pengatur suara, anda boleh “menyenaraikan” kadar dagangan yang paling sesuai dengan keadaan pasaran yang berbeza.

Ingatlah: Strategi yang baik tidak membolehkan anda berdagang setiap hari, tetapi membolehkan anda berdagang apabila anda paling yakin!

Kod sumber strategi
/*backtest
start: 2024-09-01 00:00:00
end: 2025-08-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Advanced FVG Strategy Pro+ (v6)", overlay=true,
  initial_capital=10000,
  default_qty_type=strategy.fixed,
  default_qty_value=1,
  commission_type=strategy.commission.percent,
  commission_value=0.05,
  calc_on_every_tick=true,
  process_orders_on_close=true)

// ---------------- Inputs ----------------
fvg_tf        = input.timeframe("", "FVG Timeframe (MTF)")
bodySens      = input.float(1.0, "FVG Body Sensitivity", step=0.1, minval=0.0)
mitigate_mid  = input.bool(true, "Mitigation on Midpoint")
rr_ratio      = input.float(2.0, "Risk/Reward Ratio", step=0.1)

risk_mode     = input.string("Percent", "Risk Mode", options=["Percent","Fixed $"])
risk_perc     = input.float(1.0, "Risk % (of Equity)", minval=0.1, maxval=10.0)
risk_fixed    = input.float(100.0, "Fixed $ Risk", minval=1.0)

useTrend      = input.bool(true, "Filter with FVG Trend")
rp            = input.float(10.0, "Trend Filter Ripple (dB)", minval=0.1, step=0.1)
fc            = input.float(0.1, "Trend Filter Cutoff (0..0.5)", minval=0.01, maxval=0.5, step=0.01)

extendLength  = input.int(10, "Extend Boxes (bars)", minval=0)

// ---------------- MTF candles ----------------
c1 = fvg_tf == "" ? close : request.security(syminfo.tickerid, fvg_tf, close,  lookahead = barmerge.lookahead_on)
o1 = fvg_tf == "" ? open  : request.security(syminfo.tickerid, fvg_tf, open,   lookahead = barmerge.lookahead_on)
h1 = fvg_tf == "" ? high  : request.security(syminfo.tickerid, fvg_tf, high,   lookahead = barmerge.lookahead_on)
l1 = fvg_tf == "" ? low   : request.security(syminfo.tickerid, fvg_tf, low,    lookahead = barmerge.lookahead_on)
h2 = fvg_tf == "" ? high[2] : request.security(syminfo.tickerid, fvg_tf, high[2], lookahead = barmerge.lookahead_on)
l2 = fvg_tf == "" ? low[2]  : request.security(syminfo.tickerid, fvg_tf, low[2],  lookahead = barmerge.lookahead_on)

// ---------------- FVG detection ----------------
float wick = math.abs(c1 - o1)
float avg_body = ta.sma(wick, 50)

bool bullFVG = (l1 > h2) and (c1 > h2) and (wick >= avg_body * bodySens)
bool bearFVG = (h1 < l2) and (c1 < l2) and (wick >= avg_body * bodySens)

// ---------------- Trend Filter (IIR low-pass) ----------------
float src = (h1 + l1) / 2.0
float epsilon = math.sqrt(math.pow(10.0, rp/10.0) - 1.0)
float d = math.sqrt(1.0 + epsilon * epsilon)
float c  = 1.0 / math.tan(math.pi * fc)
float norm = 1.0 / (1.0 + d * c + c * c)
float b0 = norm
float b1 = 2.0 * norm
float b2 = norm
float a1 = 2.0 * norm * (1.0 - c * c)
float a2 = norm * (1.0 - d * c + c * c)

var float trend = na
var float trend1 = na
var float trend2 = na
trend := bar_index < 2 ? src : (b0 * src + b1 * src[1] + b2 * src[2] - a1 * nz(trend1) - a2 * nz(trend2))
trend2 := trend1
trend1 := trend

bool trendUp   = trend > nz(trend[1])
bool trendDown = trend < nz(trend[1])

// ---------------- Strategy Conditions ----------------
bool longCond  = bullFVG and (not useTrend or trendUp)
bool shortCond = bearFVG and (not useTrend or trendDown)

// stop loss / take profit (based on MTF gap edges)
float longSL  = l1
float shortSL = h1
float longRisk = close - longSL
float shortRisk = shortSL - close
float longTP  = close + (close - longSL) * rr_ratio
float shortTP = close - (shortSL - close) * rr_ratio

// ---------------- Position sizing ----------------
float equity = strategy.equity
float riskCash = risk_mode == "Percent" ? (equity * risk_perc / 100.0) : risk_fixed
float longQty  = (longRisk > 0.0) ? (riskCash / longRisk) : na
float shortQty = (shortRisk > 0.0) ? (riskCash / shortRisk) : na

// safety cap: avoid ridiculously large position sizes (simple protective cap)
float maxQty = math.max(1.0, (equity / math.max(1e-8, close)) * 0.25)  // cap ~25% equity worth of base asset
if not na(longQty)
    longQty := math.min(longQty, maxQty)
if not na(shortQty)
    shortQty := math.min(shortQty, maxQty)

// small extra guard (do not trade if qty becomes extremely small or NaN)
bool canLong  = longCond and not na(longQty) and (longQty > 0.0)
bool canShort = shortCond and not na(shortQty) and (shortQty > 0.0)

// ---------------- Orders ----------------
if canLong
    strategy.entry("Long", strategy.long, qty = longQty)
    strategy.exit("Long TP/SL", "Long", stop = longSL, limit = longTP)

if canShort
    strategy.entry("Short", strategy.short, qty = shortQty)
    strategy.exit("Short TP/SL", "Short", stop = shortSL, limit = shortTP)

// ---------------- Visuals ----------------
plotshape(longCond, title="Bull FVG", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(shortCond, title="Bear FVG", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar, size=size.small)
plot(useTrend ? trend : na, title="FVG Trend", color=trendUp ? color.lime : trendDown ? color.red : color.gray, linewidth=2)