Diese Strategie implementiert eine einfache Schwellenhandelsstrategie, die auf dem Relative Strength Index (RSI) basiert. Sie kauft, wenn der RSI unter die Schwelle von 30 fällt, und verkauft, wenn der RSI über die Schwelle von 40 steigt.
Die Strategie verwendet hauptsächlich die überverkauften und überkauften Zonen des RSI-Indikators, um Handelssignale zu generieren. Der RSI spiegelt die Geschwindigkeit der Preisänderungen über einen Zeitraum wider. Der RSI unter 30 zeigt eine überverkaufte Zone an, in der der Preis zurückschlagen kann. Der RSI über 70 zeigt eine überkaufte Zone an, in der der Preis fallen kann.
Die Strategie berechnet den 10-Tage-RSI zuerst, setzt dann die Schwellenwerte auf 30 und 40. Wenn der 10-Tage-RSI unter 30 fällt, wird ein Kaufsignal generiert. Wenn der 10-Tage-RSI über 40 steigt, wird ein Verkaufssignal generiert. Nach Erhalt des Kaufsignals eröffnet es eine Long-Position. Nach Erhalt des Verkaufssignals schließt es die Position direkt, wenn die Haltetage 10 Tage überschreiten. Ansonsten hält es bis zum 10. Tag an, um auszuverkaufen.
Die Strategie ist einfach und leicht verständlich und identifiziert Überverkaufszonen und Überkaufzonen anhand des RSI zur Umsetzung einer auf einem Indikator basierenden Schwellenhandelsstrategie.
Die Strategie verwendet den vorherrschenden RSI-Indikator. Die RSI-Parameter können angepasst und optimiert werden, um verschiedenen Perioden und Marktumgebungen gerecht zu werden.
Die Strategie beurteilt Preisbewegungen auf der Grundlage des RSI, um einen einfachen Trend zu erreichen.
Die Strategie setzt eine feste Haltedauer ein, um einzelne Verluste effektiv zu kontrollieren.
Die RSI-Parameter können flexibel festgelegt werden, aber eine Überoptimierung und Backtest-Voreingenommenheit können mit echten Handelsrisiken verbunden sein.
Der RSI ist ein Trendindikator und reagiert langsam auf plötzliche Ereignisse, mit einem gewissen Verzögerungseffekt.
Die festgelegte Haltedauer setzt Gewinn- und Stop-Loss-Punkte fest und kann nicht anhand von Marktveränderungen angepasst werden.
Optimierung der RSI-Parameter und der Prüfwirkungen verschiedener Werte.
Zusätzliche Indikatoren bilden ein kombiniertes System, das Stärken verschiedener Indikatoren verwendet.
Verbesserung der Stop-Profit-Loss-Strategie, um dynamische Anpassungen anhand der Marktbedingungen zu ermöglichen.
Optimierung der Positionsgröße zur dynamischen Anpassung der Positionen an die Marktbedingungen.
Für die Strategie geeignete Produkte prüfen, wobei flüssige Produkte mit hoher Volatilität ausgewählt werden.
Optimierung der Handelszeiten und Prüfung der Auswirkungen auf die Strategie.
Die Strategie ist relativ einfach, indem eine Schwellen-basierte Handelsstrategie mit RSI implementiert wird. Zu den Vorteilen gehören Einfachheit, Verständnisfreundlichkeit und eine relativ gute Risikokontrolle. Es gibt jedoch Probleme wie RSI-Parameteroptimierungsschwierigkeiten und unflexible Stop-Profit/Loss. Zukünftige Verbesserungen umfassen Parameteroptimierung, Stop-Profit/Loss-Verbesserungen, Positionsgrößen usw. Vor dem Live-Handel sind weitere Optimierungen erforderlich.
/*backtest start: 2022-10-23 00:00:00 end: 2023-10-29 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/ // © Bitduke //@version=4 // strategy("Simple RSI Buy/Sell at a level", shorttitle="Simple RSI Strategy", overlay=true,calc_on_every_tick=false,pyramiding=1, default_qty_type=strategy.cash,default_qty_value=1000, currency=currency.USD, initial_capital=1000,commission_type=strategy.commission.percent, commission_value=0.075) overbought = input(40, title="overbought value") oversold = input(30, title="oversold value") // Component Test Periods Code Begin testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2021, "Backtest Stop Year") testStopMonth = input(16, "Backtest Stop Month") testStopDay = input(2, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Test Periods Code End ////////////////////////////////////////////////////////////////////// myrsi = rsi(close, 10) > overbought myrsi2 = rsi(close, 10) < oversold barcolor(myrsi ? color.black : na) barcolor(myrsi2 ? color.blue : na) myEntry = myrsi2 and hour(time) <= 9 strategy.entry("Buy Signal", strategy.long, when = myEntry and testPeriod()) // Close 10 bar periods after the condition that triggered the entry //if (myEntry[10]) //strategy.close("Buy Signal") strategy.close("Buy Signal", when = barssince(myEntry) >= 10 or myrsi and testPeriod()) //strategy.entry("Sell Signal",strategy.short, when = myrsi2)