
Ini adalah strategi perdagangan yang didasarkan pada FVG, yang menggabungkan manajemen risiko dinamis dan target keuntungan tetap. Strategi ini berjalan pada siklus waktu 15 menit untuk menangkap peluang perdagangan potensial dengan mengidentifikasi celah harga di pasar. Menurut data retrospektif, strategi ini mencapai tingkat keuntungan bersih 284.40% dari November 2023 hingga Agustus 2024, dengan total 153 transaksi yang diselesaikan, dengan tingkat keuntungan 71.24% dan faktor keuntungan 2.422
Inti dari strategi ini adalah untuk mengidentifikasi kesenjangan nilai wajar dengan memantau hubungan harga antara tiga garis K berturut-turut.
Strategi ini telah menunjukkan efek perdagangan yang baik dengan menggabungkan teori gap nilai wajar dan metode manajemen risiko ilmiah. Tingginya tingkat keuntungan strategi dan faktor keuntungan yang stabil menunjukkan bahwa strategi ini memiliki nilai pertempuran nyata. Dengan arah optimasi yang disarankan, strategi ini masih memiliki ruang untuk peningkatan lebih lanjut.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Fair Value Gap Strategy with % SL and Fixed TP", overlay=true, initial_capital=500, default_qty_type=strategy.fixed, default_qty_value=1)
// Parameters
fvgThreshold = input.float(0.5, "FVG Threshold (%)", minval=0.1, step=0.1)
// Fixed take profit in pips
takeProfitPips = 50
// Function to convert pips to price
pipsToPriceChange(pips) =>
syminfo.mintick * pips * 10
// Function to detect Fair Value Gap
detectFVG(dir) =>
gap = 0.0
if dir > 0 // Bullish FVG
gap := low[2] - high[1]
else // Bearish FVG
gap := low[1] - high[2]
math.abs(gap) > (close * fvgThreshold / 100)
// Detect FVGs
bullishFVG = detectFVG(1)
bearishFVG = detectFVG(-1)
// Entry conditions
longCondition = bullishFVG
shortCondition = bearishFVG
// Calculate take profit level
longTakeProfit = strategy.position_avg_price + pipsToPriceChange(takeProfitPips)
shortTakeProfit = strategy.position_avg_price - pipsToPriceChange(takeProfitPips)
// Calculate stop loss amount (5% of capital)
stopLossAmount = strategy.equity * 0.01
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Set exit conditions
if (strategy.position_size > 0)
strategy.exit("Long TP", "Long", limit=longTakeProfit)
strategy.close("Long SL", when=strategy.openprofit < -stopLossAmount)
else if (strategy.position_size < 0)
strategy.exit("Short TP", "Short", limit=shortTakeProfit)
strategy.close("Short SL", when=strategy.openprofit < -stopLossAmount)
// Plot signals
plotshape(longCondition, "Buy Signal", location = location.belowbar, color = color.green, style = shape.triangleup, size = size.small)
plotshape(shortCondition, "Sell Signal", location = location.abovebar, color = color.red, style = shape.triangledown, size = size.small)