
Strategi perdagangan multi-siklus bergerak rata-rata trend tikungan mundur adalah sistem perdagangan kuantitatif berdasarkan sederhana bergerak rata-rata ((SMA) yang menggabungkan empat elemen teras pengesahan trend, garis rata-rata kemerosotan, harga mundur dan berhenti bergelombang. Strategi ini mengesan peluang harga mundur di bawah persekitaran trend yang kuat dengan memantau rata-rata bergerak dalam tempoh yang berbeza ((9, 20, 50, 100 dan 200), dan menggunakan kedudukan berhenti yang tepat untuk menetapkan sejarah pergerakan.
Strategi ini adalah berdasarkan kepada sistem penyaringan bersyarat bertingkat:
Syarat pengesahan trend:
Syarat baris rata:
Syarat kemerosotan:
Syarat masuk semula:
Tetapan Stop Loss:
Apabila semua syarat yang sesuai dipenuhi pada masa yang sama, strategi akan mengeluarkan isyarat multihead atau kosong, dan menetapkan kedudukan hentian yang sesuai.
Penapisan trend sistematikDengan menggunakan pelbagai garis rata-rata dan keadaan kemerosotan, strategi ini menyaring kelemahan dan menyusun pasaran dengan berkesan, dan hanya berdagang dalam keadaan trend yang kuat, meningkatkan kualiti isyarat dengan ketara.
Masa kemasukan yang tepatSyarat langkah balik: memastikan titik masuk berisiko rendah selepas trend disahkan, mengelakkan mengejar tinggi dan rendah, meningkatkan kadar risiko dan pulangan setiap perdagangan.
Mekanisme Hentikan Kerosakan Dinamik: Berdasarkan pasaran yang sebenarnya turun naik set berhenti, daripada titik tetap berhenti lebih mampu menyesuaikan diri dengan keadaan pasaran yang berbeza dan persekitaran kadar turun naik.
Mekanisme pengesahan bergandaDengan kombinasi pelbagai syarat seperti persilangan garis rata-rata, kedudukan harga, arah kemiringan, dan sebagainya, kemungkinan isyarat palsu dikurangkan.
Mudah difahami dan dioptimumkan: Logik strategi jelas dan intuitif, parameter yang lebih sedikit dan masing-masing mempunyai peranan yang jelas, memudahkan penyesuaian optimum mengikut ciri-ciri pasaran yang berbeza.
Masalah kelewatan garis rata-rataGaris purata bergerak pada dasarnya adalah penunjuk yang ketinggalan, yang boleh menyebabkan kelewatan isyarat, kehilangan titik masuk terbaik atau menghasilkan kemerosotan ketinggalan dalam pasaran yang bergolak. Penyelesaian adalah untuk mempertimbangkan pengenalan penunjuk yang lebih sensitif seperti EMA atau VWMA sebagai tambahan.
Kembali ke KetidakpastianStrategi tidak dapat meramalkan kedalaman langkah balik, kadang-kadang harga mungkin kembali ke arah trend sebelum menyentuh garis purata 20 hari, menyebabkan peluang perdagangan yang terlewat. Anda boleh mempertimbangkan untuk menambah penghakiman zon dinamik berdasarkan ATR, dan bukan satu garis harga.
Risiko kerugian berterusanDalam pasaran yang bergolak, harga yang sering melintasi garis rata-rata boleh menyebabkan kerugian berturut-turut. Adalah disyorkan untuk menambah penapis kadar turun naik, menyesuaikan parameter strategi atau menangguhkan perdagangan dalam persekitaran yang bergelombang tinggi.
Kepekaan ParameterStrategi ini sensitif terhadap kitaran garis rata-rata dan parameter pengulangan, yang mungkin memerlukan parameter yang berbeza untuk pasaran dan jangka masa yang berbeza. Ia disyorkan untuk menentukan kombinasi parameter yang paling sesuai untuk jenis perdagangan tertentu melalui pengulangan.
Kekurangan pengesahan jumlah pesananStrategi semasa hanya berdasarkan data harga, kekurangan pengesahan jumlah transaksi boleh menyebabkan isyarat palsu dalam persekitaran kecairan yang rendah. Pertimbangkan untuk menambah syarat jumlah transaksi sebagai penapis tambahan.
Penyesuaian parameterAnda boleh mempertimbangkan untuk menyesuaikan secara automatik kitaran purata dan tempoh pengembalian cerun mengikut turun naik pasaran, supaya strategi dapat mengekalkan prestasi yang optimum dalam keadaan pasaran yang berbeza. Sebagai contoh, kitaran purata yang lebih pendek boleh digunakan dalam pasaran turun naik yang rendah, dan kitaran yang lebih lama dalam pasaran yang lebih turun naik.
Tambah syarat penapisanMemperkenalkan RSI (Relative Strength Index) atau Stochastic (Random Stochastic Index) sebagai penapis tambahan untuk mengesahkan isyarat langkah balik hanya di kawasan overbought/oversold dan mengurangkan isyarat palsu.
Pengurusan kedudukan dinamikMengubah saiz kedudukan berdasarkan kadar turun naik dan kekuatan trend, meningkatkan kedudukan dalam keadaan turun naik rendah dalam keadaan turun naik yang kuat, mengurangkan kedudukan dalam keadaan turun naik tinggi dalam keadaan turun naik yang lemah, mengoptimumkan kecekapan modal.
Pengesahan pelbagai kerangka masaMemperkenalkan mekanisme pengesahan trend pada jangka masa yang lebih tinggi untuk memastikan arah perdagangan selaras dengan trend yang lebih besar dan mengurangkan risiko perdagangan berlawanan arah.
Tetapan sasaran keuntunganStrategi semasa hanya mempunyai tetapan stop loss dan tidak ada sasaran keuntungan, boleh mempertimbangkan sasaran keuntungan dinamik berdasarkan ATR atau tetapan rintangan / sokongan utama, untuk mengoptimumkan nisbah ganjaran risiko.
Menambah klasifikasi keadaan pasaran: memperkenalkan penilaian keadaan pasaran ((kecenderungan, gegaran, penembusan), menggunakan tetapan parameter atau logik perdagangan yang berbeza untuk keadaan pasaran yang berbeza.
Strategi perdagangan multi-siklus bergerak adalah sistem perdagangan kuantitatif yang tersusun, logik dan jelas, yang secara efektif menangkap peluang masuk berisiko rendah di pasaran tren melalui kombinasi garis rata-rata, analisis kemiringan dan keadaan harga. Strategi ini sangat sesuai untuk persekitaran pasaran dengan trend jangka panjang yang jelas, dan menyediakan pedagang dengan cara yang sistematik untuk mengesan trend.
Walaupun terdapat risiko yang wujud, seperti kelewatan garis rata dan sensitiviti parameter, strategi ini dapat meningkatkan kestabilan dan kesesuaian strategi dengan arah pengoptimuman yang disyorkan, seperti parameter penyesuaian, keadaan penapisan berganda, dan pengurusan kedudukan dinamik. Akhirnya, strategi ini menyediakan kerangka asas yang boleh dipercayai untuk peniaga kuantitatif, yang dapat disesuaikan mengikut pilihan risiko individu dan ciri-ciri pasaran.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-07-05 10:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("SMA Pullback Strategy with Swing SL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === SMA Definitions ===
sma9 = ta.sma(close, 9)
sma20 = ta.sma(close, 20)
sma50 = ta.sma(close, 50)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
// === Inputs ===
slopeLookback = input.int(5, title="Slope Lookback")
swingLookback = input.int(10, title="Swing High/Low Period")
// === Slope Calculation ===
slope20 = sma20 - sma20[slopeLookback]
slope200 = sma200 - sma200[slopeLookback]
// === Long Conditions ===
trendUp = close > sma20 and close > sma200
smaOrderUp = sma20 > sma200
slopeUp = slope20 > 0 and slope200 > 0
pullbackUp = close[1] < sma20[1] and close > sma20
swingLow = ta.lowest(low, swingLookback)
longCondition = trendUp and smaOrderUp and slopeUp and pullbackUp
// === Short Conditions ===
trendDown = close < sma20 and close < sma200
smaOrderDown = sma20 < sma200
slopeDown = slope20 < 0 and slope200 < 0
pullbackDown = close[1] > sma20[1] and close < sma20
swingHigh = ta.highest(high, swingLookback)
shortCondition = trendDown and smaOrderDown and slopeDown and pullbackDown
// === Strategy Entries & Exits ===
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry="Long", stop=swingLow)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry="Short", stop=swingHigh)
// === Plotting SMAs ===
plot(sma9, title="SMA 9", color=color.gray)
plot(sma20, title="SMA 20", color=color.orange)
plot(sma50, title="SMA 50", color=color.purple)
plot(sma100, title="SMA 100", color=color.green)
plot(sma200, title="SMA 200", color=color.blue)
// === Plot Entry Signals ===
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)