
Strategi pengesanan trend bingkai masa berbilang berdasarkan EMA dan Supertrend adalah sistem perdagangan kuantitatif yang komprehensif yang menangkap trend pasaran dan menghasilkan isyarat perdagangan terutamanya melalui gabungan pelbagai purata bergerak dan petunjuk Supertrend. Strategi ini menggunakan purata bergerak indeks dari tiga tempoh yang berbeza (EMA) sebagai penilaian awal arah trend, sambil menggabungkan petunjuk Supertrend berdasarkan ATR (amplitude pergerakan sebenar) sebagai asas utama untuk masuk dan keluar.
Prinsip-prinsip utama strategi ini adalah berdasarkan mekanisme pengesahan yang berkolaborasi dari pelbagai lapisan penunjuk teknikal, yang terdiri daripada beberapa komponen utama:
Multiple EMA crossover sistemStrategi menggunakan purata bergerak indeks dari tiga kitaran yang berbeza (9, 15 dan 15) untuk menilai arah trend keseluruhan pasaran. Apabila EMA cepat (kitaran 9) berada di atas EMA perlahan (kitaran 15), ia dikenali sebagai tren naik; sebaliknya, ia adalah tren menurun.
Penunjuk SupertrendBerasaskan ATR (Rang Real Rata-rata) untuk mengira garis orbit atas dan bawah, apabila harga menembusi arah atas, ia akan berubah menjadi tren ganda, dan apabila ia menembusi arah bawah, ia akan berubah menjadi tren kosong. Strategi ini menggunakan ATR 10 kitaran dan parameter kelipatan 3.0
Mekanisme pengesahan trendStrategi ini menghasilkan isyarat perdagangan hanya apabila arah trend EMA selaras dengan arah trend Supertrend, yang mengurangkan kemungkinan menghasilkan isyarat palsu.
Logik penjanaan isyarat:
Pengurusan kedudukanStrategi: Menggunakan peratusan kepentingan akaun ((100%) sebagai saiz kedudukan lalai, yang menyediakan mekanisme penyesuaian kedudukan dinamik berdasarkan skala akaun.
Mekanisme pengesahan berganda: Dengan memerlukan EMA trend dan isyarat Supertrend yang selaras, kemungkinan isyarat perdagangan yang salah dikurangkan dengan ketara, meningkatkan kestabilan strategi.
Kesan trend-trackingStrategi ini sangat baik dalam menangkap trend jangka menengah dan panjang, terutamanya dalam pasaran yang berkekalan, dan mampu mengikuti trend dan memegangnya untuk jangka masa yang cukup lama untuk mendapatkan keuntungan yang besar.
Kebolehan beradaptasiIndikator Supertrend adalah berdasarkan pengiraan ATR dan dapat menyesuaikan diri secara automatik dengan turun naik pasaran, menjadikan strategi tetap berkesan dalam persekitaran turun naik yang berbeza.
Keseimbangan frekuensi daganganIa adalah keseimbangan yang baik antara kekerapan dagangan yang dicapai dengan tidak terlalu sering berdagang yang menyebabkan titik tergelincir dan yuran yang tinggi, dan tidak terlalu berhati-hati dan kehilangan peluang penting.
Kesan visualStrategi: menunjukkan keadaan trend semasa secara visual melalui warna yang dipenuhi kawasan, hijau menunjukkan trend menaik, merah menunjukkan trend menurun, meningkatkan keupayaan pedagang untuk melihat keadaan pasaran.
Kerjasama dengan carta RenkoStrategi ini sangat sesuai untuk digunakan bersama-sama dengan carta Renko untuk mengurangkan lagi kesan bunyi pasaran dan meningkatkan kualiti isyarat.
Risiko pembalikan arah aliranDalam pasaran yang bergolak, strategi mungkin mengalami banyak penembusan palsu, menyebabkan banyak masuk dan keluar dan menghasilkan kerugian berturut-turut. Untuk ini, pertimbangkan untuk memperkenalkan penapis kadar turun naik atau menambah syarat pengesahan untuk mengurangkan isyarat palsu.
Kepekaan ParameterPrestasi strategi lebih sensitif kepada parameter seperti EMA dan perkalian ATR, parameter optimum mungkin berubah-ubah dalam keadaan pasaran yang berbeza. Ia disyorkan untuk mencari kombinasi parameter yang kuat dalam keadaan pasaran yang berbeza dengan mengkaji semula.
Masalah ketinggalan zamanSebagai strategi untuk mengesan trend, terdapat beberapa ketinggalan isyarat, mungkin kehilangan sebahagian daripada perdagangan pada awal trend, atau membalikkan sebahagian keuntungan pada akhir trend. Anda boleh mempertimbangkan untuk menambah indikator jangka pendek yang lebih sensitif sebagai bantuan, mengoptimumkan masa masuk dan keluar.
Risiko kedudukanStrategi semasa menggunakan peratusan hak milik 100% yang tetap sebagai saiz kedudukan, yang mungkin membawa risiko yang terlalu besar dalam pasaran yang bergelombang tinggi. Ia disyorkan untuk memperkenalkan mekanisme pengurusan kedudukan dinamik, menyesuaikan saiz kedudukan mengikut turun naik pasaran dan kekuatan isyarat perdagangan.
Kekurangan mekanisme kawalan kerugian: Tiada tetapan stop loss yang jelas dalam kod, yang boleh menyebabkan kerugian yang lebih besar jika trend tiba-tiba berbalik. Syarat stop loss yang sesuai harus ditambahkan untuk mengehadkan kerugian maksimum dalam satu perdagangan.
Pilihan parameter kepelbagaianStrategi semasa menetapkan dua kitaran EMA sebagai nilai yang sama ((15), dan disyorkan untuk membezakan nilai yang berbeza, seperti 9, 15, 21, untuk memberikan penghakiman peringkat trend yang lebih jelas.
Tambah syarat penapisanAnda boleh mempertimbangkan untuk menambah syarat tambahan seperti pengesahan kuantiti, penapis kadar turun naik atau penilaian struktur pasaran untuk mengurangkan isyarat palsu. Sebagai contoh, perdagangan hanya dibenarkan jika turun naik pasaran berada dalam julat tertentu.
Optimumkan pengurusan kedudukanMemperkenalkan pengurusan kedudukan dinamik berasaskan ATR, mengurangkan kedudukan semasa turun naik tinggi dan meningkatkan kedudukan semasa turun naik rendah untuk mengimbangi risiko dan keuntungan.
Penambahan mekanisme penghentian dan penangguhan: Setting dynamic stop loss based on ATR, and stop condition based on risk-reward ratio, optimumkan pengurusan wang dan kawalan risiko.
Penapis masaMenganalisis prestasi strategi untuk tempoh masa yang berbeza, mengelakkan perdagangan yang tidak cekap atau berisiko tinggi, dan hanya berdagang dalam tempoh masa strategi yang terbaik.
Peningkatan logik penilaian trendStrategi semasa adalah lebih mudah untuk menilai trend, anda boleh mempertimbangkan untuk memasukkan kaedah penilaian trend yang lebih kompleks, seperti mempertimbangkan arah trend dalam tempoh yang lebih lama, atau menggunakan analisis struktur harga (paling tinggi dan rendah).
Spesifikasi penamaan optimum: Kod semasa menggunakan penamaan pembolehubah yang tidak standard (seperti Curly_Fries, Popeyes, dan lain-lain) dan perlu digantikan dengan penamaan profesional yang lebih deskriptif, meningkatkan kebolehbacaan kod dan pemeliharaan.
Strategi pemantauan trend bingkai masa berbilang yang berasaskan EMA dan Supertrend adalah sistem perdagangan kuantitatif yang direka dengan munasabah yang menangkap trend pasaran dengan berkesan dan mengawal risiko dengan menggabungkan strategi penembusan saluran ATR dan sistem persilangan purata bergerak. Strategi ini sangat sesuai untuk digunakan dalam persekitaran pasaran dengan trend yang jelas dan sangat sesuai untuk carta Renko.
Kelebihan utama strategi ini adalah mekanisme pengesahan dan penyesuaian pelbagai indikator, yang dapat mengekalkan kestabilan yang baik dalam keadaan pasaran yang berbeza. Di samping itu, strategi ini juga mempunyai masalah seperti sensitiviti parameter dan risiko pembalikan trend, yang perlu dioptimumkan melalui pengoptimuman parameter, peningkatan syarat penapisan dan pengendalian dana yang lebih baik.
Perhatian khusus perlu diberikan kepada peningkatan mekanisme hentikan kerugian, pengoptimuman strategi pengurusan kedudukan, dan penyesuaian spesifikasi penamaan pembolehubah dalam kod. Dengan pengoptimuman ini, ciri-ciri pengembalian risiko dan kestabilan jangka panjang strategi dijangka meningkat dengan ketara.
Ini adalah kerangka asas yang baik untuk peniaga yang ingin menggunakan strategi trend-following, yang boleh disesuaikan dan dioptimumkan lebih lanjut mengikut keutamaan risiko peribadi dan ciri-ciri pasaran tertentu.
/*backtest
start: 2025-03-31 00:00:00
end: 2025-04-01 00:00:00
period: 2m
basePeriod: 2m
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=6
strategy('Supertrend Strategy for Renko', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
Curly_Fries = input(9, title='Fast')
Popeyes = input(15, title='Medium')
Chicken_Sandwich = input(15, 'Slow')
ema_150 = ta.ema(close, Curly_Fries)
ema_200 = ta.ema(close, Popeyes)
ema_250 = ta.ema(close, Chicken_Sandwich)
a = plot(ema_150, title='EMA9')
b = plot(ema_200, title='EMA15')
c = plot(ema_250, title='EMA15')
ups = ema_150 > ema_250
down = ema_150 < ema_250
mycolor = ups ? color.green : down ? color.red : na
fill(a, c, color=mycolor)
Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method?', defval=true)
showsignals = input(title='Show Buy/Sell Signals?', defval=true)
highlighting = input(title='Highlighter On/Off?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
buySignal = trend == 1 and trend[1] == -1 and ups
sellSignal = trend == -1 and trend[1] == 1 and down
if buySignal
strategy.entry('Long', strategy.long)
if sellSignal
strategy.close('Long')
strategy.entry('Short', strategy.short)
if trend == 1
strategy.close('Short') // Chiude lo short se il trend diventa rialzista
longFillColor = highlighting ? trend == 1 ? color.green : color.white : color.white
shortFillColor = highlighting ? trend == -1 ? color.red : color.white : color.white
fill(upPlot, dnPlot, title='Trend Highlighter', color=longFillColor)
alertcondition(buySignal, title='SuperTrend Buy', message='SuperTrend Buy!')
alertcondition(sellSignal, title='SuperTrend Sell', message='SuperTrend Sell!')
changeCond = trend != trend[1]
alertcondition(changeCond, title='SuperTrend Direction Change', message='SuperTrend has changed direction!')