
Strategi pengembalian nilai rata-rata untuk mengisi jurang dinamik adalah sistem perdagangan kuantitatif yang khusus untuk mengisi jurang dalam sehari. Strategi ini didasarkan pada kecenderungan semula jadi pasaran untuk mengisi jurang tersebut setelah terdapat jurang yang ketara. Strategi ini berjalan pada jangka masa 3 minit, menggunakan corak harga tertentu, arah trend dan pengesahan jumlah perdagangan untuk menyaring peluang perdagangan yang berkemungkinan tinggi.
Logik utama strategi ini adalah untuk mengesan dan mengisi jurang:
Mekanisme pengesanan celahStrategi pertama adalah mengenal pasti jurang harga yang melebihi 0.5% dalam satu hari. Dengan membandingkan harga penutupan hari perdagangan sebelumnya dengan harga pembukaan hari itu, menentukan apakah jurang ke atas atau ke bawah.
Penegasan trend: Menggunakan purata bergerak indeks 50 dan 200 kitaran ((EMA) untuk menentukan trend pasaran semasa. Hanya pertimbangkan lebih banyak apabila EMA50 lebih besar daripada EMA200; hanya pertimbangkan kurang apabila EMA50 lebih kecil daripada EMA200.
Mod pengalihan tiga-tandukStrategi memerlukan tiga batang berturut-turut untuk membentuk mod berbalik. Untuk melakukan lebih banyak, anda perlu menutup[2] < close[1] close[Mod penurunan 1] > close.
Penapis jumlah transaksiPenapis jumlah transaksi pilihan memastikan perdagangan hanya dilakukan apabila jumlah transaksi melebihi purata 20 kitaran, meningkatkan kebolehpercayaan isyarat.
Penapis RSIUntuk perdagangan shorting, syarat tambahan RSI > 60 ditambah untuk memastikan pasaran berada dalam keadaan yang relatif over-buy, meningkatkan kualiti isyarat shorting.
Syarat kemasukan merangkumi semua faktor di atas:
Pengesanan ketidaksamaan pasaran yang jelasStrategi ini memberi tumpuan kepada jurang harga titanium yang tidak normal di pasaran, satu fenomena pasaran yang bermakna secara statistik dan memberikan kelebihan untuk membuat ramalan.
Mekanisme pengesahan bergandaStrategi ini mengurangkan kemungkinan isyarat palsu dengan menggabungkan celah, penapisan trend, pengesahan jumlah transaksi dan model harga.
Pengurusan risiko yang tepat: Menggunakan ATR untuk menetapkan sasaran stop loss dan profit, memastikan pengurusan risiko menyesuaikan diri dengan perubahan dalam turun naik pasaran. menetapkan jumlah stop loss maksimum dalam dolar, mengawal risiko setiap perdagangan dengan berkesan.
Kerugian mengikut dinamik: Apabila perdagangan mencapai tahap keuntungan 2 × ATR, anda boleh mengaktifkan stop loss, yang membolehkan perdagangan menguntungkan terus berjalan sambil mengekalkan sebahagian keuntungan.
Tetapan parameter yang fleksibelStrategi ini menawarkan beberapa parameter yang boleh disesuaikan (seperti saiz celah, ATR, dan jumlah kerugian maksimum) yang boleh dioptimumkan mengikut keutamaan risiko pedagang dan keadaan pasaran.
Perlindungan terhad kepada masa: Mengoptimumkan kecekapan penggunaan dana dengan menetapkan masa pegangan maksimum ((50 tiang), untuk mengelakkan perdagangan dari kerugian dalam jangka masa yang lama.
Sesuai dengan struktur mikro pasaranStrategi ini direka untuk menyesuaikan diri dengan struktur mikro pasaran, memberi tumpuan kepada dagangan dalam hari dan mengelakkan risiko semalaman.
Kadar kemenangan sederhanaStrategi: Kira-kira 46% peluang kemenangan bermakna sedikit lebih banyak perdagangan yang rugi daripada perdagangan yang menguntungkan. Walaupun keuntungan secara keseluruhan, mungkin memerlukan daya tahan mental yang baik untuk menjalani tempoh kerugian berturut-turut.
Ketergantungan pasaranStrategi ini secara jelas menyatakan bahawa ia hanya berlaku untuk carta 3 minit NASDAQ (US100) dan tidak diuji atau dioptimumkan pada aset lain atau jangka masa. Ini mengehadkan ruang lingkup strategi.
Kepekaan ParameterSeperti kebanyakan strategi kuantitatif, prestasi mungkin sangat sensitif terhadap pilihan parameter. Pengoptimuman berlebihan boleh menyebabkan prestasi yang baik dalam pengukuran kembali tetapi tidak baik dalam perdagangan cakera.
Frekuensi perdagangan terhadHanya menjalankan satu dagangan setiap hari akan mengehadkan potensi keuntungan, terutamanya pada hari-hari yang tidak menentu.
Risiko kekerapan celahStrategi bergantung kepada kewujudan jurang yang berskala tertentu, dan mungkin tidak ada isyarat perdagangan untuk masa yang lama semasa pasaran tenang.
Risiko Kemelesetan StrategikNamun, apabila lebih ramai peniaga menggunakan strategi yang sama, kesannya mungkin akan menjadi lemah dan menyebabkan strategi menjadi kurang berkesan.
Langkah-langkah pencegahan:
Meningkatkan penapis trendStrategi semasa menggunakan simpulan EMA yang bersilang sebagai penunjuk trend. Anda boleh mempertimbangkan untuk mengintegrasikan kaedah pengenalan trend yang lebih kompleks, seperti ADX (Indeks Arah Rata-rata) atau analisis trend pelbagai jangka masa, untuk meningkatkan kualiti penapisan.
Optimumkan masa kemasukanModel terbalik Samsung saat ini mungkin terlalu mudah. Pertimbangkan untuk menambah pengesahan teknikal seperti bentuk grafik, tahap sokongan / rintangan, atau analisis tingkah laku harga untuk mengoptimumkan masa masuk.
Tarikan Stop Loss dan Pendapatan DinamisWalaupun penggunaan ATR tetap adalah munasabah, penyesuaian dinamik berdasarkan turun naik pasaran atau masa dalam sehari boleh dilakukan. Sebagai contoh, meningkatkan ATR pada masa turun naik yang tinggi, atau menyesuaikan parameter risiko mengikut masa perdagangan.
Pembelajaran MesinDengan menggunakan model pembelajaran mesin, analisis ciri-ciri kejayaan untuk mengisi jurang sejarah (seperti saiz jurang, keadaan pasaran, masa, dan sebagainya) mungkin dapat meningkatkan prestasi strategi.
Meningkatkan frekuensi transaksiPertimbangkan untuk mengubah strategi untuk membenarkan beberapa dagangan dalam hari dagangan yang sama, terutamanya apabila satu dagangan semasa telah berakhir dan isyarat sah baru muncul. Ini mungkin meningkatkan pendapatan keseluruhan, tetapi perlu diuji dengan berhati-hati untuk memastikan tidak memperkenalkan perdagangan berlebihan.
Integrasi isyarat pasaran berkaitanPertimbangkan untuk mengintegrasikan isyarat pasaran yang berkaitan (seperti niaga hadapan, ETF atau indeks industri yang berkaitan) sebagai pengesahan. Ini mungkin memberikan kelebihan maklumat tambahan, terutamanya dalam menentukan sama ada jurang itu akan diisi.
Penapisan masa: Pasaran mungkin bertindak berbeza pada tempoh masa yang berbeza. Penambahan penapis berdasarkan masa dagangan mungkin meningkatkan prestasi strategi, seperti mengelakkan tempoh turun naik yang tinggi di mana pasaran dibuka dan ditutup.
Strategi Dynamic Gap Filling Mean Return adalah sistem dagangan harian yang dirancang dengan teliti yang memberi tumpuan kepada kecenderungan statistik untuk memanfaatkan kemerosotan celah pasaran. Strategi ini menggabungkan pengesanan celah, pengesahan trend, penapisan jumlah perdagangan dan pengenalan corak harga untuk mewujudkan kerangka keputusan perdagangan bertingkat.
Kelebihan utama strategi ini adalah peraturan kemasukan yang jelas, pengurusan risiko berasaskan ATR, dan mekanisme pengesahan berganda. Walaupun kadar kemenangan adalah sederhana (kira-kira 46%), strategi ini dapat menghasilkan keuntungan positif dalam retesting dengan pengaturan ganjaran risiko yang tepat (rasio ganjaran risiko 2: 1).
Strategi ini sangat sesuai untuk peniaga yang ingin memanfaatkan keanehan pasaran tertentu, terutamanya para pelabur yang berminat untuk berdagang dalam NASDAQ. Walau bagaimanapun, pengguna yang berpotensi harus berhati-hati dengan batasan strategi, termasuk ketergantungan pasaran dan kepekaan parameter.
Strategi ini mungkin dapat meningkatkan lagi prestasi dan kestabilan dengan melaksanakan langkah-langkah pengoptimuman yang disyorkan, khususnya meningkatkan penapis trend dan mengubah masa masuk ke lapangan. Dengan perubahan keadaan pasaran, penilaian semula dan penyesuaian parameter secara berkala akan menjadi kunci untuk mengekalkan kejayaan jangka panjang.
Akhirnya, strategi ini mewakili pendekatan perdagangan kuantitatif yang seimbang, menggabungkan analisis teknikal dan konsep statistik untuk menangkap corak tingkah laku tertentu pasaran dengan cara yang sistematik.
/*backtest
start: 2025-04-15 00:00:00
end: 2025-05-14 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Gap Fill Mean Reversion Strategy – NASDAQ 3-Minute", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// === INPUTS ===
gapPct = input.float(0.5, title="Minimum Gap (%)") / 100
useVolume = input.bool(true, title="Use Volume Filter")
atrMultTP = input.float(2.0, title="TP Multiplier (ATR)")
atrMultSL = input.float(1.0, title="SL Multiplier (ATR)")
trailStartATR = input.float(2.0, title="Trailing Trigger (ATR)")
trailOffsetATR = input.float(1.0, title="Trailing Offset (ATR)")
maxSLusd = input.float(100, title="Max Stop Loss (USD)")
maxBars = input.int(50, title="Max Bars in Trade")
// === INDICATORS ===
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
trendUp = ema50 > ema200
trendDown = ema50 < ema200
rsi = ta.rsi(close, 14)
rsiShortCond = rsi > 60
// === GAP DETECTION ===
prevClose = request.security(syminfo.tickerid, "D", close[1])
todayOpen = request.security(syminfo.tickerid, "D", open)
gapUp = todayOpen > prevClose * (1 + gapPct)
gapDown = todayOpen < prevClose * (1 - gapPct)
// === VOLUME FILTER ===
volumeOK = not useVolume or (volume > ta.sma(volume, 20))
// === 3-CANDLE REVERSAL CONFIRMATION ===
threeDown = close[2] > close[1] and close[1] > close
threeUp = close[2] < close[1] and close[1] < close
// === ENTRY CONDITIONS ===
longCond = gapDown and threeUp and volumeOK and trendUp
shortCond = gapUp and threeDown and volumeOK and trendDown and rsiShortCond
// === ATR AND CALCULATIONS ===
atr = ta.atr(14)
entryPrice = strategy.opentrades > 0 ? strategy.opentrades.entry_price(0) : na
inLong = strategy.position_size > 0
inShort = strategy.position_size < 0
// === TRAILING STOP CONDITIONS ===
trailTrigger = atr * trailStartATR
trailOffset = atr * trailOffsetATR
longTrailCond = inLong and close > entryPrice + trailTrigger
shortTrailCond = inShort and close < entryPrice - trailTrigger
// === STOP LOSS DISTANCE (fixed USD limit applied) ===
slDistance = math.min(atr * atrMultSL, maxSLusd / syminfo.pointvalue)
// === ENTRIES ===
if (longCond)
strategy.entry("Gap Long", strategy.long)
if (shortCond)
strategy.entry("Gap Short", strategy.short)
// === EXITS ===
// LONG
if (longTrailCond)
strategy.exit("Trail Long", from_entry="Gap Long", trail_points=trailOffset, trail_offset=trailOffset)
else if (inLong)
strategy.exit("SL/TP Long", from_entry="Gap Long", stop=entryPrice - slDistance, limit=entryPrice + atr * atrMultTP)
// SHORT
if (shortTrailCond)
strategy.exit("Trail Short", from_entry="Gap Short", trail_points=trailOffset, trail_offset=trailOffset)
else if (inShort)
strategy.exit("SL/TP Short", from_entry="Gap Short", stop=entryPrice + slDistance, limit=entryPrice - atr * atrMultTP)
// === MAXIMUM TRADE DURATION CONTROL ===
strategy.close("Gap Long", when=inLong and (bar_index - strategy.opentrades.entry_bar_index(0)) >= maxBars)
strategy.close("Gap Short", when=inShort and (bar_index - strategy.opentrades.entry_bar_index(0)) >= maxBars)
// === VISUALS ===
plotshape(longCond, title="Long Signal", location=location.belowbar, style=shape.triangleup, color=color.green)
plotshape(shortCond, title="Short Signal", location=location.abovebar, style=shape.triangledown, color=color.red)
plot(ema50, color=color.orange, title="EMA 50")
plot(ema200, color=color.blue, title="EMA 200")