Trend Following Long Only Strategy adalah strategi yang mengesan trend harga menggunakan purata bergerak dinamik. Ia menentukan trend semasa dengan mengira purata bergerak harga tertinggi dan terendah dalam satu tempoh dan menggabungkannya dengan ATR untuk stop loss dinamik dan mengambil keuntungan. Strategi ini berfungsi dengan baik dalam pasaran trend dengan menangkap pembalikan trend dengan cara yang tepat pada masa untuk memegang jangka panjang.
Strategi ini mula-mula mengira purata bergerak harga tertinggi dan terendah dalam tempoh (default 200 hari) dan mengambil titik tengah mereka sebagai garis asas. Kemudian ia mengukur penyimpangan harga dari garis asas. Jika harga di atas garis asas dengan 1 ATR (0.5 kali 10 hari ATR secara lalai), ia dianggap uptrend. Jika harga di bawah garis asas dengan 1 ATR, ia dianggap downtrend. Posisi panjang atau pendek dimasukkan berdasarkan keadaan trend.
Apabila harga kembali ke garis asas, isyarat keluar dicetuskan. Juga, ATR dinamik membolehkan stop loss dan mengambil keuntungan untuk mengikuti trend utama, mengelakkan perdagangan berlebihan pada turun naik kecil.
Risiko boleh dikurangkan dengan mengubahsuai parameter ATR, menambah penapis untuk persediaan kebarangkalian tinggi, dan menilai keadaan pasaran dan selera risiko.
Trend Following Long Only Strategy adalah sistem perdagangan trend yang mudah digunakan secara keseluruhan. Ia mengenal pasti arah trend menggunakan purata dinamik dan menetapkan kawalan risiko dengan hentian berasaskan ATR. Ia dapat menangkap perubahan yang menguntungkan dalam pasaran trend.
/*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)