Trend Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-09-25 17:50:11
Tag:

Ringkasan

Noro's trend following strategy adalah strategi perdagangan trend yang mudah berdasarkan saluran harga, RSI dan penapis badan. Ia mengenal pasti trend keseluruhan menggunakan saluran harga, memasuki berdasarkan tahap overbought / oversold RSI, dan menggunakan penapis badan untuk pengesahan isyarat tambahan. Strategi ini sesuai dengan instrumen trend seperti indeks dan forex.

Logika Strategi

Aspek utama ialah:

  1. Saluran harga menentukan trend keseluruhan. Saluran yang terbentuk dengan melihat ke belakang tinggi / rendah menentukan trend naik / turun.

  2. RSI menunjukkan overbought / oversold untuk masa kemasukan. RSI di atas 60 adalah overbought, di bawah 40 adalah zon oversold.

  3. Penapis badan memberikan isyarat akhir. Perdagangan hanya jika badan lilin melebihi ambang untuk mengelakkan bunyi bising.

  4. Entri berdasarkan gabungan trend, isyarat RSI dan penapis badan. entri panjang dalam trend menaik pada isyarat kenaikan, entri pendek dalam trend menurun pada isyarat penurunan.

  5. Warna latar belakang pilihan dengan jelas memvisualisasikan trend.

  6. Jangka masa perdagangan yang boleh disesuaikan untuk perdagangan secara selektif.

Pelbagai penunjuk sejajar untuk mewujudkan trend yang agak stabil mengikut sistem.

Kelebihan

Kelebihan utama ialah:

  1. Saluran harga secara intuitif mengenal pasti arah trend keseluruhan.

  2. RSI secara berkesan mengesan tahap overbought / oversold untuk kemasukan masa.

  3. Penapis badan meningkatkan kualiti isyarat dan mengelakkan isyarat palsu.

  4. Pengesahan pelbagai penunjuk meningkatkan ketepatan.

  5. Penunjuk mudah mengurangkan risiko pemasangan lengkung.

  6. Rangka masa perdagangan yang boleh disesuaikan menambah fleksibiliti.

  7. Mudah digunakan dengan parameter minimum.

  8. Warna latar belakang memberikan kejelasan visual.

Risiko

Beberapa risiko yang perlu dipertimbangkan:

  1. Risiko salah mengenal pasti trend saluran harga.

  2. Risiko isyarat RSI yang tidak tepat.

  3. Penapis badan menghapuskan isyarat yang sah.

  4. Risiko pengurangan semasa pembetulan trend.

  5. Risiko pengoptimuman daripada penyesuaian parameter yang buruk.

  6. Risiko saiz kedudukan daripada peruntukan penuh lalai.

  7. Risiko pemilihan instrumen jika digunakan pada aset bukan trend.

  8. Risiko jangka masa perdagangan jika dikonfigurasi dengan tidak betul.

Peluang Peningkatan

Beberapa kemungkinan peningkatan:

  1. Tambah strategi stop loss untuk mengawal kerugian setiap perdagangan.

  2. Mengoptimumkan parameter berdasarkan tingkah laku instrumen.

  3. Menggabungkan peraturan saiz kedudukan berdasarkan kekuatan trend.

  4. Melaksanakan had pengeluaran untuk menahan kerugian.

  5. Tambah analisis harga jumlah untuk pengesahan isyarat.

  6. Memperkenalkan pembelajaran mesin untuk pengoptimuman parameter

  7. Mengkhususkan parameter berdasarkan kelas aset.

  8. Memperbaiki logik jangka masa perdagangan untuk lebih fleksibiliti.

Kesimpulan

Noro's trend following strategy mengintegrasikan saluran harga, RSI dan penapis badan ke dalam sistem perdagangan trend yang mudah dan praktikal. Ia boleh berdagang mengikut trend dan mengelakkan perdagangan kontra-trend. Dengan pengoptimuman parameter, kawalan risiko dan penambahbaikan lain, strategi ini berpotensi menjadi strategi perdagangan trend yang menguntungkan secara konsisten.


/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's TrendMaster Strategy v1.0", shorttitle = "TrendMaster str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "long")
needshort = input(true, defval = true, title = "short")
len = input(21, defval = 20, minval = 2, maxval = 200, title = "MA Period")
needbg = input(false, defval = false, title = "Need trend Background?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

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

//Trend
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend[1]

//Bars
bar = close > open ? 1 : close < open ? -1 : 0

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2

//Signals
up1 = trend == 1 and rsi < 60 and (strategy.position_avg_price > close or strategy.position_size <= 0) and body
dn1 = trend == -1 and rsi > 40 and (strategy.position_avg_price < close or strategy.position_size >= 0) and body

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "MA")

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

//Trading

if up1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

Lebih lanjut