Diese Strategie ist eine Multi-Zeitrahmen-RSI-Strategie, die nur lang geht, wenn zwei höhere Zeitrahmen überverkauft sind. Ich schrieb es auf BTC/USD 1-min, aber die Logik sollte auch auf anderen Vermögenswerten funktionieren. Sie ist so konzipiert, dass sie profitabel ist, wenn sich der Vermögenswert in einem Abwärtstrend befindet.
Diagonale Schichtung bezieht sich auf Einstiegs- und Ausstiegsbedingungen, die sich über verschiedene Zeitrahmen erstrecken. Normalerweise können Indikatoren unrentabel werden, da bei Abwärtstrends die Überkaufzonen des aktuellen Zeitrahmens nicht erreicht werden. Vielmehr werden die Überkaufzonen der höheren Zeitrahmen zuerst erreicht, gefolgt von einem Pullback. Diagonal geschichtete Strategien mildern dies, indem sie diagonal verkaufen, dh verkaufen, sobald der schnellere Zeitrahmen überkauft ist und kaufen, sobald der langsamere Zeitrahmen überverkauft ist.
Daher ist diese Strategie diagonal geschichtet. Ich kann ein separates Skript erstellen, das zwischen diagonal-up und diagonal-down basierend auf dem Gesamttrend wechselt, da in längeren Aufwärtstrendperioden dieser Indikator möglicherweise nicht so häufig blinkt. Dies kann auf einem Zeitreihen-x-Zeitrahmen-Chart als
Insgesamt ist dies eine sehr effektive Abwärtstrend-Handelsstrategie. Die Verwendung von Multi-Timeframe-RSIs und diagonalen Schichten bietet Möglichkeiten, Sprünge in Abwärtstrends zu erfassen. Nicht-Repainting verbessert auch die Signalzuverlässigkeit. Mit Parameteroptimierung, Filtern und einer kurzen Strategie kann es zu einer robusten Strategie für jeden Markt gemacht werden.
/*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)