HYE Mittelumkehr SMA-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-15 16:51:23
Tags:

img

Übersicht

Die HYE Mean Reversion SMA Strategie ist eine Mittel-Reversion-Handelsstrategie mit einfachen gleitenden Durchschnitten und dem Relative Strength Index (RSI). Sie erzeugt Kauf- und Verkaufssignale, wenn der Preis um einen bestimmten Prozentsatz vom gleitenden Durchschnitt abweicht, kombiniert mit dem Filtern von RSI-Indikatoren.

Strategie Logik

Die Strategie beruht hauptsächlich auf folgenden Regeln:

  1. Wenn der 2-Perioden-einfache gleitende Durchschnitt um 3% unter den 5-Perioden-einfachen gleitenden Durchschnitt fällt, wird davon ausgegangen, dass der Preis vom Mittelwert abweicht, und ein Kaufsignal wird generiert.

  2. Wenn die 2-Perioden-SMA die 5-Perioden-SMA überschreitet, wird davon ausgegangen, dass der Preis zum Mittelwert zurückkehrt und ein Verkaufssignal generiert wird.

  3. In Kombination mit dem exponentiellen gleitenden Durchschnitt des 5-Perioden-RSI werden nur Kaufsignale generiert, wenn der RSI unter 30 liegt, und Verkaufssignale, wenn der RSI über 70 liegt, um unnötigen Handel zu vermeiden.

Der Grundgedanke ist es, durch kurzfristige Kursschwankungen durchschnittliche Umkehrchancen zu erfassen. Kaufen, wenn der Preis um einen bestimmten Prozentsatz sinkt, verkaufen, wenn der Preis in der Nähe des gleitenden Durchschnitts umkehrt, um einen Gewinn zu erzielen. In der Zwischenzeit kann der RSI-Indikator überkaufte und überverkaufte Bedingungen identifizieren, um einige laute Handelssignale auszufiltern.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Einfach umzusetzen mit geringen Überwachungskosten.

  2. Erfasst kurzfristige Mittelumkehrchancen unter Verwendung von Preisentfernungen von gleitenden Durchschnitten.

  3. Der RSI-Indikator kann den Lärm des Handels effektiv filtern und verhindern, dass Spitzen und Tötungsschluchten verfolgt werden.

  4. Flexible Anpassung der Parameter an verschiedene Marktbedingungen.

  5. Unterstützt nur Long-, Short- oder beide Richtungen des Handels, um unterschiedlichen Präferenzen gerecht zu werden.

Risikoanalyse

Es gibt auch einige Risiken:

  1. Bei einer drastischen Kursänderung besteht ein hohes Stop-Loss-Risiko.

  2. Eine unsachgemäße Einstellung der Parameter kann zu einem Überhandel oder zu fehlenden Gelegenheiten führen.

  3. Die Performance ist stark mit dem Markt korreliert, und in den Märkten mit Bandbreite und Volatilität unterdurchschnittlich.

Gegenmaßnahmen:

  1. Sie müssen die entsprechenden Stop-Loss-Einstellungen einstellen, um Einzelhandelsverluste zu kontrollieren.

  2. Graduelle Optimierung der Parameter und Bewertung der risikobereinigten Renditen.

  3. Kombiniert mit dem Aktienindex, um die Anpassungsfähigkeit zu verbessern.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Versuche verschiedene Kombinationen von gleitenden Durchschnitten, um optimale Parameter zu finden.

  2. Versuchen Sie, andere Indikatoren einzubeziehen, um Trends zu erkennen und die Gewinnrate zu verbessern.

  3. Hinzufügen von Stop-Loss-Mechanismen zur Verringerung des maximalen Drawdowns.

  4. Optimierung der Ein- und Ausstiegsregeln zur Verbesserung der Gewinnfaktoren.

  5. Einführung von Techniken des maschinellen Lernens zur Erstellung anpassungsfähiger Parameter.

Schlussfolgerung

Die HYE Mean Reversion SMA Strategie ist eine einfache und praktische kurzfristige Mittelumkehrstrategie. Sie nutzt die Preis-Abweichung von gleitenden Durchschnitten, um Handelssignale zu generieren und mit dem RSI-Indikator Lärm auszufiltern. Sie zeigte gute Backtest-Leistungen. Die Strategie ist einfach zu implementieren mit anpassbaren Parametern, die sich an verschiedene Marktumgebungen anpassen. Es sollte jedoch die Unsicherheit von Rückschlag- und Stop-Loss-Risiken beachtet werden, die eine angemessene Optimierung für verschiedene Marktbedingungen erfordern. Insgesamt bietet sie eine gute Referenz-Mittelumkehrstrategie-Vorlage für den quantitativen Handel.


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4

strategy("HYE Mean Reversion SMA [Strategy]", overlay = true )
  
//Strategy inputs
source = input(title = "Source", defval = close)
tradeDirection = input(title="Trade Direction", type=input.string,
     options=["Long Only", "Short Only", "Both"], defval="Long Only") 
smallMAPeriod = input(title = "Small Moving Average", defval = 2)
bigMAPeriod = input(title = "Big Moving Average", defval = 5)
percentBelowToBuy = input(title = "Percent below to buy %", defval = 3)
percentAboveToSell = input(title = "Percent above to sell %", defval = 3)
rsiPeriod = input(title = "Rsi Period", defval = 2)
rsiLevelforBuy = input(title = "Maximum Rsi Level for Buy", defval = 30)
rsiLevelforSell = input(title = "Minimum Rsi Level for Sell", defval = 70)
     
longOK  = (tradeDirection == "Long Only") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short Only") or (tradeDirection == "Both")

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer,
     defval=2020, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer,
     defval=31, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer,
     defval=12, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100)
     
inDateRange = true

//Strategy calculation 
rsiValue = rsi(source, rsiPeriod)
rsiEMA   = ema(rsiValue, 5)
smallMA = sma(source, smallMAPeriod)
bigMA =  sma(source, bigMAPeriod) 
buyMA = ((100 - percentBelowToBuy) / 100) * sma(source, bigMAPeriod)[0]
sellMA = ((100 + percentAboveToSell) / 100) * sma(source, bigMAPeriod)[0]

if(crossunder(smallMA, buyMA) and rsiEMA < rsiLevelforBuy and inDateRange and longOK)
    strategy.entry("BUY", strategy.long) 

if(crossover(smallMA, bigMA) or not inDateRange)
    strategy.close("BUY")

if(crossover(smallMA, sellMA) and rsiEMA > rsiLevelforSell and inDateRange and shortOK)
    strategy.entry("SELL", strategy.short)

if(crossunder(smallMA, bigMA) or not inDateRange)
    strategy.close("SELL")



Mehr