
Strategi ini adalah sistem perdagangan serentak berbilang indikator berdasarkan carta garis matahari, yang menggabungkan dengan bijak tindakan harga, sistem garis rata-rata berbilang tempoh, indikator yang agak kuat (RSI), indeks trend rata-rata (ADX), dan penapis kuantiti transaksi untuk mencari titik masuk yang berkemungkinan tinggi dalam keadaan trend yang kuat. Strategi ini direka khas untuk perdagangan trend di peringkat garis matahari, dengan penapisan berbilang peringkat untuk memastikan keadaan perdagangan hanya berlaku apabila terdapat arah pasaran yang jelas, yang berkesan untuk mengelakkan isyarat palsu yang kerap berlaku di pasaran yang bergolak.
Logik teras strategi ini adalah berdasarkan sistem penapisan syarat bertingkat, yang berfungsi seperti berikut:
Sistem Pengiktirafan TrendStrategi pertama memerlukan harga berada di atas garis rata-rata trend jangka panjang ((EMA 100 hari) dan garis rata-rata trend pertengahan ((EMA 50 hari) juga berada di atas garis rata-rata jangka panjang untuk mengesahkan trend menaik yang kuat. Untuk perdagangan forex, syarat sebaliknya diperlukan.
Mekanisme panggilan balikSetelah trend disahkan, strategi mencari penyesuaian harga ke arah garis rata-rata pantas (EMA 10 hari) dan menunggu harga kembali menembusi ke atas dari bawah garis rata-rata itu untuk membentuk isyarat masuk yang jelas.
RSI dinamika disahkan: Memerlukan RSI yang lebih tinggi daripada tetingkatan yang ditetapkan (default 55), untuk memastikan pasaran kekal cukup bergerak ke atas. Perdagangan terbuka memerlukan RSI yang lebih rendah daripada tetingkatan yang ditetapkan (default 45).
Penapis kekuatan trend ADXStrategi menggunakan indikator ADX yang dikira secara tersuai, hanya membenarkan perdagangan apabila ADX lebih tinggi daripada had yang ditetapkan (default 20), yang berkesan menyaring keluar pasaran yang lemah atau berlainan arah.
Pengesahan pesananUntuk meningkatkan lagi kualiti dagangan, strategi ini memerlukan jumlah dagangan pada permulaan lebih tinggi daripada purata dagangan pada hari ke-20 dan memastikan pasaran mempunyai penyertaan yang mencukupi untuk menyokong pergerakan harga.
Sistem pengurusan risikoStrategi: Menggunakan seting stop loss dan stop loss yang dinamik berdasarkan ATR, dan menyokong stop loss bergerak, untuk mengawal risiko yang tepat. Stop loss default adalah 1.5 kali ATR, stop loss adalah 3 kali ATR, dan stop loss bergerak adalah 1 kali ATR.
Dari analisis yang mendalam mengenai kod strategi ini, kita dapat menyimpulkan kelebihan yang jelas:
Sistem penapisan bertingkatStrategi ini meningkatkan kualiti isyarat dagangan dan mengurangkan penciptaan isyarat palsu dengan menggabungkan garis rata-rata, RSI, ADX dan pelbagai penapis kuantiti.
Trend dan momentumStrategi tidak hanya memberi perhatian kepada trend harga, tetapi juga mengesahkan momentum pasaran dan kekuatan trend melalui RSI dan ADX, mewujudkan mekanisme pengesahan ganda “trend-motivasi”.
Sesuaikan parameter yang fleksibelStrategi menawarkan banyak pilihan parameter, termasuk kitaran purata, RSI, ADX, dan kelipatan jumlah transaksi, yang boleh disesuaikan dengan keadaan pasaran yang berbeza.
Pengurusan risiko yang baikSistem Hentian dan Penangguhan Dinamis Berasaskan ATR, dengan mekanisme Hentian Bergerak yang boleh dipilih, menyediakan kerangka kawalan risiko saintifik untuk strategi dan mengawal risiko setiap dagangan dengan berkesan.
Kesesuaian dengan persekitaran pasaranMelalui penapisan ADX, strategi dapat mengenal pasti dan mengelakkan pasaran yang bergolak secara automatik dan hanya terlibat dalam perdagangan dalam trend yang jelas, meningkatkan kemampuan strategi untuk menyesuaikan diri dalam keadaan pasaran yang berbeza.
Walaupun strategi ini direka dengan baik, terdapat risiko dan cabaran yang berpotensi:
Kepekaan ParameterStrategi bergantung pada pelbagai parameter penunjuk, kombinasi parameter yang berbeza boleh menyebabkan perbezaan prestasi yang ketara, pengoptimuman berlebihan boleh menyebabkan penurunan prestasi masa depan. Penyelesaian adalah dengan melakukan ujian parameter yang luas untuk mengelakkan penyesuaian data sejarah.
Risiko perubahan trendDalam keadaan trend yang kuat berbalik secara tiba-tiba, strategi mungkin menghadapi kerugian yang lebih besar walaupun dengan pelbagai syarat penapisan. Ia disyorkan untuk mengesahkan trend dengan tempoh masa yang lebih tinggi, atau meningkatkan mekanisme amaran berbalik.
Kemiskinan isyaratOleh kerana menggunakan pelbagai syarat penapisan yang ketat, strategi mungkin tidak dapat menghasilkan isyarat perdagangan untuk jangka masa yang lama, menyebabkan penggunaan dana yang rendah. Anda boleh mempertimbangkan untuk melonggarkan parameter syarat tertentu dengan cara yang sesuai, dengan mengekalkan logik teras yang tidak berubah.
Menghalang risiko penembusan: Dalam keadaan pasaran yang tidak stabil atau kurang likuid, penutupan tetap berdasarkan ATR mungkin tidak dapat dilaksanakan seperti yang dijangkakan. Disarankan untuk mempertimbangkan penapis syarat masa tambahan atau mekanisme pemantauan turun naik pasaran.
Perbezaan antara pengesan dan cakera kerasStrategi: Prestasi dalam retesting mungkin berbeza dengan saham, terutamanya dengan mengambil kira faktor-faktor seperti slippage dan kos dagangan. Adalah disyorkan untuk melakukan ujian perdagangan kertas sebelum saham, dan pada mulanya dengan jumlah modal yang lebih kecil untuk mengesahkan.
Berdasarkan analisis yang mendalam mengenai kod strategi, berikut adalah beberapa kemungkinan arah pengoptimuman:
Pengesahan pelbagai kitaran masaPengesahan trend: memperkenalkan tempoh masa yang lebih tinggi (seperti garis pusingan atau garis bulan), membenarkan perdagangan hanya apabila beberapa tempoh masa trend adalah sama, meningkatkan kebolehpercayaan penilaian trend.
Parameter penyesuaian kadar turun naikMenghubungkan parameter utama seperti jarak berhenti, langkah berhenti bergerak dan lain-lain dengan kadar turun naik pasaran yang dinamik, membolehkan strategi menyesuaikan diri secara automatik dengan keadaan pasaran yang berbeza.
Pengoptimuman Pembelajaran MesinMenggunakan teknologi pembelajaran mesin untuk menyesuaikan parameter atau berat strategi secara dinamik, supaya strategi dapat menyesuaikan diri dengan lebih baik dengan perubahan persekitaran pasaran, meningkatkan kestabilan jangka panjang.
Tambah penapis asasUntuk perdagangan aset digital, pertimbangkan untuk memperkenalkan data dalam rantaian atau penunjuk sentimen pasaran sebagai syarat penapisan tambahan untuk meningkatkan kualiti isyarat.
Bahagian pengurusan kedudukan: Menerapkan sistem pengurusan kedudukan dinamik, menyesuaikan saiz kedudukan setiap perdagangan secara automatik berdasarkan kekuatan isyarat, turun naik pasaran dan kerugian akaun, mengoptimumkan kecekapan penggunaan dana dan nisbah pulangan risiko.
Strategi Peningkatan PenangguhanPendahuluan: Menerapkan strategi hentian bertingkat, seperti hentian bergilir berdasarkan struktur pasaran, untuk meningkatkan keuntungan dan peluang kemenangan strategi.
Strategi dagangan serentak pelbagai indikator pengesahan trend dinamika adalah sistem perdagangan yang dirancang dengan baik, yang menangkap peluang perdagangan berkemungkinan tinggi di pasaran dengan cara menggabungkan pelbagai mekanisme seperti tingkah laku harga, sistem garis rata, pengesahan dinamika RSI, penapisan kekuatan trend ADX dan pengesahan jumlah transaksi. Strategi ini sangat sesuai untuk mencari peluang masuk semula di pasaran yang jelas, dengan penapisan syarat yang ketat dan pengurusan risiko yang baik, untuk mencapai kualiti isyarat yang lebih tinggi dan keupayaan kawalan risiko.
Walaupun strategi menghadapi cabaran seperti sensitiviti parameter, risiko pembalikan trend, dan kekurangan isyarat, strategi ini dijangka meningkatkan kestabilan dan kesesuaian dengan arah pengoptimuman yang disyorkan, seperti pengesahan kitaran masa yang banyak, parameter penyesuaian kadar turun naik, pengoptimuman pembelajaran mesin, penapisan asas, dan pengurusan kedudukan dinamik. Secara keseluruhan, strategi ini menyediakan pedagang dengan kerangka perdagangan yang sistematik dan disiplin, yang membantu membuat keputusan perdagangan yang rasional dalam persekitaran pasaran yang kompleks dan berubah-ubah.
/*backtest
start: 2024-06-09 00:00:00
end: 2025-06-08 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("JonnyBtc Daily Pullback Strategy (Volume + ADX)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === INPUTS ===
ema_fast_len = input.int(10, title="Fast EMA (Pullback EMA)") // Shorter for daily
ema_trend_len = input.int(100, title="Long-Term Trend EMA") // Shorter than 200
ema_mid_len = input.int(50, title="Mid-Term Trend EMA")
rsi_len = input.int(14, title="RSI Length")
rsi_buy_min = input.int(55, title="Min RSI for Buy")
rsi_sell_max = input.int(45, title="Max RSI for Sell")
adx_len = input.int(14, title="ADX Length")
adx_min = input.float(20, title="Minimum ADX for Trend Strength")
vol_len = input.int(20, title="Volume MA Length")
volume_mult = input.float(1.0, title="Volume Multiplier for Confirmation")
long_only = input.bool(true, title="Only Trade Longs")
use_trailing_stop = input.bool(true, title="Use Trailing Stop")
trail_atr_mult = input.float(1.0, title="ATR Trailing Stop Multiplier", step=0.1)
atr_mult_sl = input.float(1.5, title="Fixed Stop Loss (ATR Multiplier)", step=0.1)
atr_mult_tp = input.float(3.0, title="Take Profit (ATR Multiplier)", step=0.1)
// === INDICATORS ===
price = close
ema_fast = ta.ema(price, ema_fast_len)
ema_trend = ta.ema(price, ema_trend_len)
ema_mid = ta.ema(price, ema_mid_len)
rsi = ta.rsi(price, rsi_len)
atr = ta.atr(14)
vol_sma = ta.sma(volume, vol_len)
// === Manual ADX Calculation ===
up = ta.change(high)
down = -ta.change(low)
plusDM = (up > down and up > 0) ? up : 0
minusDM = (down > up and down > 0) ? down : 0
trur = ta.rma(ta.tr(true), adx_len)
plusDI = 100 * ta.rma(plusDM, adx_len) / trur
minusDI = 100 * ta.rma(minusDM, adx_len) / trur
dx = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adx = ta.rma(dx, adx_len)
// === TREND FILTERS ===
strong_uptrend = price > ema_trend and ema_mid > ema_trend
strong_downtrend = price < ema_trend and ema_mid < ema_trend
// === VOLUME & ADX CONFIRMATION ===
volume_ok = volume > vol_sma * volume_mult
adx_ok = adx > adx_min
// === ENTRY CONDITIONS ===
long_signal = ta.crossover(price, ema_fast) and strong_uptrend and rsi > rsi_buy_min and price[1] < ema_fast[1] and adx_ok and volume_ok
short_signal = ta.crossunder(price, ema_fast) and strong_downtrend and rsi < rsi_sell_max and price[1] > ema_fast[1] and adx_ok and volume_ok
// === TRADE EXECUTION ===
if long_signal
strategy.entry("Long", strategy.long)
if short_signal and not long_only
strategy.entry("Short", strategy.short)
// === EXITS ===
long_sl = price - atr * atr_mult_sl
long_tp = price + atr * atr_mult_tp
short_sl = price + atr * atr_mult_sl
short_tp = price - atr * atr_mult_tp
trail_offset = atr * trail_atr_mult
if use_trailing_stop
strategy.exit("Exit Long", from_entry="Long", trail_points=trail_offset, trail_offset=trail_offset, limit=long_tp)
strategy.exit("Exit Short", from_entry="Short", trail_points=trail_offset, trail_offset=trail_offset, limit=short_tp)
else
strategy.exit("Exit Long", from_entry="Long", stop=long_sl, limit=long_tp)
strategy.exit("Exit Short", from_entry="Short", stop=short_sl, limit=short_tp)
// === PLOTS ===
plot(ema_fast, title="Fast EMA", color=color.orange)
plot(ema_mid, title="Mid-Term EMA", color=color.aqua)
plot(ema_trend, title="Long-Term EMA", color=color.blue)
// === ALERT CONDITIONS ===
alertcondition(long_signal, title="Buy Alert", message="BTC BUY Signal")
alertcondition(short_signal and not long_only, title="Sell Alert", message="BTC SELL Signal")
// === PLOTS FOR SIGNALS ===
plotshape(long_signal, title="Buy Signal", style=shape.labelup, location=location.belowbar, color=color.green, text="BUY")
plotshape(short_signal and not long_only, title="Sell Signal", style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL")