Trend Mengikut Strategi Lama Hanya

Penulis:ChaoZhang, Tarikh: 2023-10-17 15:55:41
Tag:

img

Ringkasan

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.

Logika Strategi

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.

Kelebihan

  1. purata dinamik tindakan harga lancar berkesan untuk mengenal pasti hala tuju trend jangka panjang
  2. Hentian berasaskan ATR mengikuti trend utama secara dinamik mengelakkan sensitiviti yang berlebihan
  3. Penangkapan tepat pada masa pembalikan trend mengurangkan pemborosan modal yang tidak tepat pada masanya
  4. Logik yang mudah dilaksanakan

Risiko dan Pengurangan

  1. Boleh menghasilkan isyarat palsu di pasaran yang berbeza
  2. Penyesuaian parameter yang tidak betul mungkin terlepas pembalikan trend
  3. Perbezaan antara pasaran dan stok individu harus dipertimbangkan

Risiko boleh dikurangkan dengan mengubahsuai parameter ATR, menambah penapis untuk persediaan kebarangkalian tinggi, dan menilai keadaan pasaran dan selera risiko.

Idea Peningkatan

  1. Tambah pengesahan sekunder selepas isyarat kemasukan awal menggunakan penunjuk seperti KDJ
  2. Mengoptimumkan parameter berdasarkan turun naik, asas saham individu
  3. Pengganda ATR tune halus berdasarkan backtests untuk mengimbangi faktor keuntungan dan kadar perolehan
  4. Memperkenalkan penyesuaian turun naik dinamik dalam stop loss dan mengambil keuntungan
  5. Menggunakan teknik pembelajaran mesin untuk pengoptimuman parameter automatik

Ringkasan

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)

Lebih lanjut