
Strategi ini adalah sistem perdagangan trend yang menggabungkan pelbagai indikator, yang bergantung kepada persilangan purata bergerak, indikator yang agak kuat (RSI) dan Bollinger Bands (Bollinger Bands) yang bersama-sama mengesahkan isyarat perdagangan. Strategi ini berjalan pada kitaran masa 15 minit, menggunakan persilangan purata bergerak sederhana (SMA) sebagai asas penghakiman trend utama, sambil menggunakan RSI untuk menyaring keadaan pasaran yang terlalu banyak dibeli atau dijual, dan mengenal pasti kawasan harga yang mungkin melalui Bollinger Band.
Prinsip teras strategi perdagangan kuantitatif ini adalah penjanaan dan penapisan isyarat perdagangan yang digabungkan dengan pelbagai petunjuk teknikal, yang terdiri daripada beberapa komponen utama:
Mekanisme pengesahan trend: Menggunakan persilangan purata bergerak sederhana 5 kitaran dengan 20 kitaran ((SMA) sebagai asas penghakiman utama arah trend. Apabila SMA 5 kitaran naik melintasi SMA 20 kitaran, ia dikenali sebagai permulaan tren naik, mencetuskan isyarat beli; Apabila SMA 5 kitaran turun melintasi SMA 20 kitaran, ia dikenali sebagai permulaan tren menurun, mencetuskan isyarat jual.
Penapis tenaga: menggunakan penunjuk yang agak kuat (RSI) untuk menapis kemungkinan pembelian atau penjualan yang berlebihan. Syarat pembelian memerlukan RSI di bawah 70 dan mengelakkan masuk ke kawasan pembelian yang berlebihan; syarat penjualan memerlukan RSI di atas 30 dan mengelakkan penembusan di kawasan penjualan yang berlebihan.
Pengiktirafan julatBollinger Bands: Kedudukan relatif harga yang ditandakan oleh Bollinger Bands. Untuk membeli, isyarat memerlukan harga yang tidak lebih tinggi daripada yang teratas, dan untuk menjual, isyarat memerlukan harga yang tidak lebih rendah daripada yang terbawah, untuk mengelakkan perdagangan di kawasan harga yang melampau.
Sistem pengurusan risiko: Menggunakan seting sasaran berhenti dan keuntungan yang dinamik berdasarkan purata gelombang sebenar (ATR). Penangguhan ditetapkan sebagai jarak ATR 2 kali ganda dari harga masuk, dan sasaran keuntungan ditetapkan sebagai jarak ATR 4 kali ganda dari harga masuk, membolehkan pengurusan risiko menyesuaikan diri dengan perubahan turun naik dalam keadaan pasaran yang berbeza.
Pengurusan kedudukanStrategi ini menetapkan bahawa risiko setiap urus niaga tidak melebihi 1% daripada dana akaun, memastikan kerugian urus niaga tunggal dikawal dalam julat yang boleh diterima.
Pada pelaksanaan kod, strategi ini pertama kali mengira nilai pelbagai petunjuk teknikal, kemudian menentukan syarat masuk dan peraturan keluar yang jelas. Apabila syarat pembelian dipenuhi, semua kedudukan kosong akan dipadamkan dan kedudukan multilevel akan ditubuhkan, sambil menetapkan tahap penghentian dan keuntungan yang sesuai. Apabila syarat menjual dipenuhi, semua kedudukan multilevel akan dipadamkan dan kedudukan kosong akan ditubuhkan, sambil menetapkan tahap penghentian dan keuntungan yang sesuai.
Strategi ini menunjukkan beberapa kelebihan dengan menganalisis struktur dan logik kod secara mendalam:
Pengesahan serentakStrategi: menggabungkan moving averages, RSI dan Brin dengan tiga jenis indikator teknikal yang berbeza untuk membentuk mekanisme pengesahan isyarat, mengurangkan risiko isyarat palsu yang mungkin dibawa oleh satu indikator. Mekanisme penapisan berganda ini membantu meningkatkan kualiti dan kebolehpercayaan isyarat perdagangan.
Pengurusan risiko penyesuaian: Menggunakan penyetempatan sasaran berhenti dan keuntungan yang dinamik berdasarkan ATR, dapat menyesuaikan parameter risiko secara automatik mengikut turun naik pasaran. Secara automatik meluaskan had berhenti dalam pasaran yang bergelombang tinggi, secara automatik mengurangkan had berhenti dalam pasaran yang bergelombang rendah, dan mengelakkan had berhenti tetap dalam keadaan pasaran yang berbeza.
Pengesanan trend digabungkan dengan penapis turun naikStrategi ini bukan sahaja menjejaki arah trend ((melalui persimpangan SMA), tetapi juga memfilterkan isyarat perdagangan harga di kawasan yang melampau melalui RSI dan Brin, yang berkesan mengurangkan kerugian yang mungkin ditanggung pada tahap penyesuaian trend.
Pengurusan kedudukan yang jelasPeruntukan yang jelas bahawa risiko setiap urus niaga tidak melebihi 1% daripada akaun, memberikan panduan yang jelas untuk pengurusan dana, membantu operasi yang stabil dalam jangka panjang.
Penglihatan isyaratKod ini mengandungi komponen visualisasi yang lengkap, termasuk purata bergerak, pita blur, isyarat beli dan jual, dan pemetaan tahap berhenti dan keuntungan, yang membolehkan peniaga memantau keadaan operasi strategi dan keadaan pasaran dalam masa nyata.
Logik masuk dan keluar jelasStrategi mempunyai peraturan masuk dan keluar yang jelas, mengelakkan faktor subjektif dalam keputusan perdagangan, yang membantu mengekalkan disiplin perdagangan.
Isyarat pembalikan mencetuskan kedudukan rataApabila terdapat isyarat berbalik arah, strategi akan menghapuskan kedudukan sedia ada dan kemudian membina kedudukan baru, yang membantu menyesuaikan arah kedudukan dengan cepat apabila trend pasaran berubah, mengurangkan pendedahan ke arah yang salah.
Walaupun strategi ini dirancang secara menyeluruh, terdapat risiko dan batasan yang berpotensi seperti berikut:
Sensitiviti purata jangka pendekMenggunakan 5 kitaran SMA sebagai garis rata pantas mungkin terlalu sensitif, mudah untuk menghasilkan isyarat silang yang kerap dalam pasaran penyusunan melintang, yang menyebabkan perdagangan berlebihan dan kemerosotan komisen. Penyelesaian boleh mempertimbangkan untuk menambah pemprosesan rata rata atau menghentikan perdagangan di pasaran melintang.
Penurunan ATR berganda tetapWalaupun ATR digunakan untuk menghentikan kerugian secara dinamik, penggunaan ATR dua kali ganda secara tetap mungkin tidak cukup fleksibel dalam keadaan pasaran tertentu. Ia mungkin terlalu lebar untuk menghentikan kerugian dalam pasaran yang bergelombang tinggi dan terlalu sempit dalam pasaran yang bergelombang rendah. Ia disyorkan untuk mempertimbangkan untuk menyesuaikan ATR berganda mengikut pergerakan di peringkat pasaran yang berbeza.
RSI kekalStrategi menggunakan RSI yang tetap (70 dan 30) mungkin tidak sesuai untuk semua keadaan pasaran. Dalam pasaran trend yang kuat, RSI mungkin kekal dalam kedudukan yang tinggi atau rendah untuk jangka masa yang lama, menyebabkan isyarat yang berkesan terlepas.
Batasan bergantung kepada penunjuk teknikalStrategi bergantung sepenuhnya pada indikator teknikal, kekurangan pertimbangan terhadap faktor asas. Analisis teknikal semata-mata mungkin tidak berkesan apabila peristiwa asas utama mempengaruhi pasaran.
Risiko penarikan balikWalaupun strategi menggunakan mekanisme stop loss, dalam keadaan pasaran yang melampau (seperti flash crash atau skydiving), harga pelaksanaan stop loss yang sebenarnya mungkin jauh lebih rendah daripada harga yang ditetapkan, menyebabkan kerugian yang lebih besar daripada yang dijangkakan. Perlu dipertimbangkan untuk menambah mekanisme kawalan maksimum pulangan balik.
Risiko Pengoptimuman ParameterParameter yang digunakan dalam kod (seperti 5 dan 20 kitaran SMA, 14 kitaran RSI dan ATR) mungkin mempunyai risiko terlalu sesuai dengan data sejarah. Ujian kestabilan parameter disyorkan untuk memastikan bahawa strategi masih dapat mengekalkan prestasi yang stabil dalam pelbagai tetapan parameter.
Risiko kecairan: Apabila melakukan perdagangan di pasaran yang kurang kecairan, mungkin menghadapi risiko meluaskan titik tergelincir, hasil perdagangan sebenar mungkin berbeza dengan hasil pengesanan semula. Perlu dipertimbangkan untuk meningkatkan syarat penapisan kecairan dan mengelakkan perdagangan dalam keadaan kecairan yang sangat rendah.
Berdasarkan analisis mendalam kod, berikut adalah arah yang mungkin untuk pengoptimuman:
Mekanisme penyesuaian parameter dinamik: Memperkenalkan mekanisme penyesuaian parameter dinamik berdasarkan turun naik pasaran atau kekuatan trend, seperti meningkatkan julat nilai RSI dalam pasaran yang bergelombang tinggi, atau menyesuaikan kitaran garis rata-rata dalam pasaran yang kuat, menjadikan strategi lebih sesuai. Alasan pengoptimuman: parameter tetap menunjukkan perbezaan yang besar dalam prestasi dalam keadaan pasaran yang berbeza, parameter dinamik membantu strategi menyesuaikan diri dengan keadaan pasaran yang berbeza.
Penapisan intensiti trend meningkat: pengenalan penunjuk kekuatan trend seperti ADX (Indeks Arah Rata-rata), hanya menjalankan isyarat perdagangan apabila trend jelas. Alasan pengoptimuman: mengelakkan perdagangan yang kerap dalam pasaran penyusunan mendatar, meningkatkan kualiti isyarat, mengurangkan kos komisen.
Penapisan masaAlasan pengoptimuman: Beberapa tempoh masa tertentu (seperti pertukaran waktu perdagangan Asia, Eropah, Amerika) mungkin mempunyai corak tingkah laku pasaran yang khusus, pengoptimuman yang disasarkan dapat meningkatkan kestabilan strategi.
Tangga pendakian: Membuat mekanisme penutupan tangga untuk mendapatkan keuntungan, mengunci sebahagian keuntungan dan mengekalkan kemungkinan untuk menangkap trend besar. Alasan pengoptimuman: Penutupan tetap untuk strategi semasa mungkin keluar terlalu awal dari trend yang kuat, penutupan tangga dapat mengimbangi ketidakseimbangan antara keuntungan dan trend yang dilacak.
Pengesahan pelbagai kitaran masa: Tambah pengesahan trend pada kitaran masa yang lebih tinggi, masuk hanya jika arah trend utama selaras. Alasan pengoptimuman: Berdagang mengikut arah trend kitaran yang lebih besar dapat meningkatkan kadar kejayaan dan mengurangkan risiko perdagangan berlawanan.
Penunjuk penambahan: Mengintegrasikan analisis jumlah urus niaga, memastikan isyarat perdagangan disokong oleh jumlah urus niaga yang mencukupi. Alasan pengoptimuman: Perubahan harga disertai dengan jumlah yang berkesan dapat disahkan dengan lebih dipercayai, membantu menyaring isyarat penembusan palsu.
Pengoptimuman Pembelajaran Mesin: memperkenalkan algoritma pembelajaran mesin untuk mengoptimumkan parameter atau berat isyarat secara dinamik, meningkatkan kemampuan strategi untuk menyesuaikan diri dengan perubahan pasaran. Alasan pengoptimuman: keadaan pasaran sentiasa berubah, strategi statik mudah gagal, pembelajaran mesin dapat membantu strategi untuk terus menyesuaikan diri dengan evolusi pasaran.
Meningkatkan strategi pengurusan wang: Mengubah saiz kedudukan mengikut prestasi sistem yang dinamik, meningkatkan kedudukan semasa keuntungan berturut-turut, mengurangkan kedudukan semasa kerugian berturut-turut. Alasan pengoptimuman: Meningkatkan kecekapan penggunaan dana, memaksimumkan keuntungan apabila strategi berfungsi dengan baik, mengawal risiko apabila strategi berfungsi dengan buruk.
Strategi kuantitatif untuk mengesan trend lintas dinamik pelbagai indikator adalah sistem perdagangan komprehensif yang menggabungkan persilangan purata bergerak, penapisan RSI dan pengesahan Brin. Melalui sinergi pelbagai petunjuk teknikal, strategi ini menyaring dengan berkesan isyarat kawasan harga yang melampau sambil menangkap titik perubahan trend, dan menyesuaikan diri dengan keadaan pasaran yang berbeza melalui mekanisme pengurusan risiko dinamik berasaskan ATR.
Walaupun strategi ini mempunyai kelebihan yang jelas seperti pengesahan serentak pelbagai petunjuk, pengurusan risiko penyesuaian diri, masih terdapat risiko seperti keterlaluan sensitiviti garis rata-rata jangka pendek, keterbatasan parameter tetap. Untuk mengatasi batasan ini, disarankan untuk meningkatkan lagi kekuatan dan penyesuaian strategi dengan memperkenalkan mekanisme penyesuaian parameter dinamik, meningkatkan penapisan kekuatan trend, dan mencapai arah pengoptimuman seperti penghentian tangga.
Secara keseluruhannya, ini adalah strategi perdagangan kuantitatif komprehensif yang dirancang dengan baik, yang menyediakan kerangka kerja sistematik yang jelas dan logik untuk perdagangan dalam hari aset digital dengan mempertimbangkan faktor-faktor penting seperti penjanaan isyarat, kawalan risiko dan pengurusan kedudukan. Dengan pengoptimuman berterusan dan penyesuaian parameter, strategi ini berpotensi untuk mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.
/*backtest
start: 2025-03-24 00:00:00
end: 2025-03-24 13:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Crypto Futures Day Trading Strategy", overlay=true)
// --- Indicators ---
// Moving Averages
sma5 = ta.sma(close, 5)
sma20 = ta.sma(close, 20)
// Relative Strength Index (RSI)
rsi14 = ta.rsi(close, 14)
// Bollinger Bands
basis = ta.sma(close, 20)
dev = 2 * ta.stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
// Average True Range (ATR)
atr14 = ta.atr(14)
// --- Entry Conditions ---
// Long Entry: 5 SMA crosses above 20 SMA, RSI < 70, price below upper BB
longCondition = ta.crossover(sma5, sma20) and rsi14 < 70 and close < upperBB
// Short Entry: 5 SMA crosses below 20 SMA, RSI > 30, price above lower BB
shortCondition = ta.crossunder(sma5, sma20) and rsi14 > 30 and close > lowerBB
// --- Stop-Loss and Take-Profit Variables ---
// Use 'var' to persist values across bars until updated
var float longSL = na
var float longTP = na
var float shortSL = na
var float shortTP = na
// --- Entry Logic ---
// Long Entry: Close any short position, enter long, set SL and TP
if (longCondition)
strategy.close("Short") // Close existing short position
strategy.entry("Long", strategy.long) // Enter long position
longSL := close - 2 * atr14 // Set stop-loss 2 ATR below entry
longTP := close + 4 * atr14 // Set take-profit 4 ATR above entry
// Short Entry: Close any long position, enter short, set SL and TP
if (shortCondition)
strategy.close("Long") // Close existing long position
strategy.entry("Short", strategy.short) // Enter short position
shortSL := close + 2 * atr14 // Set stop-loss 2 ATR above entry
shortTP := close - 4 * atr14 // Set take-profit 4 ATR below entry
// --- Exit Logic ---
// Exit Long: Apply stop-loss and take-profit when in a long position
if (strategy.position_size > 0)
strategy.exit("Exit Long", "Long", stop=longSL, limit=longTP)
// Exit Short: Apply stop-loss and take-profit when in a short position
if (strategy.position_size < 0)
strategy.exit("Exit Short", "Short", stop=shortSL, limit=shortTP)
// --- Plotting ---
// Plot Moving Averages
plot(sma5, color=color.blue, title="SMA5", linewidth=2)
plot(sma20, color=color.red, title="SMA20", linewidth=2)
// Plot Bollinger Bands
plot(upperBB, color=color.green, title="Upper BB", linewidth=1)
plot(lowerBB, color=color.green, title="Lower BB", linewidth=1)
// Plot Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plot Stop-Loss and Take-Profit Levels (only when in a position)
plot(strategy.position_size > 0 ? longSL : na, color=color.red, style=plot.style_linebr, title="Long SL")
plot(strategy.position_size > 0 ? longTP : na, color=color.green, style=plot.style_linebr, title="Long TP")
plot(strategy.position_size < 0 ? shortSL : na, color=color.red, style=plot.style_linebr, title="Short SL")
plot(strategy.position_size < 0 ? shortTP : na, color=color.green, style=plot.style_linebr, title="Short TP")
// --- Optional Alerts ---
// Uncomment these lines to enable alerts in TradingView
// alertcondition(longCondition, title="Buy Alert", message="Buy Signal Detected")
// alertcondition(shortCondition, title="Sell Alert", message="Sell Signal Detected")