Strategi ini adalah strategi perdagangan jangka panjang yang menetapkan stop loss trailing dinamis berdasarkan Simple Moving Average (SMA) dan Average True Range (ATR).
Strategi ini menggunakan SMA 200 untuk menentukan arah tren utama, dan mengatur garis stop loss secara dinamis dengan ATR 14, mewujudkan stop loss trailing yang dinamis. Secara khusus, sinyal beli dipicu ketika harga penutupan menembus SMA 200 ditambah ATR 14. Pemecahan ini berarti pasar saat ini tetap dalam tren kenaikan. Sinyal stop loss dipicu ketika harga penutupan menembus SMA 200 dikurangi ATR 14.
Strategi ini menggabungkan keuntungan dari kedua indikator SMA dan ATR. SMA 200 menyaring kebisingan pasar dan mengunci ke arah tren utama. ATR 14 menetapkan garis stop loss berdasarkan volatilitas dua minggu terakhir, mewujudkan fungsi stop loss trailing yang dinamis. Ini mencapai profitabilitas berkelanjutan dalam tren, sementara juga mengendalikan penarikan secara efektif. Keuntungan keseluruhan adalah:
Rasio laba rugi yang lebih tinggi. Mengikuti tren dan mengendalikan risiko mengarah pada rasio laba rugi yang lebih tinggi.
Pengurangan yang dapat dikontrol. Stop loss dinamis dengan ATR mengurangi dampak dari kejutan pasar sporadis.
Hanya dua parameter menyeimbangkan risiko dan pengembalian, menghindari overfit.
Beberapa risiko dari strategi ini harus diperhatikan:
Risiko pembalikan tren: Strategi itu sendiri tidak dapat mengidentifikasi pembalikan tren, yang dapat menyebabkan kerugian besar jika perubahan tren tiba-tiba muncul.
SMA memiliki beberapa efek keterlambatan yang tidak dapat mencerminkan perubahan tren secara instan.
Risiko parameter ATR. pengaturan parameter ATR yang tidak tepat dapat mempengaruhi kinerja strategi.
Solusi:
Strategi ini dapat dioptimalkan lebih lanjut dari aspek berikut:
Uji kombinasi yang berbeda dari parameter SMA dan ATR untuk menemukan yang optimal.
Tambahkan indikator teknis untuk menilai pembalikan, misalnya MACD.
Mengoptimalkan mekanisme stop loss dengan trailing stop loss, moving stop loss dll.
Gabungkan faktor fundamental untuk menghindari membeli saham dengan fundamental yang lemah.
Strategi ini mengintegrasikan metode pelacakan tren dan manajemen risiko dinamis untuk mengoptimalkan stop loss dan mengambil keuntungan selama periode kepemilikan yang panjang. Strategi ini memiliki rasio keuntungan / kerugian yang tinggi, penarikan yang dapat dikontrol dan profil risiko / pengembalian yang seimbang. Namun, strategi ini juga memiliki beberapa risiko pembalikan tren dan kesulitan dalam pengoptimalan parameter. Secara keseluruhan, strategi sederhana dan efektif ini memberikan ide perdagangan jangka panjang yang layak untuk pengujian lebih lanjut dan optimasi untuk perdagangan kuantitatif.
/*backtest start: 2023-01-30 00:00:00 end: 2024-02-05 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA+ATR Strategie", overlay=true) // Benutzer-Inputs für SMA, ATR und die Anzeigeoption smaLength = input(200, title="SMA Länge") atrLength = input(14, title="ATR Länge") showSMAandATR = input(true, title="Zeige SMA und ATR-Bänder") // Berechnung von SMA und ATR sma = ta.sma(close, smaLength) atr = ta.atr(atrLength) // Kauf- und Verkaufslogik basierend auf SMA und ATR buyCondition = close > sma + atr sellCondition = close < sma - atr // Variable zum Speichern des Eintrittspreises var float entryPrice = na // Kauf- und Verkaufssignale if (buyCondition) strategy.entry("Buy", strategy.long) entryPrice := close // Speichere den Eintrittspreis if (sellCondition) // Nur wenn ein Kauf stattgefunden hat if not na(entryPrice) // Berechne die Performance seit dem Kaufsignal performanceSinceBuy = ((close - entryPrice) / entryPrice) * 100 // Anzeigen der Performance // Wähle die Box-Farbe basierend auf dem Vorzeichen der Performance plColor = performanceSinceBuy >= 0 ? color.green : color.red // Anzeigen der Performance in der entsprechenden Farbe plBox = "P/L: " + str.tostring(performanceSinceBuy, "#.##") + "%" label.new(bar_index, high, text=plBox, color=plColor, textcolor=color.white, style=label.style_label_center, yloc=yloc.price) // Schließe den Trade und setze den Eintrittspreis zurück strategy.close("Buy") entryPrice := na // Optionale Anzeige von SMA und ATR-Band plot(showSMAandATR ? sma : na, color=color.blue, title="SMA 200") plot(showSMAandATR ? sma + atr : na, color=color.green, title="SMA 200 + ATR") plot(showSMAandATR ? sma - atr : na, color=color.red, title="SMA 200 - ATR")