Volatilitas momentum mengikuti strategi


Tanggal Pembuatan: 2023-11-28 16:57:28 Akhirnya memodifikasi: 2023-11-28 16:57:28
menyalin: 1 Jumlah klik: 630
1
fokus pada
1619
Pengikut

Volatilitas momentum mengikuti strategi

Ringkasan

Strategi ini adalah strategi pelacakan pergerakan dinamika yang didasarkan pada Brin-Band. Ini menggabungkan indikator Brin-Band untuk menilai tren pasar dan titik balik, dan melacak pergerakan pasar dengan mengatur posisi kosong.

Prinsip Strategi

Strategi ini terdiri dari rel tengah, rel atas, dan rel bawah. Rel tengah adalah rata-rata bergerak selama n hari, dan rel atas dan bawah masing-masing adalah penyimpangan dari standar deviasi rel tengah. Ketika harga mendekati rel atas dan bawah dianggap sebagai sinyal overbought. Strategi ini menambahkan penyimpangan tren sebagai dasar untuk membangun posisi.

Strategi ini menambahkan posisi tren dan posisi reversal, yang masing-masing sesuai dengan peluang perdagangan yang berbeda. Posisi tren membutuhkan rel tengah sebagai referensi resistensi pendukung, yang membentuk efek penyimpangan terobosan. Posisi reversal terbalik terbentuk secara langsung di dekat rel bawah di atas Brin.

Analisis Keunggulan

Strategi ini menggabungkan karakteristik overbought dan oversold dari Brin Belt, dengan penambahan penilaian titik balik. Hal ini memungkinkan untuk menerapkannya pada pasar tren dan pasar bergolak secara bersamaan, menangkap berbagai jenis peluang perdagangan. Pengaturan Exit Stop Loss dari strategi ini mencegah perluasan kerugian.

Dibandingkan dengan strategi Brin Belt sederhana, strategi ini menambahkan penilaian logis tren yang membuat posisi lebih stabil, sekaligus menangkap peluang untuk berbalik. Hal ini meningkatkan rasio sinyal-kebisingan. Kedua, perdagangan dua arah yang lebih luas juga memanfaatkan peluang perdagangan di berbagai pasar secara lebih komprehensif.

Analisis risiko

Strategi ini terutama bergantung pada karakteristik overbought dan oversold di Bollinger Bands. Oleh karena itu, ketika harga mengalami fluktuasi tajam, interval Bollinger Bands akan terus meningkat, yang dapat menyebabkan banyak kerugian. Ini adalah titik risiko potensial. Selain itu, penilaian terbalik masih memiliki beberapa ketidakpastian dan kesalahan, yang dapat menyebabkan kegagalan posisi dan kerugian.

Untuk kasus kegagalan pita Brin, parameter n hari dapat dipersingkat, membuat pita Brin lebih sensitif. Atau mengurangi rentang amplitudo, mengurangi kemungkinan kerugian. Untuk penilaian kurva pembalikan, dapat mengurangi kesalahan dengan mengoptimalkan parameter untuk terobosan.

Arah optimasi

Strategi ini dapat dioptimalkan dengan beberapa cara:

  1. Parameter Brin Belt dapat disesuaikan dengan pasar yang berbeda untuk menemukan kombinasi parameter terbaik.
  2. Perhitungan amplitudo dan rata-rata deviasi tren dapat menguji opsi lain.
  3. Menambahkan lebih banyak filter untuk menilai sinyal gudang, mengurangi kemungkinan kesalahan penilaian.
  4. Mode lain yang dapat diuji, seperti trail stop dan lainnya.
  5. Parameter dapat disesuaikan untuk varietas dan siklus tertentu.

Meringkaskan

Strategi ini secara efektif memperluas dan mengoptimalkan strategi standar Brin. Penambahan penilaian bias tren meningkatkan stabilitas dan memanfaatkan peluang untuk membalikkan. Pengaturan perdagangan dua arah dan stop loss yang lebih banyak juga membuat strategi lebih kuat.

Kode Sumber Strategi
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, 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")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
if up1 or up2
    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 or dn2
    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) or exit
    strategy.close_all()