Strategi RSI berlapis diagonal multi timeframe

Penulis:ChaoZhang, Tanggal: 2023-09-28 16:12:25
Tag:

Gambaran umum

Strategi ini adalah strategi RSI multi-timeframe non-repainting yang hanya berjalan lama ketika dua timeframe yang lebih tinggi oversold. Saya menulisnya pada BTC/USD 1 menit, tetapi logika harus bekerja pada aset lain juga.

Prinsip

Diagonal layering mengacu pada kondisi masuk dan keluar yang tersebar di berbagai kerangka waktu. Biasanya, indikator dapat menjadi tidak menguntungkan karena dalam downtrends, zona overbought dari kerangka waktu saat ini tidak tercapai. Sebaliknya, zona overbought dari kerangka waktu yang lebih tinggi tercapai terlebih dahulu, diikuti oleh pullback. Strategi berlapis diagonal mengurangi hal ini dengan menjual secara diagonal, yaitu, menjual setelah kerangka waktu yang lebih cepat mencapai overbought dan membeli setelah kerangka waktu yang lebih lambat mencapai overbought.

Dengan demikian strategi ini berlapis diagonal. Saya dapat membuat skrip terpisah yang beralih antara diagonal-up dan diagonal-down berdasarkan tren keseluruhan, karena dalam periode uptrend yang diperpanjang indikator ini mungkin tidak berkedip sering. Ini dapat dilihat pada grafik rentang waktu x timeframe sebagai bentuk X. Sesuatu yang perlu dipertimbangkan...

Keuntungan

  • Menggunakan indikator RSI di beberapa kerangka waktu, meningkatkan keandalan sinyal
  • Diagonal layering memberikan lebih banyak kesempatan dalam downtrends
  • Indikator non-repainting memberikan sinyal yang andal
  • Parameter RSI yang dapat dikonfigurasi dan tingkat overbought/oversold beradaptasi dengan pasar yang berbeda
  • Mempertimbangkan biaya perdagangan, menargetkan keuntungan yang stabil atas perdagangan frekuensi tinggi

Risiko dan Solusi

  • RSI rentan terhadap sinyal palsu, mengubah parameter atau menambahkan filter
  • Diagonal layering meningkatkan kesulitan masuk, mengurangi timeframe berlapis
  • Hanya panjang, terkena risiko arah, pertimbangkan untuk menyeimbangkan panjang/pendek
  • Menggunakan stop loss tetap untuk mengendalikan kerugian per perdagangan

Arahan Optimasi

  • Tambahkan deteksi tren, gunakan lapisan diagonal dalam tren menurun, diagonal-up dalam tren naik
  • Mengoptimalkan parameter RSI untuk menemukan kombinasi terbaik
  • Tambahkan volume, MA dll filter untuk meningkatkan kualitas sinyal
  • Tambahkan strategi pendek sehingga strategi dapat menguntungkan di semua pasar
  • Optimalkan stop loss untuk mengurangi drawdown

Ringkasan

Secara keseluruhan ini adalah strategi trading downtrend yang sangat efektif. Menggunakan multi-timeframe RSI dan diagonal layering memberikan kesempatan untuk menangkap bouncing dalam downtrends. Non-repainting juga meningkatkan keandalan sinyal. Dengan optimasi parameter, menambahkan filter dan strategi pendek, dapat dibuat menjadi strategi yang kuat untuk pasar manapun.


/*backtest
start: 2022-09-21 00:00:00
end: 2023-06-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("MTF Layered RSI - Bitcoin Bot [wbburgin]",overlay=false, pyramiding = 20, initial_capital=10000)

length = input.int(7,"RSI Length")
tf2 = input.timeframe("3",title="HT 1")
tf3 = input.timeframe("5",title="HT 2")
ob = input.int(80,"Overbought Level")
os = input.int(20,"Oversold Level")

rsi = ta.rsi(close,length)
rsi2 = request.security(syminfo.tickerid, tf2, rsi[1], barmerge.gaps_off, lookahead=barmerge.lookahead_on)
rsi3 = request.security(syminfo.tickerid, tf3, rsi[1], barmerge.gaps_off, lookahead=barmerge.lookahead_on)

plot(rsi,color=color.yellow,title="RSI Current TF")
plot(rsi2,color=color.new(color.yellow,50),title="RSI HT1")
plot(rsi3,color=color.new(color.yellow,75),title="RSI HT2")

lm=hline(os,title="Oversold")
hm=hline(ob,title="Overbought")

fill(hm,lm,color=color.new(color.blue,95))

htCross = (ta.crossover(rsi2,os) and rsi3>os and rsi>os) or (ta.crossover(rsi3,os) and rsi2>os and rsi>os)
buySig = (ta.crossover(rsi,os) and rsi2 < os and rsi3 < os) or htCross
sellSig = ta.crossunder(rsi,ob)

if buySig
    strategy.entry("Long",strategy.long)
if sellSig
    strategy.close("Long")

plotshape(buySig,title="Buysig",style=shape.triangleup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(sellSig,title="Sellsig",style=shape.triangledown,location=location.top,color=color.red,size=size.tiny)

Lebih banyak