
Strategi ini adalah strategi perdagangan garis panjang yang berdasarkan pada purata bergerak sederhana (SMA) dan purata kadar turun naik sebenar (ATR) yang ditetapkan secara dinamik untuk menjejaki hentian kerugian. Ia menggabungkan kelebihan trend dan pengurusan risiko untuk mengawal penarikan balik dan memaksimumkan keuntungan.
Apabila harga penutupan melewati SMA 200 hari ditambah ATR 14 hari, masuk lebih banyak. Apabila harga penutupan di bawah melewati SMA 200 hari tolak ATR 14 hari, kedudukan terhenti. Strategi ini menggunakan SMA 200 untuk menentukan arah trend besar, menggunakan ATR untuk menetapkan garis hentian, untuk mencapai hentian yang dinamik. Secara khusus, isyarat beli adalah penutupan penutupan SMA 200 ditambah ATR 14 hari, yang menunjukkan bahawa ia kini berada di tengah-tengah kenaikan.
Strategi ini menggabungkan kelebihan kedua-dua indikator SMA dan ATR. SMA 200 boleh menyaring bunyi pasaran, mengunci arah utama garis panjang; dan ATR 14 hari boleh menetapkan garis hentian berdasarkan turun naik dua minggu terakhir, mencapai kesan hentian hentian dinamik. Ini mewujudkan keuntungan yang berterusan dalam trend, tetapi juga dapat mengawal penarikan balik secara berkesan.
Rasio keuntungan dan kerugian yang tinggi. Berjalan mengikut trend, mengawal risiko kerugian, dan dengan itu mencapai rasio keuntungan dan kerugian yang tinggi.
Pengunduran boleh dikawal. Pengesanan dinamik ATR mengurangkan kesan kejadian yang tidak dijangka, mengawal pengunduran dengan berkesan.
Parameter mudah. Hanya menggunakan dua parameter untuk menyeimbangkan risiko dan faedah, dan mengelakkan pengoptimuman berlebihan.
Strategi ini juga mempunyai beberapa risiko yang perlu diperhatikan.
Risiko trend reversal. Strategi itu sendiri tidak dapat menilai trend reversal, dan jika berlaku perubahan tiba-tiba, ia boleh menyebabkan kerugian yang lebih besar.
Risiko kelewatan SMA. SMA mempunyai ketinggalan dan tidak dapat mencerminkan perubahan trend dengan segera.
Seting parameter ATR berisiko. Seting parameter ATR terlalu besar atau terlalu kecil akan mempengaruhi prestasi strategi.
Penyelesaian:
Strategi ini juga boleh dioptimumkan dalam beberapa aspek:
Uji kombinasi parameter SMA dan ATR yang berbeza untuk mencari parameter terbaik.
Menambah penyesuaian penilaian lain, seperti MACD.
Mengoptimumkan mekanisme penangguhan kerugian, seperti penangguhan perubahan, penangguhan bergerak dan sebagainya.
Berkongsi dengan indeks asas saham untuk mengelakkan membeli saham yang tidak menjanjikan kenaikan.
Strategi ini mengintegrasikan kaedah pengesanan trend dan pengurusan risiko dinamik, mencapai pengoptimuman berhenti dan hentikan kerugian semasa memegang garis panjang. Ia mempunyai ciri-ciri rasio kerugian yang tinggi, penarikan balik yang terkawal, keseimbangan risiko dan keuntungan. Tetapi terdapat juga risiko pembalikan trend dan kesukaran pengoptimuman parameter. Secara keseluruhannya, strategi ini dapat menyediakan perdagangan kuantitatif dengan pemikiran perdagangan garis panjang yang mudah dan berkesan, yang bernilai ujian dan pengoptimuman lebih lanjut.
/*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")