Strategi penjejakan dinamik panjang dan pendek


Tarikh penciptaan: 2023-10-17 15:55:41 Akhirnya diubah suai: 2023-10-17 15:55:41
Salin: 0 Bilangan klik: 650
1
fokus pada
1617
Pengikut

Strategi penjejakan dinamik panjang dan pendek

Gambaran keseluruhan

Strategi pelacakan dinamik multi ruang adalah strategi yang menggunakan nilai purata dinamik untuk mengesan trend harga. Ia menentukan trend semasa dengan mengira purata bergerak harga tertinggi dan terendah dalam tempoh tertentu, dan digabungkan dengan ATR untuk mencapai stop loss dinamik.

Prinsip Strategi

Strategi ini pertama-tama mengira purata bergerak harga tertinggi dan terendah dalam tempoh tertentu (default 200 hari) dan mengambil titik tengah keduanya sebagai garis asas. Kemudian mengira sejauh mana harga menyimpang dari garis asas, dianggap sebagai tren naik apabila harga lebih tinggi daripada ATR garis asas (default 0.5 kali ATR 10 hari) dan dianggap sebagai tren menurun apabila harga lebih rendah daripada ATR garis asas.

Isyarat Keluar dihasilkan apabila harga kembali ke garis asas. Selain itu, perubahan dinamik ATR dapat membuat stop loss berlarutan mengikut trend besar, sehingga mengurangkan perdagangan terlalu kerap yang disebabkan oleh turun naik bukan trend.

Kelebihan Strategik

  1. Menggunakan purata dinamik untuk menghaluskan data harga dan mengenal pasti arah trend jangka panjang
  2. Stop loss ATR membolehkan stop loss line untuk mengikuti trend secara dinamik dan mengelakkan terlalu sensitif
  3. Menerima perubahan dalam masa yang tepat dan mengurangkan pembaziran wang
  4. Prinsip-prinsip yang mudah difahami dan mudah dilaksanakan

Risiko dan perlindungan

  1. Perdagangan yang mudah salah dalam pasaran yang bergolak
  2. Parameter yang tidak betul mungkin terlewatkan masa pembalikan trend
  3. Mungkin terdapat perbezaan antara pasaran saham dan saham individu, perlu mengambil kira keadaan pasaran saham yang kosong

Anda boleh mengurangkan sensitiviti hentian dengan menyesuaikan parameter ATR dengan betul, atau menyertakan indikator lain untuk memfilter masa perdagangan yang pasti. Anda juga boleh menilai selera risiko dengan menggabungkan pergerakan saham besar, memilih untuk melakukan lebih banyak hanya dalam keadaan saham besar.

Optimum idea

  1. Anda boleh mempertimbangkan untuk melakukan pengesahan kedua melalui penunjuk lain, seperti penunjuk KDJ, selepas isyarat Entry.
  2. Parameter pengoptimuman yang boleh digabungkan dengan keadaan asas saham, seperti saham dengan kadar turun naik yang tinggi dengan julat ATR yang lebih longgar
  3. Anda boleh mengoptimumkan saiz ATR mengikut hasil pengesanan semula, mengimbangi faktor keuntungan dan kadar pertukaran
  4. Pembaikan dinamik yang boleh dipertimbangkan untuk memperkenalkan kadar turun naik dalam mekanisme henti rugi
  5. Parameter boleh dioptimumkan secara automatik melalui teknologi pembelajaran mesin

ringkaskan

Strategi pengesanan dinamik pelbagai ruang secara keseluruhan adalah strategi pengesanan trend yang mudah dan praktikal. Ia menentukan arah trend melalui purata dinamik, dan menggunakan ATR untuk mewujudkan stop loss dinamik, yang dapat mengawal risiko dengan berkesan. Strategi ini sesuai untuk keadaan pasaran yang jelas trend, dengan menangkap perubahan trend tepat pada masanya dapat memperoleh keuntungan tambahan yang disimpan dalam jangka panjang.

Kod sumber strategi
/*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)