Diese Strategie verwendet hauptsächlich den Relative Strength Index (RSI), um Überkauf- und Überverkaufsbedingungen auf dem Markt zu bestimmen, kombiniert mit dem Preis über dem 200-tägigen einfachen gleitenden Durchschnitt (SMA) als Trendfilter, um zu entscheiden, ob man einen Trade eingeht. Die Strategie konstruiert die Einstiegsbedingungen durch drei RSI-Indikatoren. Nur wenn der kurzfristige RSI unter 35 liegt und drei aufeinanderfolgende Perioden einen Abwärtstrend zeigt, während der dritte Zeitraum unter 60 liegt und der aktuelle Schlusskurs über dem 200-tägigen SMA liegt, wird er lang gehen. Die Ausstiegsbedingung ist, wenn der RSI über 50 überschreitet.
Diese Strategie konstruiert die Einstiegsbedingungen durch einen dreifachen RSI, kombiniert mit dem Preis über dem langfristigen gleitenden Durchschnitt als Trendfilter, um überverkaufte Umkehrsetzungen zu erfassen. Die Strategielogik ist einfach und klar, einfach zu implementieren und zu optimieren. Die Strategie hat jedoch auch Risiken und Mängel wie Signalverzögerung, geringe Handelsfrequenz und nur einseitige Marktbewegungen erfassen können. Sie benötigt kontinuierliches Debuggen und Verbessern in der tatsächlichen Anwendung. Durch die Einführung von Stop-Loss und Profit-Taking, Positionsmanagement, Kombination mit anderen Indikatoren und anderen Methoden können die Stabilität und Rentabilität der Strategie weiter verbessert werden.
/*backtest start: 2023-05-15 00:00:00 end: 2024-05-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //@author Honestcowboy // strategy("Triple RSI [Honestcowboy]" ) // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> // ---------> User Inputs <----------- >> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> // ---------> VARIABLE CALCULATIONS <----------- >> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput) down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> // ---------> CONDITIONALS <----------- >> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> rule1 = rsi<35 rule2 = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3] rule3 = rsi[3]<60 rule4 = close>ta.sma(close, 200) longCondition = rule1 and rule2 and rule3 and rule4 closeCondition = rsi>50 // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> // ---------> GRAPHICAL DISPLAY <----------- >> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> hline(30, title="Long Condition Line") hline(50, title="Exit Condition Line") plot(rsi) plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute) plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute) // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> // ---------> AUTOMATION AND BACKTESTING <----------- >> // $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >> if longCondition and strategy.position_size==0 strategy.entry("LONG", strategy.long) if closeCondition strategy.close("LONG")