RSI ganda dikombinasikan dengan Bollinger Band untuk Trend Following

Penulis:ChaoZhang, Tanggal: 2023-09-19 22:10:02
Tag:

Gambaran umum

Strategi ini menggunakan indikator RSI ganda untuk mengidentifikasi kondisi overbought dan oversold, dikombinasikan dengan breakout Bollinger Band untuk menghasilkan sinyal perdagangan.

Analisis Prinsip

Strategi ini menggunakan dua RSI dengan kerangka waktu yang berbeda untuk menilai status overbought / oversold jangka pendek dan jangka panjang. Sinyal perdagangan hanya dihasilkan ketika kedua RSI mencapai nilai ambang secara bersamaan. Ini menghindari sinyal palsu dari satu RSI.

Bollinger Bands juga digunakan untuk mengidentifikasi price breakout. Hanya ketika kondisi RSI terpenuhi dan harga melanggar Boll Band band atas/bawah sinyal perdagangan akan dihasilkan. Konfirmasi breakout membantu menghindari sinyal di pasar non-trending.

Akhirnya, MAs cepat dan lambat diperiksa untuk arah tren. Perdagangan hanya dibuka ketika breakout sejajar dengan arah sinyal RSI.

Analisis Keuntungan

Penggunaan gabungan dari beberapa indikator membantu menyaring sinyal palsu, hanya memperdagangkan tren yang jelas. MAs cepat / lambat juga memfasilitasi mengikuti tren.

Analisis Risiko

Risiko utama adalah kegagalan untuk segera mengidentifikasi pembalikan tren. pembalikan V yang tajam dapat menyebabkan kerugian yang signifikan tanpa stop loss yang tepat waktu. penyesuaian parameter juga dapat mempengaruhi kinerja.

Saran Optimalisasi

  1. Tambahkan strategi stop loss untuk keluar dengan cepat pada pembalikan.

  2. Sertakan filter lain seperti volume untuk menghindari kebocoran palsu.

  3. Optimalkan parameter untuk menemukan kombinasi terbaik.

  4. Tambahkan model pembelajaran mesin untuk lebih mengidentifikasi rezim pasar.

  5. Meningkatkan manajemen risiko termasuk ukuran posisi, kontrol kerugian.

Kesimpulan

Strategi ini menggabungkan dua RSI dan Bollinger Bands untuk mendapatkan keuntungan dari tren jangka pendek. Meskipun sederhana dan langsung, keterbatasan ada seperti sinyal pembalikan tertunda.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "Madrugada strat copy", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, currency = currency.USD)
 
// === GENERAL INPUTS ===
// RSI 1
RSIlength = input(10,title="RSI") 
RSIoverSold = input(65,title="OSold")
RSIoverBought = input(35,title="OBought")
price = close
vrsi = rsi(price, RSIlength)
// RSI 2
RSIlength2 = input(6,title="RSI2") 
RSIoverSold2 = input(65,title="OSold2")
RSIoverBought2 = input(35,title="OBought2")
price2 = close
vrsi2 = rsi(price2, RSIlength2)

//Bollinger Bands
source = close
Bollinger = input(20, minval=1), Desv = input(1.7, minval=0.001, maxval=50)
basis = sma(source, Bollinger)
dev = Desv * stdev(source, Bollinger)
upper = basis + dev
lower = basis - dev
plot(basis, color=red, title="BB ma")
p1 = plot(upper, color=blue, title="BBajo")
p2 = plot(lower, color=blue, title="BAlto")
fill(p1, p2)

//Media movil
short = input(3, minval=1, title="Media corta")
long = input(10, minval=1, title="Media larga")
src = close
plot(sma(src, short), color=#00FF00, transp=0, linewidth=1, title="Media rapida")
plot(sma(src, long), color=white, transp=0, linewidth=2, title="Media lenta")


// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() => vrsi < 30 and  vrsi2 < 27 and cross(lower, price)
exitLong() => short < long
strategy.entry(id = "Long", long = true, when = enterLong()) // use function or simple condition to decide when to get in
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() => vrsi > 70 and vrsi2 > 70 and cross(upper, price)
strategy.entry(id = "Short", long = false, when = enterShort())


// Definición señales de compra
buy_signals = vrsi < 30 and  vrsi2 < 27 and cross(lower, price)

// Definición señales de venta
sell_signals = vrsi > 70 and vrsi2 > 70 and cross(upper, price)

// Dibuja las señales de compra venta en franjas de color
b_color = (sell_signals) ? color(red,65) : (buy_signals) ? color(green,65) : na
bgcolor(b_color)

// Dibuja las señales de compra venta coloreando las velas
barcolor(buy_signals ? white : sell_signals ? white : na)

plot(vrsi, color=white, linewidth=1)
plot(vrsi, color=white, linewidth=2)

// Crea alarmas usables desde el desplegable para poder enviar mails a haas
alertcondition(buy_signals, title='Buy-Signal', message='compra')
alertcondition(sell_signals, title='Sell-Signal', message='vende')


Lebih banyak