Goldhandel mit Simons Strategie

Schriftsteller:ChaoZhang, Datum: 2024-03-01 12:28:38
Tags:

img

Übersicht

Diese Strategie kombiniert gleitende Durchschnittsindikatoren, Relative Strength Index (RSI) und Engulfing-Muster, um lange und kurze Trades mit Gold durchzuführen. Sie verwendet hauptsächlich das Crossover von 21-Tage-, 50-Tage- und 200-Tage-gleitenden Durchschnitten als Handelssignal mit RSI-Indikator und Engulfing-Mustern, um zusätzliche Einstiegssignale für eine bessere Optimierung zu filtern.

Strategie Logik

Die Strategie trifft Handelsentscheidungen auf der Grundlage folgender Aspekte:

  1. Kreuzung des gleitenden Durchschnitts

    Der Crossover zwischen 21-Tage-MA und 200-Tage-MA wird als primärer Indikator zur Bestimmung der Trendumkehrung verwendet.

  2. RSI-Indikator

    Der RSI muss unterhalb des Überkaufniveaus für langes Signal und über dem Überverkaufniveaus für kurzes Signal liegen, um Kaufspitzen und Verkaufsfälle zu vermeiden.

  3. Bestätigung des Schluckmusters

    Bei Goldkreuze wird ein bullisches Verschwemmungsmuster für ein langes Signal benötigt, bei Todkreuze ein bärisches Verschwemmungsmuster für ein kurzes Signal. Dies bestätigt die Trendwende weiter.

Handelssignale werden erzeugt, wenn alle drei oben genannten Bedingungen erfüllt sind.

Vorteile

Der größte Vorteil liegt in der umfassenden Verwendung mehrerer Parameter und Indikatoren für die Entscheidungsfindung, die falsche Signale gut herausfiltert und unnötige Stop-Loss reduziert.

  1. Die gleitende Durchschnittsstrategie selbst ist relativ stabil.

  2. Die RSI-Einstellungen verhindern, dass Kaufspitzen und Verkaufsabschwemmungen auftreten.

  3. Die Bestätigung von Schwellmustern verbessert die Zuverlässigkeit bei der Beurteilung von Trendumkehrungen.

  4. Ein kleinerer Stop-Loss kontrolliert die Risiken effektiv.

Risiken

Diese Strategie zeichnet sich zwar durch die Signalfilterung und die Risikokontrolle aus, enthält jedoch noch einige Schwächen und Risiken:

  1. Komplexe Parameter-Tuning erfordert erhebliche Anstrengungen, um eine optimale Kombination zu finden.

  2. Strenge Eintrittssignale können gute Gelegenheiten verpassen.

  3. Es wird eine gewisse Verzögerung bei äußerst volatilen Marktbedingungen geben.

  4. Die langfristige Stabilität und Gültigkeit müssen weiter überprüft werden.

Um die oben genannten Risiken zu bekämpfen, können wir die Parameter optimieren, Logikflüsse optimieren, andere Indikatoren einbeziehen usw. um die Strategie zu verbessern.

Optimierungsmöglichkeiten

Trotz der guten Ergebnisse bei der Kombination mehrerer Indikatoren kann diese Strategie noch optimiert werden:

  1. Weiterhin finden Sie durch mehr Backtesting optimale Parametermengen. Beurteilen Sie die Auswirkungen verschiedener Parameter auf die Ergebnisse, um eine bessere Parameterkombination zu bestimmen.

  2. Einbeziehung anderer Indikatoren wie MACD, KD usw., um den Zeitpunkt der Trendumkehr zu beurteilen. Dies bildet ein umfassenderes Indikatorsystem.

  3. Verbessern und verfeinern Sie die Stop-Loss-Mechanismen und prüfen Sie, ob größere Stop-Loss-Prozentsätze unnötige Positionsänderungen reduzieren können.

  4. Überprüfen Sie längere historische Datensätze, um die langfristige Gültigkeit der Strategie zu überprüfen.

Schlussfolgerung

Diese Strategie nutzt ein Toolkit aus technischen Analyseninstrumenten wie gleitenden Durchschnitten, RSI und Engulfing-Mustern, um lange, kurze Goldtrades durchzuführen. Durch die Parameterkonfiguration und Signalfilterung wird ein relativ strenges System zur Kontrolle von Risiken in gewissem Maße etabliert. Jedoch kann keine Strategie absolut perfekt sein. Diese Strategie hat immer noch viel Raum für Optimierung und Richtungsverbesserung. Im Allgemeinen bietet sie sinnvolle Referenzen für quantifizierten Handel, sollte aber immer noch diskret mit pragmatischen Anpassungen verwendet werden, wenn sie in der Praxis angewendet wird.


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

//@version=4
strategy("Gold Trading with Simons Strategy", overlay=true)

// Parameters
length21 = input(21, minval=1, title="Length for 21 MA")
length50 = input(50, minval=1, title="Length for 50 MA")
length200 = input(200, minval=1, title="Length for 200 MA")
rsiLength = input(14, minval=1, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
takeProfitPercent = input(4, title="Take Profit %")
stopLossPercent = input(1, title="Stop Loss %")

// Moving Averages
ma21 = sma(close, length21)
ma50 = sma(close, length50)
ma200 = sma(close, length200)

// RSI
rsi = rsi(close, rsiLength)

// Engulfing Pattern
isBullishCandle(c) => close[c] > open[c]
isBearishCandle(c) => close[c] < open[c]

bearishEngulfing = isBullishCandle(1) and isBearishCandle(0) and close < open[1] and open > close[1]
bullishEngulfing = isBearishCandle(1) and isBullishCandle(0) and close > open[1] and open < close[1]

// Calculate Take Profit and Stop Loss Levels
takeProfitLevel(entryPrice) => entryPrice * (1 + takeProfitPercent / 100)
stopLossLevel(entryPrice) => entryPrice * (1 - stopLossPercent / 100)

// Entry Conditions
longCondition = crossover(ma21, ma200) and close > ma21 and close > ma50 and rsi < rsiOverbought and bullishEngulfing
shortCondition = crossunder(ma21, ma200) and close < ma21 and close < ma50 and rsi > rsiOversold and bearishEngulfing

// Entry
if (longCondition)
    entryPrice = close
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Long", stop=stopLossLevel(entryPrice))
if (shortCondition)
    entryPrice = close
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit", "Short", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Short", stop=stopLossLevel(entryPrice))

// Plotting
plot(ma21, color=color.blue, title="21 MA")
plot(ma50, color=color.orange, title="50 MA")
plot(ma200, color=color.red, title="200 MA")
hline(rsiOverbought, "RSI Overbought", color=color.green)
hline(rsiOversold, "RSI Oversold", color=color.red)
plot(rsi, "RSI", color=color.purple)

Mehr