Strategi ini adalah sistem perdagangan trend-tracking yang menggabungkan purata bergerak sederhana (SMA) dan penunjuk yang agak kuat (RSI). Ia menggunakan 200 kitaran SMA untuk mengenal pasti trend menaik dan menggunakan RSI sebagai penapis untuk mengoptimumkan masa masuk. Strategi ini juga mengandungi mekanisme berhenti dan berhenti untuk mengawal risiko dan mengunci keuntungan.
Logik utama strategi ini merangkumi beberapa elemen utama:
Pengesanan Trend: Menggunakan 200 kitaran SMA sebagai penunjuk trend jangka panjang. Apabila harga naik dan kekal di atas SMA, ia dianggap sebagai potensi kenaikan.
Pengesahan kemasukan: Meminta harga kekal di atas SMA sekurang-kurangnya 30 kitaran berturut-turut ((minit) untuk memastikan kestabilan trend.
Penapisan RSI: Penggunaan RSI 14 kitaran yang hanya membenarkan masuk apabila RSI berada di bawah 30 (daerah oversold), yang membantu menangkap peluang potensi rebound.
Pengurusan risiko: Tetapkan tahap stop loss 0.5% untuk mengehadkan kerugian maksimum dalam satu dagangan.
Matlamat keuntungan: Tetapkan tahap stop loss 2% untuk melonggarkan kedudukan secara automatik apabila keuntungan yang dijangkakan dicapai.
Proses pelaksanaan adalah seperti berikut:
Pengesanan Trend: Menggunakan SMA jangka panjang untuk menangkap trend utama yang membantu untuk mendapatkan keuntungan dalam keadaan kenaikan yang kuat.
Pengoptimuman kemasukan: Minta harga kekal di atas SMA selama 30 kitaran, membantu menyaring penembusan palsu dan meningkatkan kualiti kemasukan.
Tangkap Reverse: Bersama-sama dengan keadaan oversold RSI, ia membantu menangkap peluang potensi rebound pada awal trend.
Kawalan risiko: Tetapkan tahap stop loss yang jelas, yang mengehadkan risiko maksimum untuk setiap dagangan.
Penguncian keuntungan: Tahap penangguhan yang ditetapkan memastikan keuntungan dikunci secara automatik apabila pendapatan yang dijangkakan dicapai.
Objektiviti: Peraturan strategi jelas, mengurangkan kesan emosi dari penilaian subjektif.
Kuantifikasi: parameter strategi boleh diukur dan dioptimumkan melalui data sejarah.
Penembusan palsu: Dalam pasaran yang bergelombang, penembusan palsu boleh berlaku dengan kerap dan menyebabkan kerugian berterusan.
Lagging: Sebagai penunjuk lagging, SMA mungkin kehilangan beberapa peluang pada awal trend, atau masih memegang kedudukan pada akhir trend.
Had RSI: Keadaan RSI yang ketat mungkin akan kehilangan beberapa peluang masuk yang baik, terutamanya semasa kenaikan yang kuat.
Hentian Hentian Tetap: Peratusan yang ditetapkan mungkin tidak berlaku untuk semua keadaan pasaran, dan mungkin tercetus terlalu awal dalam pasaran yang lebih turun naik.
Satu arah: Strategi hanya melakukan lebih banyak dan tidak boleh mendapat keuntungan dalam keadaan turun.
Sensitiviti parameter: prestasi strategi mungkin sensitif kepada perubahan parameter seperti kitaran SMA, kitaran pengesahan dan tetapan RSI.
Kebolehpasangan pasaran: Strategi mungkin berfungsi dengan baik dalam pasaran atau jangka masa tertentu, tetapi tidak semestinya berlaku untuk semua keadaan.
Stop loss dinamik: pertimbangkan untuk menggunakan ATR (Average True Range) untuk menetapkan tahap stop loss dinamik untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
Pengesahan pelbagai kitaran: Memperkenalkan mekanisme pengesahan pelbagai bingkai masa, seperti memenuhi syarat garis matahari dan garis jam pada masa yang sama, untuk meningkatkan kebolehpercayaan isyarat.
Penapisan kekuatan trend: Tambah ADX (indikator trend rata-rata) untuk mengukur kekuatan trend, masuk hanya dalam trend yang kuat.
Penyesuaian kadar turun naik: mengikut parameter penyesuaian kadar turun naik pasaran yang dinamik, seperti meningkatkan tempoh pengesahan pada tempoh turun naik yang rendah dan mengurangkan tempoh pengesahan pada tempoh turun naik yang tinggi.
Menyertai mekanisme shorting: Pertimbangkan shorting apabila harga jatuh di bawah SMA dan RSI overbought, supaya strategi dapat menguntungkan dalam keadaan dua hala.
Mengoptimumkan penggunaan RSI: pertimbangkan untuk menggunakan RSI untuk memisahkan atau menggabungkan dengan penunjuk lain (seperti MACD) untuk meningkatkan kebolehpercayaan isyarat masuk.
Memperkenalkan pengesahan dagangan: Menambah analisis dagangan untuk memastikan bahawa penembusan atau pembalikan mendapat sokongan dagangan yang mencukupi.
Penapisan masa: Tambah penapisan masa untuk mengelakkan dagangan pada masa yang diketahui kurang cair.
Pengurusan wang yang dioptimumkan: Menjalankan pengurusan kedudukan yang dinamik, menyesuaikan margin risiko setiap urus niaga mengikut saiz akaun dan turun naik pasaran.
Meningkatkan portfolio penunjuk: Pertimbangkan untuk menggabungkan penunjuk teknikal lain seperti Brin Belt, Fibonacci Retracement, dan sebagainya untuk membina sistem perdagangan yang lebih komprehensif.
“Strategi Pemantauan Tren Garis Dua Bersama Penapis RSI” adalah strategi perdagangan kuantitatif yang menggabungkan pemantauan trend dan pemikiran pembalikan momentum. Strategi ini bertujuan untuk menangkap peluang rebound yang berpotensi dalam trend kenaikan yang kuat dengan mengenal pasti trend jangka panjang dengan memanfaatkan 200 kitaran SMA dan mengoptimumkan masa masuk dengan syarat oversold RSI.
Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan, seperti kemungkinan terjejas oleh penembusan palsu, terhad kepada melakukan banyak perdagangan, dan lain-lain. Untuk meningkatkan lagi kestabilan dan adaptasi strategi, disarankan untuk mempertimbangkan langkah-langkah pengoptimuman seperti memperkenalkan stop loss berhenti dinamik, pengesahan pelbagai kitaran, penapis kekuatan trend. Selain itu, penambahan mekanisme penyingkiran dan strategi pengurusan wang yang dioptimumkan juga mungkin meningkatkan prestasi keseluruhan sistem.
Secara keseluruhannya, strategi ini memberikan titik permulaan yang baik untuk trend-tracking dan perdagangan momentum. Dengan pengesanan, pengoptimuman dan pengujian dalam talian yang berterusan, peniaga boleh menyempurnakan dan menyesuaikan strategi ini untuk mencapai prestasi perdagangan yang lebih baik mengikut keadaan pasaran tertentu dan pilihan risiko peribadi.
/*backtest
start: 2024-07-21 00:00:00
end: 2024-07-28 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA 200 with RSI Filter", overlay=true)
// Inputs
smaLength = input.int(200, title="SMA Length")
confirmBars = input.int(30, title="Confirmation Bars (30 minutes)")
takeProfitPerc = input.float(2.0, title="Take Profit (%)", step=0.1) / 100
stopLossPerc = input.float(0.5, title="Stop Loss (%)", step=0.1) / 100
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
// Calculate SMA
sma = ta.sma(close, smaLength)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Buy condition
priceAboveSMA = close > sma
aboveSMAcount = ta.barssince(priceAboveSMA == false)
rsiCondition = rsi < rsiOversold
enterLongCondition = priceAboveSMA and aboveSMAcount >= confirmBars and rsiCondition
// Track entry price for calculating take profit and stop loss levels
var float entryPrice = na
if (enterLongCondition and na(entryPrice))
entryPrice := close
// Ensure the entryPrice is only set when a position is opened
if (strategy.opentrades == 0)
entryPrice := na
takeProfitLevel = entryPrice * (1 + takeProfitPerc)
stopLossLevel = entryPrice * (1 - stopLossPerc)
// Exit conditions
takeProfitCondition = close >= takeProfitLevel
stopLossCondition = close <= stopLossLevel
// Plot SMA and RSI
plot(sma, title="SMA 200", color=color.blue)
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)
// Plot shapes for entries and exits
plotshape(series=enterLongCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=takeProfitCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="TP")
plotshape(series=stopLossCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SL")
// Strategy entry and exit
if (enterLongCondition)
strategy.entry("Long", strategy.long, comment="SMA200LE")
if (takeProfitCondition or stopLossCondition)
strategy.close("Long", when=takeProfitCondition or stopLossCondition)
// Reset entry price after position is closed
if (strategy.position_size == 0)
entryPrice := na