RSI CCI Williams%R Quantitative Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-24 11:18:08
Tags:

img

Strategieübersicht

Diese Strategie kombiniert drei Klassifikationsindikatoren: RSI, CCI und Williams%R, um effektive Handelssignale zu generieren. Sie wird Kauf- oder Verkaufssignale ausstellen, wenn alle drei Indikatoren gleichzeitig überkaufte oder überverkaufte Signale anzeigen. Verglichen mit der Verwendung eines einzigen Indikators filtert diese zusammengesetzte Strategie mehr falsche Signale aus und verbessert die Stabilität.

Die Strategie trägt den Namen Three Trail Trawler Strategy. Three Trail bezieht sich auf die Kombination von RSI, CCI und Williams%R.

Strategie Logik

Die Strategie stützt sich hauptsächlich auf folgende Indikatoren für Handelsentscheidungen:

  1. RSI-Indikator zur Beurteilung von Überkauf/Überverkauf
  2. CCI-Indikator zur Kennzeichnung von Wendepunkten
  3. Williams%R-Indikator, der die Handelssignale weiter bestätigt

Wenn der RSI unter 25 liegt, signalisiert er einen Überverkaufstatus. Wenn der RSI über 75 liegt, signalisiert er einen Überkaufstatus. Die gleiche Logik gilt für die CCI- und Williams%R-Parameter.

Wenn alle drei Indikatoren gleichzeitig Kaufsignale anzeigen, d.h. RSI < 25, CCI < -130, Williams %R < -85, wird die Strategie lang sein. Wenn alle drei Indikatoren gleichzeitig Verkaufssignale anzeigen, d.h. RSI > 75, CCI > 130, Williams %R > -15, wird die Strategie kurz sein.

Dies verhindert falsche Signale von einem einzigen Indikator und verbessert die Zuverlässigkeit.

Vorteile

  1. Multi-Indikator-Kombination filtert falsche Signale
    Durch die Kombination von RSI, CCI und Williams%R filtert die Strategie einige falsche Signale aus einzelnen Indikatoren und verbessert so die Genauigkeit.

  2. Automatischer Verlust-/Gewinnstopp verwaltet Risiken Die eingebauten Stop-Loss- und Take-Profit-Funktionen setzen automatisch die Exit-Preise für jeden Handel ein und begrenzen die Verluste effektiv innerhalb tolerierbarer Schwellenwerte.

  3. Mittelfristiger Handel Die Strategie funktioniert besser für mittelfristige Trades, da sie mittelfristige Wendepunkte über die Indikatorenkombination eindeutig identifiziert.

  4. Solide Daten aus dem Backtest
    Die Strategie verwendet 45-min-Bars von EUR/USD, einem wichtigen Devisenpaar mit reichlich Liquidität und Daten, wodurch die Risiken eines Überschusses durch unzureichende Daten reduziert werden.

Risiken

  1. Schwache langfristige Trends
    Die Strategie stützt sich eher auf entgegengesetzte Signale. Ihre Fähigkeit, langfristige Trends zu messen und zu verfolgen, ist begrenzt. Während langfristiger einseitiger Märkte ist das Gewinnpotential eingeschränkt.

  2. Fehlende kurzfristige Schwankungen Bei 45-minütigen Balken verpasst die Strategie durch häufigere kurzfristige Kursschwankungen profitable Chancen.

  3. Systemrisiken
    In Zeiten schwerer Wirtschaftskrise, die den weltweiten Devisenmarkt erschüttert, könnten die Handelsregeln scheitern, was zu großen Verlusten führen könnte.

Verbesserungsbereiche

  1. Hinzufügen von Trendindikatoren
    Versuchen Sie, Trendmetriken wie MA, Boll usw. zu integrieren, um die langfristige Trenderkennung zu unterstützen.

  2. Optimierung der Stop-Loss-/Gewinnparameter Zur Ermittlung der optimalen Einstellung werden weitere historische Daten getestet, um die Auswirkungen verschiedener Stop-Loss-/Gewinnparameter auf die endgültige Rentabilität zu bewerten.

  3. Produkte erweitern
    Wir können versuchen, es auf andere wichtige Währungspaare wie GBP, JPY, AUD einzusetzen, um seine Stabilität und Übertragbarkeit zu untersuchen.

Schlussfolgerung

Die Three Trail Trawler Strategy identifiziert Preisumkehrpunkte für überkaufte/überverkaufte Signale unter Verwendung einer Kombination aus RSI, CCI und Williams %R. Im Vergleich zu einzelnen Metriken filtert dieses Multi-Indikator-Setup mehr falsche Signale aus und verbessert die Genauigkeit. Die automatisierten Stop-Loss/Profit-Taking-Funktionen helfen auch, Handelsrisiken zu begrenzen. Insgesamt ist es eine stabile Strategie, die für den mittelfristigen Handel geeignet ist und ein wertvolles Modul in unseren quantitativen Systemen sein kann. Dennoch müssen wir auf ihre Mängel bei der Erfassung langfristiger Trends und der Erfassung kurzfristiger Schwankungen achten. Feinabstimmungsmaßnahmen wie das Hinzufügen von Trendmetriken, das Optimieren von Exit-Parametern und das Erweitern von Produkten werden die Strategie als einen stetigen Gewinn für unsere Quantitativ-Systeme verbessern.


/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("RSI CCI Williams %R Strategy with TP and SL", overlay=true)

// Input parameters for indicators
rsi_period = input(14, title="RSI Period")
cci_period = input(20, title="CCI Period")
williams_period = input(14, title="Williams %R Period")

// Thresholds for overbought and oversold conditions
rsi_oversold = input(25, title="RSI Oversold Level")
rsi_overbought = input(75, title="RSI Overbought Level")
cci_oversold = input(-130, title="CCI Oversold Level")
cci_overbought = input(130, title="CCI Overbought Level")
williams_oversold = input(-85, title="Williams %R Oversold Level")
williams_overbought = input(-15, title="Williams %R Overbought Level")

// Take profit and stop loss levels as a percentage
take_profit_pct = input(1.2, title="Take Profit (%)") / 100
stop_loss_pct = input(0.45, title="Stop Loss (%)") / 100

// Indicator calculations
rsi = ta.rsi(close, rsi_period)
cci = ta.cci(close, cci_period)
highestHigh = ta.highest(high, williams_period)
lowestLow = ta.lowest(low, williams_period)
williamsR = (highestHigh - close) / (highestHigh - lowestLow) * -100

// Entry conditions
longCondition = rsi < rsi_oversold and cci < cci_oversold and williamsR < williams_oversold and strategy.position_size == 0
shortCondition = rsi > rsi_overbought and cci > cci_overbought and williamsR > williams_overbought and strategy.position_size == 0

// Execute strategy entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit or Stop Loss Long", "Long", limit=close * (1 + take_profit_pct), stop=close * (1 - stop_loss_pct))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit or Stop Loss Short", "Short", limit=close * (1 - take_profit_pct), stop=close * (1 + stop_loss_pct))

// Plot the signals on the chart
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, text="SELL")

// Plot the indicators for visualization
plot(rsi, title="RSI", color=color.blue)
plot(cci, title="CCI", color=color.purple)
plot(williamsR, title="Williams %R", color=color.orange)

Mehr