Multi-Timeframe diagonal geschichtete RSI-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-09-28 16:12:25
Tags:

Übersicht

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.

Grundsätze

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 X-Form dargestellt werden. Etwas zu beachten...

Vorteile

  • Nutzt RSI-Indikatoren über mehrere Zeitrahmen hinweg, um die Signalzuverlässigkeit zu verbessern
  • Die diagonale Schichtung bietet bei Abwärtstrends mehr Möglichkeiten
  • Die nicht neu gestalteten Indikatoren geben zuverlässige Signale.
  • Konfigurierbare RSI-Parameter und Überkauf-/Überverkaufswerte passen sich unterschiedlichen Märkten an
  • Berücksichtigt die Handelskosten, zielt auf einen stetigen Gewinn gegenüber dem Hochfrequenzhandel ab

Risiken und Lösungen

  • RSI anfällig für falsche Signale, Anpassung von Parametern oder Hinzufügen von Filtern
  • Die diagonale Schichtung erhöht die Eintrittsschwierigkeit, reduziert die Schichtzeiträume
  • Nur lang, geistigem Risiko ausgesetzt, in Betracht ziehen, Long/Short auszugleichen
  • Verwenden Sie einen festen Stop-Loss, um Verluste pro Handel zu kontrollieren

Optimierungsrichtlinien

  • Hinzufügen von Trenddetektion, Verwendung von diagonalen Schichten bei Abwärtstrends, diagonalen Aufwärtstrends
  • Optimieren Sie die RSI-Parameter, um die beste Kombination zu finden
  • Zusatz von Filtern für Lautstärke, MA usw. zur Verbesserung der Signalqualität
  • Hinzufügen kurzer Strategie, so dass die Strategie in allen Märkten profitieren kann
  • Optimierung des Stop Loss zur Verringerung des Drawdowns

Zusammenfassung

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)

Mehr