Strategi Kesenjangan FVG Lanjutan Pro+

FVG MTF IIR Trend RISK
Tanggal Pembuatan: 2025-09-01 18:05:50 Akhirnya memodifikasi: 2025-09-01 18:05:50
menyalin: 0 Jumlah klik: 274
2
fokus pada
319
Pengikut

Strategi Kesenjangan FVG Lanjutan Pro+ Strategi Kesenjangan FVG Lanjutan Pro+

Bagaimana strategi ini bisa berhasil?

Apakah Anda tahu? 90% dari pedagang di pasar mengejar kehancuran, tetapi para pemain yang benar-benar hebat mencari “zona vakum harga”! Advanced FVG Strategy Pro + adalah senjata super khusus untuk menangkap celah misterius ini.

FVG (Fair Value Gap) secara sederhana adalah “daerah kosong” yang ditinggalkan saat harga melompat, seperti ketika Anda berjalan melintasi lubang air, suatu hari Anda harus kembali untuk “memulihkan lubang”.

Tiga Teknologi Hitam Utama

1. Analisis multi-frame waktu Tak lagi terbatas pada satu siklus! Strategi dapat dilakukan pada peta 5 menit, tetapi dengan sinyal FVG 1 jam, itu seperti melihat gunung jauh dengan teleskop, melihat detail dengan kaca pembesar, dan pandangan yang lebih luas!

Filter tren IIR
Ini bukan rata-rata bergerak biasa! Ini menggunakan IIR low-pass filter yang dirancang untuk mengidentifikasi arah tren dengan tepat. Bayangkan, ini seperti memasang “radar tren” pada perdagangan Anda dan hanya menyerang saat angin kencang!

3. Manajemen Risiko Cerdas Mendukung dua mode risiko, persentase dan jumlah tetap, dan perlindungan anti ledakan. Seperti mengendarai mobil dengan sabuk pengaman dan airbag ganda, membuat akun Anda lebih aman!

Skenario aplikasi pertempuran

Ini adalah situasi yang paling cocok untuk:

  • Mencari Kesempatan untuk Terobosan di Tengah Gempa
  • Peningkatan dalam tren
  • Sniper presisi di dekat titik-titik resistensi penting

Panduan untuk menghindari lubang:

  • Menunda penggunaan sebelum berita penting
  • Perhatian terhadap mata uang kecil yang sangat tidak likuid
  • Ingatlah untuk menyesuaikan parameter risiko dengan perubahan pasar

Mengapa Anda memilih strategi ini?

Strategi tradisional adalah terlalu sedikit sinyal yang kehilangan kesempatan, atau terlalu banyak sinyal yang terganggu oleh terobosan palsu. Strategi ini menggunakan mekanisme pemfilteran ganda untuk melakukan serangan yang tepat dengan “lebih baik tidak ada yang terbuang”!

Dan yang paling menarik, semua parameter dapat disesuaikan, seperti pengatur suara, sehingga Anda dapat “mengatur” ritme perdagangan yang paling sesuai sesuai dengan situasi pasar yang berbeda.

Ingat: strategi yang baik tidak membuat Anda berdagang setiap hari, tetapi membuat Anda berdagang ketika Anda paling yakin!

Kode 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)