Strategi Stop Trailing Trailing yang Dinamis

Penulis:ChaoZhang, Tanggal: 2024-02-26 11:13:17
Tag:

img

Gambaran umum

Ini adalah strategi stop trailing dinamis berdasarkan garis EMA ganda. Ini menggunakan EMA 9 hari dan 20 hari untuk menentukan arah tren pasar, dikombinasikan dengan indikator RSI untuk menyaring pemutusan palsu. Ini juga menggunakan indikator ATR untuk menghitung stop loss dinamis dan mengambil tingkat keuntungan. Strategi ini cocok untuk kepemilikan jangka menengah hingga panjang.

Logika Strategi

Strategi ini menggunakan EMA 9 hari sebagai garis jangka pendek dan EMA 20 hari sebagai garis jangka menengah untuk menentukan tren harga. Ini pergi panjang ketika harga melintasi di atas garis jangka pendek dan harga penutupan lebih tinggi dari hari sebelumnya, dengan RSI lebih rendah dari 70 dan menutup lebih tinggi dari EMA 20 hari dikurangi 1 ATR. Ini pergi pendek ketika harga melintasi di bawah garis jangka pendek dan harga penutupan lebih rendah dari hari sebelumnya, dengan RSI lebih tinggi dari 30 dan menutup lebih tinggi dari EMA 20 hari dikurangi 1 ATR.

Stop loss ditetapkan pada harga penutupan dikurangi 1,5 kali ATR. Take profit ditetapkan pada harga penutupan ditambah ATR dikalikan dengan koefisien take profit.

Analisis Keuntungan

  1. Menggunakan EMA ganda untuk menentukan tren pasar utama, menghindari tekanan oleh kebisingan
  2. Menggabungkan indikator RSI untuk menyaring pemutusan palsu, meningkatkan akurasi entri
  3. Stop loss dan take profit dinamis beradaptasi dengan volatilitas pasar
  4. Stop loss mengikuti tren memaksimalkan keuntungan

Analisis Risiko

  1. Garis EMA memiliki efek keterlambatan, mungkin kehilangan peluang jangka pendek
  2. Pengaturan parameter RSI yang tidak benar dapat kehilangan entri
  3. Rasio stop loss/take profit yang tidak tepat mungkin terlalu longgar atau ketat
  4. Stop loss dapat ditembus selama perubahan pasar yang keras

Arahan Optimasi

  1. Uji kombinasi EMA yang berbeda untuk menemukan parameter optimal
  2. Mengoptimalkan parameter RSI untuk menyeimbangkan akurasi masuk dan kesempatan menangkap
  3. Uji rasio stop loss/take profit yang berbeda untuk menemukan konfigurasi yang optimal
  4. Tambahkan lebih banyak kondisi filter untuk mengurangi kemungkinan penetrasi stop loss

Ringkasan

Secara keseluruhan, ini adalah strategi kepemilikan jangka menengah hingga panjang yang relatif stabil. Ini menggunakan EMA ganda untuk menentukan tren pasar utama, menghindari terpengaruh oleh kebisingan jangka pendek. Penambahan RSI juga menyaring pemutusan palsu sampai batas tertentu. Selain itu, mekanisme stop loss / take profit dinamis memungkinkan strategi untuk menyesuaikan berdasarkan volatilitas pasar. Namun, masih ada risiko seperti ketinggalan rata-rata bergerak dan potensi penetrasi stop loss. Kita perlu menemukan konfigurasi optimal melalui penyetelan parameter dan optimalisasi selama aplikasi praktis.


/*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)


Lebih banyak