Strategi ini adalah sistem perdagangan trend yang menggabungkan Purata Bergerak Sederhana (SMA) dengan Indeks Kekuatan Relatif (RSI). Ia terutamanya menggunakan SMA 200-periode untuk mengenal pasti trend menaik dan menggunakan RSI sebagai penapis untuk mengoptimumkan masa kemasukan. Strategi ini juga menggabungkan mekanisme mengambil keuntungan dan menghentikan kerugian untuk mengawal risiko dan mengunci keuntungan.
Logik teras strategi ini merangkumi elemen utama berikut:
Pengesanan Trend: Menggunakan SMA 200 tempoh sebagai penunjuk trend jangka panjang. Apabila harga melintasi di atas dan kekal di atas SMA, ia dianggap sebagai aliran menaik berpotensi.
Pengesahan kemasukan: Memerlukan harga untuk kekal di atas SMA selama sekurang-kurangnya 30 tempoh berturut-turut (minit) untuk memastikan kestabilan trend.
Penapis RSI: Menggunakan penunjuk RSI 14 tempoh, membenarkan kemasukan hanya apabila RSI di bawah 30 (wilayah oversold), yang membantu menangkap peluang pemulihan yang berpotensi.
Pengurusan Risiko: Tetapkan tahap stop-loss 0.5% untuk mengehadkan kerugian maksimum setiap perdagangan.
Sasaran keuntungan: Tetapkan tahap keuntungan 2% untuk menutup kedudukan secara automatik apabila pulangan yang dijangkakan dicapai.
Proses pelaksanaan strategi adalah seperti berikut:
Mengikuti Trend: Menggunakan SMA jangka panjang untuk menangkap trend utama, membantu mendapat keuntungan dalam pasaran menaik yang kuat.
Pengoptimuman kemasukan: Memerlukan harga untuk kekal di atas SMA selama 30 tempoh membantu menapis pecah palsu, meningkatkan kualiti kemasukan.
Penangkapan pembalikan: Menggabungkan keadaan oversold RSI membantu menangkap peluang rebound yang berpotensi pada permulaan trend.
Kawalan Risiko: Menetapkan tahap stop-loss yang jelas dengan berkesan mengehadkan risiko maksimum untuk setiap perdagangan.
Penguncian keuntungan: Tahap mengambil keuntungan yang telah ditetapkan memastikan penguncian keuntungan secara automatik apabila pulangan yang dijangkakan dicapai.
Objektif: Peraturan strategi yang jelas mengurangkan kesan emosi penilaian subjektif.
Berkuantifikasi: Parameter strategi boleh diuji semula dan dioptimumkan menggunakan data sejarah.
Penembusan palsu: Dalam pasaran sampingan atau bergolak, penembusan palsu yang kerap boleh menyebabkan kerugian berhenti berturut-turut.
Lag: SMA sebagai penunjuk yang tertinggal mungkin kehilangan beberapa peluang pada awal trend atau mengekalkan kedudukan apabila trend berakhir.
Batasan RSI: Keadaan RSI yang ketat mungkin kehilangan beberapa peluang kemasukan yang baik, terutamanya dalam aliran menaik yang kuat.
Pendapatan Take-Profit dan Stop-Loss tetap: Peratusan yang ditetapkan mungkin tidak sesuai untuk semua keadaan pasaran dan mungkin diaktifkan terlalu awal di pasaran yang sangat tidak menentu.
Satu Arah: Strategi hanya berlangsung lama, tidak dapat mendapat keuntungan dalam trend menurun.
Sensitiviti Parameter: Prestasi strategi mungkin sensitif terhadap perubahan dalam tempoh SMA, tempoh pengesahan, dan tetapan RSI.
Kesesuaian pasaran: Strategi mungkin berfungsi dengan baik di pasaran atau jangka masa tertentu tetapi mungkin tidak boleh digunakan untuk semua situasi.
Pendapatan dan Stop-Loss Dinamik: Pertimbangkan untuk menggunakan ATR (Rentang Benar Purata) untuk menetapkan tahap mengambil keuntungan dan stop-loss dinamik untuk menyesuaikan diri dengan keadaan turun naik pasaran yang berbeza.
Pengesahan Pelbagai Jangka Masa: Memperkenalkan mekanisme pengesahan merentasi beberapa jangka masa, seperti memerlukan syarat untuk dipenuhi pada carta harian dan jam sebelum masuk, untuk meningkatkan kebolehpercayaan isyarat.
Penapis Kekuatan Trend: Tambah ADX (Indeks Arah Purata) untuk mengukur kekuatan trend dan hanya masuk semasa trend yang kuat.
Penyesuaian Volatiliti: Sesuaikan parameter secara dinamik berdasarkan turun naik pasaran, seperti meningkatkan tempoh pengesahan semasa turun naik rendah dan mengurangkannya semasa turun naik tinggi.
Tambah Mekanisme Jualan Pendek: Pertimbangkan jualan pendek apabila harga jatuh di bawah SMA dan RSI terlalu banyak dibeli, yang membolehkan strategi mendapat keuntungan dalam kedua-dua arah.
Mengoptimumkan Penggunaan RSI: Pertimbangkan untuk menggunakan perbezaan RSI atau menggabungkannya dengan penunjuk lain (seperti MACD) untuk meningkatkan kebolehpercayaan isyarat kemasukan.
Memperkenalkan Pengesahan Volume: Tambah analisis jumlah untuk memastikan pecah atau pembalikan disokong oleh jumlah perdagangan yang mencukupi.
Penapis Masa: Tambah penapis masa untuk mengelakkan perdagangan semasa tempoh kecairan yang rendah.
Pengurusan Wang Optimum: Melaksanakan saiz kedudukan dinamik, menyesuaikan pendedahan risiko untuk setiap perdagangan berdasarkan saiz akaun dan turun naik pasaran.
Meningkatkan Gabungan Indikator: Pertimbangkan untuk menggabungkan penunjuk teknikal lain seperti Bollinger Bands dan retracement Fibonacci untuk membina sistem perdagangan yang lebih komprehensif.
Strategi
Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan, seperti terdedah kepada pecah palsu dan terhad kepada perdagangan panjang sahaja. Untuk meningkatkan lagi ketahanan dan daya adaptasi strategi, disyorkan untuk mempertimbangkan pengenalan tahap mengambil keuntungan dan stop-loss yang dinamik, pengesahan pelbagai jangka masa, penapisan kekuatan trend, dan langkah pengoptimuman lain. Di samping itu, menambahkan mekanisme penjualan pendek dan mengoptimumkan strategi pengurusan wang dapat meningkatkan prestasi keseluruhan sistem dengan ketara.
Ringkasnya, strategi ini menyediakan titik permulaan yang baik untuk mengikuti trend dan perdagangan momentum. Melalui pengujian belakang, pengoptimuman, dan pengesahan perdagangan langsung yang berterusan, peniaga dapat memperbaiki dan menyesuaikan strategi ini berdasarkan persekitaran pasaran tertentu dan keutamaan risiko individu untuk mencapai hasil perdagangan yang lebih baik.
/*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