Diese Strategie ist eine Multi-Time-Frames-Non-RSI-Strategie, die nur bei Überschneidungen zweier höherer Zeiträume ausgeführt wird. Ich habe sie auf der 1-Minuten-Linie für BTC/USD geschrieben, aber die Logik kann auf andere Vermögenswerte angewendet werden.
Die Ansatz- und Ausstiegsbedingungen sind auf unterschiedliche Zeitrahmen verteilt. In der Regel kann der Indikator unrentabel werden, da im Abwärtstrend die Überkaufzone des aktuellen Zeitrahmens nicht berührt wird, sondern zuerst die Überkaufzone eines höheren Zeitrahmens berührt wird, bevor eine Rückrechnung erfolgt. Die Ansatz-Strategie erleichtert dies durch die Ansatz-Strategie, indem sie verkauft wird, wenn der schnellere Zeitrahmen überkauft wird, und gekauft wird, wenn der langsamere Zeitrahmen überkauft wird.
Daher ist diese Strategie diagonal überlagert. Ich könnte ein separates Skript erstellen, das zwischen diagonaler Aufwärts- und diagonaler Abwärtsbewegung wechselt, je nach Gesamttrend, da der Indikator während eines verlängerten Aufwärtstrends möglicherweise nicht häufig blinkt. Dies kann als eine Antenne-X-Antenne in der Zeitreihen- und Zeitrahmengrafik betrachtet werden.
Diese Strategie ist insgesamt eine sehr wirksame Trend-Trading-Strategie für den Abwärtstrend. Die Verwendung von mehreren RSI-Zeitfenstern und einer diagonalen Überlagerung der Eintrittsmethode ermöglicht die Erfassung von Rebound-Gelegenheiten während der Abwärtstrendphase. Die Nicht-Remapping-Funktion erhöht die Reliabilität des Signals.
/*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)