Strategi Mengikuti Trend Purata Pergerakan Saluran Dinamik


Tarikh penciptaan: 2024-02-22 15:51:48 Akhirnya diubah suai: 2024-02-22 15:51:48
Salin: 0 Bilangan klik: 577
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Purata Pergerakan Saluran Dinamik

Gambaran keseluruhan

Strategi ini dicipta berdasarkan prinsip trend-tracking di saluran dinamik dan garis rata. Ia mengira saluran dinamik harga, menentukan arah trend harga melalui saluran naik dan turun, digabungkan dengan dispersi harga gelombang garis rata, menghasilkan isyarat perdagangan.

Prinsip

Strategi ini berdasarkan kepada prinsip-prinsip berikut:

  1. Hitung saluran harga dinamik. Garis tengah saluran dikira melalui harga tertinggi dan terendah, saluran atas adalah garis tengah + garis purata harga yang tidak rata, saluran bawah adalah garis tengah - garis purata harga yang tidak rata.

  2. Menentukan arah trend. Ditetapkan sebagai bullish apabila harga naik ke atas dan turun apabila harga turun ke bawah.

  3. Suara gelombang serpihan. Suara yang dihasilkan oleh turun naik harga serpihan secara rawak menggunakan purata harga serpihan untuk tempoh tertentu.

  4. Menjana isyarat perdagangan. Apabila bullish, menghasilkan isyarat beli apabila harga penutupan kitaran lebih rendah daripada harga pembukaan; apabila bearish, menghasilkan isyarat jual apabila harga penutupan kitaran lebih tinggi daripada harga pembukaan.

Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Ia juga boleh digunakan untuk menjejaki aliran harga dalam masa nyata.
  2. Penapisan linear dapat mengurangkan isyarat palsu.
  3. Mencipta isyarat dagangan yang digabungkan dengan arah trend dan arah entiti K-Line, untuk mengelakkan terikat.

Risiko

Strategi ini juga mempunyai risiko:

  1. Param yang tidak betul boleh menyebabkan pengoptimuman yang berlebihan;
  2. Ia boleh menyebabkan isyarat yang salah semasa menyusun cakera.
  3. Tidak dapat meramalkan turun naik harga.

Penyelesaian:

  1. Params yang ketat dalam pemilihan dan ujian;
  2. Menambah syarat penapisan untuk mengenal pasti dan menyusun cakera gempa.
  3. Tetapkan Stop Loss Stop dan Kawal Risiko

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Uji kestabilan parameter kitaran yang berbeza;
  2. Meningkatkan kefahaman dalam VOLUME atau Indeks Volatiliti;
  3. Mengambil kira masuk dan keluar dengan menggunakan rangkaian gelombang, saluran dan sebagainya.

ringkaskan

Strategi ini mengintegrasikan idea-idea yang dinamika saluran dan penilaian trend linear, yang berfungsi dengan baik dalam menangkap arah trend dalam garis pendek dan tengah. Tetapi terdapat juga batasan tertentu, yang memerlukan ujian lanjut dan pengoptimuman untuk menyesuaikan diri dengan lebih banyak keadaan pasaran.

Kod sumber strategi
/*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=2
strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Color")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//up =  and trend == 1 ? 1 : 0
//dn =  and trend == -1 ? 1 : 0 

up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0
dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0 

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)