RSI und abgeflachte RSI-Bullish-Divergenzstrategie

Schriftsteller:ChaoZhang, Datum: 2024-03-01 12:11:58
Tags:

img

Übersicht

Diese Strategie kombiniert den RSI-Indikator und den glatten RSI-Indikator, um Kaufmöglichkeiten an Preistief zu finden. Wenn der RSI ein neues Tief erreicht, während der Preis kein neues Tief erreicht, wird er als bullisches Divergenzsignal betrachtet.

Strategie Logik

  1. Berechnung des RSI-Indikators mit 14 Perioden.
  2. Der ausgeglichene RSI wird unter Verwendung einer doppelten WMA berechnet, um einen Ausgleichseffekt zu erzielen.
  3. Überprüfen Sie, ob der RSI unter 30 liegt.
  4. Überprüfen Sie, ob der glatte RSI unter 35 liegt, mit einem stärkeren Richtungstrend.
  5. Überprüfen Sie, ob der RSI-Tiefpunkt unter 25 liegt.
  6. Berechnen Sie RSI bullish Divergenz, finden Sie RSI neue niedrig machen, während der Preis nicht.
  7. Erfordern glatte RSI Abwärtstrend dauert mehr als 3 Perioden.
  8. Trigger Kaufsignal, wenn alle oben genannten Bedingungen erfüllt sind.
  9. Setzen Sie Stop-Loss- und Take-Profit-Bedingungen.

Die Strategie stützt sich hauptsächlich auf das RSI-Umkehrmerkmal, kombiniert mit einem glätteten RSI-Trendurteil, um zu kaufen, wenn der Preis unter Druck steht, während der RSI überverkauft ist.

Analyse der Vorteile

  1. Die Kombination von zwei RSI-Indikatoren verbessert die Strategieleistung.
  2. Verwenden Sie die RSI-Umkehrfunktion, hat einen Wahrscheinlichkeitsvorteil.
  3. Eine glättete Beurteilung des RSI-Trends hilft, falsche Umkehrungen zu vermeiden.
  4. Eine vollständige Stop-Loss- und Take-Profit-Logik kann Risiken begrenzen.

Risikoanalyse

  1. Die Wahrscheinlichkeit, dass die RSI-Rückkehr ausfällt, kann nicht vollständig vermieden werden.
  2. Glatter RSI hat Verzögerungseffekt, kann den besten Einstiegszeitpunkt verpassen.
  3. Stopp-Loss-Einstellung zu locker, Risiko für wachsende Verluste.

Kann den Eintrittszeitpunkt optimieren, indem die RSI-Parameter angepasst werden. Stärken Sie die Stop-Loss-Distanz für schnelleres Stoppen. Kombinieren Sie mit anderen Indikatoren, um das Trendrisiko zu beurteilen, senken Sie die falsche Umkehrrate.

Optimierungsrichtlinien

  1. Prüfung der Wirksamkeit des RSI unter verschiedenen Parametermengen.
  2. Verbessern Sie die Berechnung des glatten RSI für eine bessere Glättungsqualität.
  3. Passen Sie Stop Loss an und nehmen Sie Gewinnpunkte ein, finden Sie das optimale Risiko-Rendite-Verhältnis.
  4. Hinzufügen von Impulsindikatoren usw., um niedrige Impulssituationen zu vermeiden.

Weiterentwicklung der Strategie durch Parameter-Ausrichtung und Kombination mehrerer Indikatoren.

Schlussfolgerung

Die Strategie nutzt die RSI-Umkehrungscharakteristik insgesamt. Die doppelte RSI-Kombination nutzt die Umkehrung voll aus und führt gleichzeitig Unsicherheit durch Indikatordivergenz ein. Es ist eine typische Indikatorstrategieidee. Kann die Indikatoradaptivität durch unermüdliches Testen und Optimieren verbessern. Kombiniere auch mehr Indikatoren, um Fehleinschätzungen zu reduzieren und die Robustheit zu verbessern.


/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 1m
basePeriod: 1m
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/
// © BigBitsIO

//@version=4
strategy(title="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", shorttitle="RSI and Smoothed RSI Bull Div Strategy [BigBitsIO]", overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=.1, slippage=0)


TakeProfitPercent = input(3, title="Take Profit %", type=input.float, step=.25)
StopLossPercent = input(1.75, title="Stop Loss %", type=input.float, step=.25)

RSICurve = input(14, title="RSI Lookback Period", type=input.integer, step=1)
BuyBelowTargetPercent = input(0, title="Buy Below Lowest Low In RSI Divergence Lookback Target %", type=input.float, step=.05)
BuyBelowTargetSource = input(close, title="Source of Buy Below Target Price", type=input.source)
SRSICurve = input(10, title="Smoothed RSI Lookback Period", type=input.integer, step=1)
RSICurrentlyBelow = input(30, title="RSI Currently Below", type=input.integer, step=1)
RSIDivergenceLookback = input(25, title="RSI Divergence Lookback Period", type=input.integer, step=1)
RSILowestInDivergenceLookbackCurrentlyBelow  = input(25, title="RSI Lowest In Divergence Lookback Currently Below", type=input.integer, step=1)
RSISellAbove = input(65, title="RSI Sell Above", type=input.integer, step=1)
MinimumSRSIDownTrend = input(3, title="Minimum SRSI Downtrend Length", type=input.integer, step=1)
SRSICurrentlyBelow = input(35, title="Smoothed RSI Currently Below", type=input.integer, step=1)

PlotTarget = input(false, title="Plot Target")


RSI = rsi(close, RSICurve)
SRSI = wma(2*wma(RSI, SRSICurve/2)-wma(RSI, SRSICurve), round(sqrt(SRSICurve))) // Hull moving average

SRSITrendDownLength = 0
if (SRSI < SRSI[1])
    SRSITrendDownLength := SRSITrendDownLength[1] + 1

// Strategy Specific
ProfitTarget = (close * (TakeProfitPercent / 100)) / syminfo.mintick
LossTarget = (close * (StopLossPercent / 100)) / syminfo.mintick
BuyBelowTarget = BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] - (BuyBelowTargetSource[(lowestbars(RSI, RSIDivergenceLookback)*-1)] * (BuyBelowTargetPercent / 100))

plot(PlotTarget ? BuyBelowTarget : na)



bool IsABuy = RSI < RSICurrentlyBelow and SRSI < SRSICurrentlyBelow and lowest(SRSI, RSIDivergenceLookback) < RSILowestInDivergenceLookbackCurrentlyBelow and BuyBelowTargetSource < BuyBelowTarget and SRSITrendDownLength >= MinimumSRSIDownTrend and RSI > lowest(RSI, RSIDivergenceLookback)
bool IsASell = RSI > RSISellAbove

if IsABuy
    strategy.entry("Positive Trend", true) // buy by market
    strategy.exit("Take Profit or Stop Loss", "Positive Trend", profit = ProfitTarget, loss = LossTarget)
if IsASell
    strategy.close("Positive Trend")


Mehr