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.
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
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)