Tren Mengikuti Strategi

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

Gambaran umum

Noro's trend following strategy adalah strategi trading trend sederhana yang didasarkan pada saluran harga, RSI dan filter body. strategi ini mengidentifikasi tren keseluruhan menggunakan saluran harga, masuk berdasarkan tingkat overbought/oversold RSI, dan menggunakan filter body untuk konfirmasi sinyal tambahan. strategi ini cocok untuk instrumen tren seperti indeks dan forex.

Logika Strategi

Aspek utama adalah:

  1. Saluran harga menentukan tren keseluruhan. Saluran yang terbentuk dengan melihat kembali tinggi/rendah menentukan tren naik/turun.

  2. RSI menunjukkan overbought/oversold untuk waktu masuk. RSI di atas 60 adalah overbought, di bawah 40 adalah oversold zone.

  3. Filter tubuh memberikan sinyal akhir. Perdagangan hanya jika tubuh lilin melebihi ambang untuk menghindari kebisingan.

  4. Entri berdasarkan kombinasi tren, sinyal RSI dan filter tubuh. Entri panjang dalam tren naik pada sinyal bullish, entri pendek dalam tren turun pada sinyal bearish.

  5. Warna latar belakang opsional dengan jelas memvisualisasikan tren.

  6. Kerangka waktu perdagangan yang dapat disesuaikan untuk melakukan perdagangan secara selektif.

Beberapa indikator selaras untuk menciptakan tren yang relatif stabil mengikuti sistem.

Keuntungan

Keuntungan utama adalah:

  1. Saluran harga secara intuitif mengidentifikasi arah tren keseluruhan.

  2. RSI secara efektif mendeteksi tingkat overbought / oversold untuk entri waktu.

  3. Filter tubuh meningkatkan kualitas sinyal dan menghindari sinyal palsu.

  4. Konfirmasi multi-indikator meningkatkan akurasi.

  5. Indikator sederhana mengurangi risiko penyesuaian kurva.

  6. Kerangka waktu perdagangan yang dapat disesuaikan menambah fleksibilitas.

  7. Mudah digunakan dengan parameter minimal.

  8. Warna latar belakang memberikan kejelasan visual.

Risiko

Beberapa risiko yang perlu dipertimbangkan:

  1. Risiko kesalahan identifikasi tren saluran harga.

  2. Risiko sinyal RSI yang tidak akurat.

  3. Filter tubuh menghilangkan sinyal yang valid.

  4. Risiko penarikan selama koreksi tren.

  5. Risiko optimasi dari pengaturan parameter yang buruk.

  6. Risiko ukuran posisi dari alokasi penuh default.

  7. Risiko pilihan instrumen jika diterapkan pada aset non-trending.

  8. Risiko jangka waktu perdagangan jika tidak dikonfigurasi dengan benar.

Peluang Peningkatan

Beberapa kemungkinan peningkatan:

  1. Tambahkan strategi stop loss untuk mengendalikan kerugian per perdagangan.

  2. Mengoptimalkan parameter berdasarkan perilaku instrumen.

  3. Masukkan aturan ukuran posisi berdasarkan kekuatan tren.

  4. Menerapkan batas penarikan untuk menahan kerugian.

  5. Tambahkan analisis harga volume untuk verifikasi sinyal.

  6. Memperkenalkan pembelajaran mesin untuk optimasi parameter.

  7. Parameter khusus berdasarkan kelas aset.

  8. Memperbaiki logika jangka waktu perdagangan untuk fleksibilitas yang lebih besar.

Kesimpulan

Noro's trend following strategy mengintegrasikan saluran harga, RSI dan filter tubuh ke dalam sistem perdagangan tren yang sederhana dan praktis. Ini dapat berdagang sepanjang tren dan menghindari perdagangan kontra-tren. Dengan optimasi parameter, kontrol risiko dan perbaikan lainnya, strategi ini berpotensi menjadi strategi perdagangan tren yang konsisten menguntungkan.


/*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 banyak