Strategi ini adalah sistem perdagangan trend tracking yang didasarkan pada beberapa indikator rata-rata dan momentum. Strategi ini terutama memanfaatkan hubungan dinamis dari SMA sederhana 20, 50, 150 dan 200 hari, menggabungkan perdagangan dan indikator RSI untuk menangkap tren naik yang kuat pada tingkat hari, dan berdamai tepat waktu saat tren berubah menjadi lemah. Strategi ini secara efektif menyaring sinyal palsu dan meningkatkan akurasi perdagangan dengan menggunakan kombinasi dari beberapa indikator teknis.
Logika inti dari strategi ini terdiri dari beberapa bagian penting: 1. Sistem rata-rata: menggunakan rata-rata 20/50/150/200 hari untuk membangun sistem penilaian tren, yang membutuhkan multi rata-rata untuk menampilkan banyak baris. 2. Pengakuan momentum: Menggunakan indikator RSI dan rata-rata bergerak untuk menentukan momentum harga, meminta RSI lebih besar dari 55 atau RSI SMA lebih besar dari 50 dan RSI lebih tinggi. 3. Verifikasi volume transaksi: Mengkonfirmasi efektivitas sinyal jual beli dengan membandingkan rata-rata volume transaksi 20 hari dengan volume transaksi terbaru. 4. Verifikasi ketahanan tren: Memeriksa bahwa garis rata-rata 50 hari telah mengalami tren naik selama setidaknya 25 hari dari 40 hari perdagangan terakhir. 5. Konfirmasi posisi: Harga harus stabil selama setidaknya 20 hari perdagangan di atas garis rata-rata 150 hari.
Kondisi pembelian adalah: - Lebih dari 4 hari dalam 10 hari terakhir di bawah sinar matahari dan setidaknya 1 hari di bawah sinar matahari - Indikator RSI memenuhi kondisi momentum - Sistem linier memiliki banyak baris dan terus meningkat - Stabilitas harga berjalan di atas garis rata-rata 150 hari
Kondisi penjualan meliputi: - Harga turun di bawah rata-rata 150 hari - Peningkatan jumlah yang terus-menerus - Lini rata-rata 50 hari jatuh ke 150 hari - Meningkatnya volume transaksi yang didominasi oleh vagina
Rekomendasi pengendalian risiko: - Menetapkan posisi stop loss yang wajar - Pengelolaan dana harus konservatif - Pertimbangkan untuk meningkatkan indikator konfirmasi tren - Adaptasi parameter sesuai dengan kondisi pasar
Ini adalah strategi pelacakan tren yang dirancang dengan ketat, yang dapat secara efektif menangkap peluang tren yang kuat melalui penggunaan kombinasi dari beberapa indikator teknis. Keuntungan utama dari strategi ini adalah mekanisme konfirmasi sinyal yang lengkap dan sistem kontrol risiko yang ketat. Meskipun ada beberapa keterlambatan, strategi ini dapat mempertahankan kinerja yang stabil dalam jangka panjang dengan optimasi parameter dan manajemen risiko yang wajar.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Micho's 150 (1D Time Frame Only)", overlay=true) // Define the length for the SMAs and RSI sma20Length = 20 sma50Length = 50 sma150Length = 150 sma200Length = 200 volumeMaLength = 20 rsiLength = 14 rsiSmaLength = 14 smaCheckLength = 40 // Check the last month of trading days (~20 days) requiredRisingDays = 25 // Require SMA to rise in at least 16 of the past 20 days sma150AboveSma200CheckDays = 1 // Require SMA150 > SMA200 for the last 10 days // Calculate the SMAs for price sma20 = ta.sma(close, sma20Length) sma50 = ta.sma(close, sma50Length) sma150 = ta.sma(close, sma150Length) sma200 = ta.sma(close, sma200Length) // Calculate the 20-period moving average of volume volumeMA20 = ta.sma(volume, volumeMaLength) // Calculate the 14-period RSI rsi = ta.rsi(close, rsiLength) // Calculate the 14-period SMA of RSI rsiSMA = ta.sma(rsi, rsiSmaLength) // Check if most of the last 5 days are buyer days (close > open) buyerDays = 0 for i = 0 to 9 if close[i] > open[i] buyerDays := buyerDays + 1 // Check if at least 1 day has volume higher than the 20-period volume MA highVolumeDays = 0 for i = 0 to 9 if close[i] > open[i] and volume[i] > volumeMA20 highVolumeDays := highVolumeDays + 1 // Define the new RSI condition rsiCondition = (rsi >= 55) or (rsiSMA > 50 and rsi > rsi[1]) // Check if the 50-day SMA has been rising on at least 16 of the last 20 trading days risingDays = 0 for i = 1 to smaCheckLength if sma50[i] > sma50[i + 1] risingDays := risingDays + 1 // Check if the SMA has risen on at least 16 of the last 20 days sma50Rising = risingDays >= requiredRisingDays // Check if the price has been above the SMA150 for the last 20 trading days priceAboveSma150 = true for i = 1 to smaCheckLength if close[i] < sma150[i] priceAboveSma150 := false // Check if the SMA150 has been above the SMA200 for the last 10 days sma150AboveSma200 = true for i = 1 to sma150AboveSma200CheckDays if sma150[i] < sma200[i] sma150AboveSma200 := false // Define the conditions for the 150-day and 200-day SMAs being rising sma150Rising = sma150 > sma150[1] sma200Rising = sma200 > sma200[1] // Check if most of the last 5 days are seller days (close < open) sellerDays = 0 for i = 0 to 9 if close[i] < open[i] sellerDays := sellerDays + 1 // Check if at least 1 day has seller volume higher than the 20-period volume MA highSellerVolumeDays = 0 for i = 0 to 9 if close[i] < open[i] and volume[i] > volumeMA20 highSellerVolumeDays := highSellerVolumeDays + 1 // Check in the last N days the price below 150 priceBelowSma150 = true for i = 0 to 0 if close[i] > sma150[i] priceBelowSma150 := false // Restrict the strategy to 1D time frame if timeframe.isdaily // Buy condition: // - Most of the last 5 days are buyer days (buyerDays > 2) // - At least 1 of those days has high buyer volume (highVolumeDays >= 1) // - RSI SMA (14-period) between 45 and 50 with RSI >= 55, or RSI SMA > 50 and RSI rising // - 50-day SMA > 150-day SMA and 150-day SMA > 200-day SMA // - 50-day SMA has been rising on at least 16 of the last 20 trading days // - The price hasn't been below the 150-day SMA in the last 20 days // - 150-day SMA has been above the 200-day SMA for the last 10 days // - 150-day and 200-day SMAs are rising buyCondition = (close > sma150 and buyerDays > 4 and highVolumeDays >= 1 and rsiCondition and sma50 > sma150 and sma50Rising and sma150Rising and sma200Rising and priceAboveSma150) // Sell condition: // - Price crossing below SMA 150 // - Seller volume (current volume > volume MA 20) // - 150-day SMA crosses below 200-day SMA // - Most of the last 5 days are seller days (sellerDays > 2) and at least 1 day of higher seller volume (highSellerVolumeDays >= 1) sellCondition = (priceBelowSma150 and (sma50 < sma150 or (sellerDays >5 and highSellerVolumeDays >= 5))) // Execute buy when all conditions are met if (buyCondition) strategy.entry("Buy", strategy.long) // Execute sell when all conditions are met if (sellCondition) strategy.close("Buy")