Trend Following Long Only Strategy adalah strategi yang melacak tren harga menggunakan rata-rata bergerak dinamis. Strategi ini menentukan tren saat ini dengan menghitung rata-rata bergerak harga tertinggi dan terendah selama periode dan menggabungkannya dengan ATR untuk stop loss dan take profit dinamis.
Strategi ini pertama-tama menghitung rata-rata bergerak harga tertinggi dan terendah selama periode (default 200 hari) dan mengambil titik tengahnya sebagai garis dasar. Kemudian mengukur penyimpangan harga dari garis dasar. Jika harga di atas garis dasar sebesar 1 ATR (0,5 kali 10 hari ATR secara default), itu dianggap sebagai tren naik. Jika harga di bawah garis dasar sebesar 1 ATR, itu dianggap sebagai tren menurun. Posisi panjang atau pendek dimasukkan berdasarkan keadaan tren.
Ketika harga kembali ke garis dasar, sinyal keluar dipicu. Juga, ATR dinamis memungkinkan stop loss dan take profit untuk mengikuti tren utama, menghindari over-trading pada fluktuasi kecil.
Risiko dapat dikurangi dengan mengubah parameter ATR, menambahkan filter untuk pengaturan probabilitas tinggi, dan mengevaluasi kondisi pasar dan nafsu risiko.
Trend Following Long Only Strategy adalah sistem perdagangan tren yang mudah digunakan secara keseluruhan. Ini mengidentifikasi arah tren menggunakan rata-rata dinamis dan mengatur kontrol risiko dengan stop berbasis ATR. Ini dapat secara efektif menangkap perubahan menguntungkan di pasar tren. Pasar yang bervariasi harus dihindari untuk mencegah whipsaws. Peningkatan lebih lanjut dapat dilakukan melalui penyesuaian parameter, menambahkan filter dan mengintegrasikan teknik pembelajaran mesin.
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length") smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length") atr_length = input(10, type=input.integer, minval=1, title="ATR Length") atr_multiplier = input(0.5, type=input.float, minval=0.5, title="ATR Multiplier") vola = atr(atr_length) * atr_multiplier price = sma(close, 3) l = ema(lowest(low, lookback_length), smoother_length) h = ema(highest(high, lookback_length), smoother_length) center = (h + l) * 0.5 upper = center + vola lower = center - vola trend = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3) c = trend < 0 ? upper : lower pcenter = plot(center, transp=100) pclose = plot(close, transp=100) pc = plot(c, transp=100) buy_signal = crossover(trend, 0.0) sell_signal = crossunder(trend, 0.0) strategy.entry("Buy", strategy.long, when=buy_signal) strategy.close("Buy", when=sell_signal) bgcolor(trend >= 0 ? color.green : color.red, transp=95) fill(pc, pclose, color=trend >= 0 ? color.green : color.red)