Strategi ini mengintegrasikan teknik crossover rata-rata bergerak dan breakout level resistance untuk mengatur sinyal beli dan jual untuk perdagangan otomatis. Ketika rata-rata bergerak jangka pendek melintasi rata-rata bergerak jangka menengah dari bawah, dan harga saham menembus level resistance, sinyal beli dihasilkan. Strategi ini menetapkan take-profit pada kenaikan harga 15% dan stop-loss pada penurunan harga 3% untuk mengendalikan risiko. Strategi perdagangan kuantitatif yang matang ini dapat secara otomatis mengidentifikasi tren pasar dan masuk ke posisi ketika sinyal teknis muncul, dengan manajemen risiko yang tepat.
Strategi menghasilkan sinyal perdagangan terutama berdasarkan indikator dan penilaian teknis berikut:
Teknik crossover rata-rata bergerak: rata-rata bergerak sederhana 20 hari dan 44 hari dihitung. Ketika SMA 20 hari melintasi garis 44 hari, dinilai bahwa pasar berada dalam tren naik, menghasilkan sinyal beli.
Teknik Breakout Resistance Level: Tingkat harga yang telah berkali-kali dicapai oleh harga saham tetapi gagal untuk menerobos disebut level resistance. Menembus mereka menunjukkan harga memasuki tren naik baru. Strategi ini menganggap penembusan di atas 0,7% dari penutupan sebelumnya sebagai penembusan resistance.
RSI Oscillator: Relative Strength Index, indikator momentum untuk mengidentifikasi kondisi overbought dan oversold.
Analisis volume: Volume yang melebihi rata-rata 10 hari terakhir seringkali menunjukkan minat pembelian atau penjualan yang lebih kuat dan momentum dalam pergerakan harga.
Sinyal beli: Dimulai ketika SMA pendek melintasi SMA menengah, dengan nilai RSI yang terlalu banyak dibeli dan volume perdagangan yang lebih tinggi dari rata-rata, menunjukkan tren naik.
Sinyal jual: 15% mengambil keuntungan dari harga masuk, 3% stop loss.
Strategi perdagangan kuantitatif yang matang ini mengintegrasikan beberapa metode analisis teknis untuk mengidentifikasi struktur pasar dan tren, secara otomatis menghasilkan sinyal perdagangan selama pembentukan tren, dengan manajemen risiko yang tepat.
Menangkap tren pasar dengan lancar dengan teknik rata-rata bergerak.
Menghindari posisi pembukaan selama breakout palsu dengan menggabungkan analisis volume.
Pengendalian risiko yang efektif dengan menetapkan stop-loss dan take-profit, mengoptimalkan rasio risiko-manfaat.
Secara keseluruhan penilaian struktur pasar yang sangat baik, aturan perdagangan yang ketat dan pengendalian risiko membuat ini menjadi strategi perdagangan kuantitatif yang kuat.
Sistem rata-rata bergerak ganda dapat sensitif terhadap pengaturan parameter untuk periode yang berbeda.
Sistem yang mengikuti tren tidak dapat merespon dengan cepat terhadap peristiwa fundamental yang tiba-tiba, menghadapi risiko stop loss.
Meskipun dengan stop loss yang diatur, frekuensi perdagangan yang tinggi mengarah pada jumlah eksekusi stop loss yang tak terelakkan, menghasilkan tingkat keuntungan yang tidak merata.
Sinyal dari indikator teknis sering tertinggal dari titik pembalikan pasar terbaik.
Optimalkan parameter seperti panjang rata-rata bergerak, target stop loss / profit dengan metode penyesuaian parameter untuk menemukan yang optimal.
Tambahkan indikator teknis lainnya seperti Bollinger Bands untuk deteksi kisaran, MACD untuk menemukan divergensi dll untuk meningkatkan akurasi sinyal.
Menggabungkan sinyal fundamental dan event-driven untuk menghindari stop loss yang dipicu oleh berita negatif.
Mengoptimalkan pengelolaan uang dengan kuantitas tetap, metode persentase tetap untuk mengendalikan risiko per perdagangan.
Strategi ini menunjukkan operasi yang lancar, penilaian yang akurat dan aturan perdagangan yang ketat, mewakili salah satu teknik perdagangan kuantitatif yang lebih efektif. Tetapi analisis teknis saja memiliki keterbatasan dalam membaca pasar, sehingga peningkatan lebih lanjut terletak pada menggabungkan lebih banyak indikator dan sinyal fundamental / acara, mengoptimalkan tingkat stop loss / profit taking dan mekanisme manajemen uang. Singkatnya, strategi ini telah mencapai tingkat tinggi di antara strategi analisis teknis, tetapi harus menuju strategi perdagangan siklus fundamental / acara yang didorong dalam langkah-langkah evolusi berikutnya.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Advanced Strategy with Conditional Stop Loss", overlay=true) // Parameters ma_length_20 = 20 ma_length_44 = 44 ma_length_100 = 100 rsi_length = 14 volume_length = 10 profit_target = 1.15 // 15% above the buy price stop_loss_target = 0.97 // 3% below the buy price wait_candles = 10 // Number of candles to wait after selling, unless MA cross condition met // Indicators moving_average_20 = ta.sma(close, ma_length_20) moving_average_44 = ta.sma(close, ma_length_44) moving_average_100 = ta.sma(close, ma_length_100) rsi = ta.rsi(close, rsi_length) volumeAvg = ta.sma(volume, volume_length) // Variables to manage the wait period after a sell var int last_sell_candle = 0 // Update last sell candle if (strategy.position_size[1] > 0 and strategy.position_size == 0) last_sell_candle := bar_index // Trend identification uptrend = close > moving_average_20 above_ma20_by_1_percent = close > moving_average_20 * 1.01 ma_cross = ta.crossover(moving_average_20, moving_average_44) or ta.crossunder(moving_average_20, moving_average_44) close_near_high = (close >= high * 0.993) and (close <= high) // Buy condition (only in uptrend, above 1% from 20-day MA, and respecting new filter) can_buy_after_cross = ma_cross and close > high[1] can_buy_after_wait = (bar_index - last_sell_candle) > wait_candles buy_condition = (can_buy_after_cross or can_buy_after_wait) and uptrend and above_ma20_by_1_percent and close > moving_average_44 and close > moving_average_100 and close > high[1] and rsi > 50 and volume > volumeAvg and not close_near_high // Entry if (buy_condition and strategy.position_size == 0) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.position_size > 0) // Profit target profit_level = strategy.position_avg_price * profit_target strategy.exit("Take Profit", "Buy", limit=profit_level) // Dynamic Stop Loss - Check on every bar if the price has dropped 3% below the buy price stop_loss_level = strategy.position_avg_price * stop_loss_target if (low < stop_loss_level) strategy.close("Buy", comment="Stop Loss") // Plotting plot(moving_average_20, color=color.green, title="20-Day Moving Average") plot(moving_average_44, color=color.blue, title="44-Day Moving Average") plot(moving_average_100, color=color.red, title="100-Day Moving Average")