Strategi stop loss berdasarkan rata-rata pergerakan ganda yang dinamis


Tanggal Pembuatan: 2024-02-26 11:13:17 Akhirnya memodifikasi: 2024-02-26 11:13:17
menyalin: 0 Jumlah klik: 594
1
fokus pada
1617
Pengikut

Strategi stop loss berdasarkan rata-rata pergerakan ganda yang dinamis

Ringkasan

Strategi ini adalah strategi tracking stop loss yang dinamis berdasarkan dua garis rata-rata EMA. Strategi ini menggunakan garis 9, 20 untuk menentukan arah tren pasar, digabungkan dengan RSI untuk memfilter false breakout. Strategi ini juga digunakan untuk menghitung stop loss dan stop loss yang dinamis dengan menggunakan indikator ATR.

Prinsip Strategi

Strategi ini menggunakan EMA 9 hari sebagai rata-rata jangka pendek, dan EMA 20 hari sebagai rata-rata jangka menengah, untuk menentukan tren harga. Bila harga naik melewati rata-rata jangka pendek, dan harga menutup lebih tinggi dari harga tertinggi hari sebelumnya, sementara RSI lebih tinggi dari 30, maka melakukan over; Bila harga turun melewati rata-rata jangka pendek, dan harga menutup lebih rendah dari harga terendah hari sebelumnya, sementara RSI lebih rendah dari 70, maka melakukan over.

Stop loss ditetapkan sebagai harga penutupan dikurangi 1,5 kali nilai ATR, stop loss ditetapkan sebagai harga penutupan ditambah nilai ATR dikali faktor stop. Pada saat yang sama menggunakan 2 kali ATR untuk mengatur trend tracking stop loss.

Keunggulan Strategis

  1. Menggunakan EMA ganda untuk menilai tren utama pasar dan menghindari kebisingan
  2. Kombinasi RSI dengan filter false breakout untuk meningkatkan akurasi entry
  3. Stop loss yang dapat disesuaikan dengan volatilitas pasar
  4. Mengikuti tren, menghentikan kerugian, dan memaksimalkan keuntungan

Analisis risiko

  1. EMA rata-rata memiliki keterlambatan dan kemungkinan kehilangan peluang jangka pendek
  2. RSI parameter yang tidak tepat dapat menyebabkan kehilangan kesempatan masuk
  3. Rasio stop loss yang tidak tepat, mungkin terlalu longgar atau terlalu ketat
  4. Stop loss dapat dihancurkan jika terjadi lonjakan besar.

Arah optimasi

  1. Uji kombinasi EMA dari parameter yang berbeda untuk menemukan parameter yang optimal
  2. Mengoptimalkan parameter RSI, menyeimbangkan hubungan antara keakuratan entry dan peluang
  3. Uji berbagai stop-loss ratio untuk menemukan konfigurasi optimal
  4. Menambahkan kondisi penyaringan yang lebih banyak untuk mengurangi probabilitas terobosan stop loss

Meringkaskan

Strategi ini secara keseluruhan merupakan strategi memegang posisi garis tengah dan panjang yang lebih stabil. Strategi ini menggabungkan penilaian dua EMA terhadap tren utama pasar untuk menghindari keputusan yang dipengaruhi oleh kebisingan pasar jangka pendek. Penambahan indikator RSI juga memfilter kebocoran palsu hingga batas tertentu. Selain itu, mekanisme stop loss yang dinamis juga memungkinkan strategi ini untuk menyesuaikan level stop lossnya sendiri sesuai dengan tingkat fluktuasi pasar.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("CJTrade", overlay=true)

short = ema(close, 9)
medium = ema(close, 20)
long = ema(close, 50)
very_long = ema(close, 200)

plot(short, color=color.gray, linewidth=1)
plot(medium, color=color.red, linewidth=1)
plot(long, color=color.black, linewidth=1)
plot(very_long, color=color.blue, linewidth=1)

rsiValue = rsi(close, 14)

near20EMA = close > medium - atr(14)

longCond = crossover(close[1], short) and close >= high[1] and rsiValue < 70 and near20EMA
shortCond = crossunder(close[1], short) and close <= low[1] and rsiValue > 30 and near20EMA

strategy.entry("Long", strategy.long, when=longCond)
strategy.entry("Short", strategy.short, when=shortCond)

atrValue = atr(14)
stopLossLevel = close - atrValue * 1.5

// Dynamic take profit level based on ATR
takeProfitMultiplier = input(2, title="Take Profit Multiplier", minval=0.1, maxval=10, step=0.1)
takeProfitLevel = close + atrValue * takeProfitMultiplier

// Trailing stop loss for long positions
longTrailingStop = close - atrValue * 2
strategy.exit("LongTrailingStop", from_entry="Long", loss=longTrailingStop)

// Trailing stop loss for short positions
shortTrailingStop = close + atrValue * 2
strategy.exit("ShortTrailingStop", from_entry="Short", loss=shortTrailingStop)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)