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.
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.
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)