Parabolische SAR- und CCI-Strategie mit EMA-Ausgang für den Goldhandel

Schriftsteller:ChaoZhang, Datum: 23.07.2023
Tags:

img

Übersicht

Es handelt sich um eine Goldhandelsstrategie auf M5-Zeitrahmen, die auf der Kombination von technischen Indikatoren wie Parabol SAR, CCI und EMA basiert.

Strategie Logik

  1. Parabolische SAR wird verwendet, um die Trendrichtung und potenzielle Umkehrpunkte von Gold zu bestimmen. Wenn SAR-Punkte unter den Preis sinken, zeigt dies einen Aufwärtstrend an; wenn SAR-Punkte über den Preis steigen, zeigt dies einen Abwärtstrend an.

  2. Der CCI zeigt die Überkauf-/Überverkaufszustände des Marktes an, wobei der CCI über 100 auf eine verstärkte Aufwärtsentwicklung hindeutet, während der CCI unter -100 auf eine verstärkte Abwärtsentwicklung hindeutet.

  3. EMA-Kreuzungen signalisieren kurzfristige Wendepunkte des Preises.

  4. Eintrittsregeln: Gehen Sie lang, wenn der SAR die 5-minütige EMA in steigender Richtung überschreitet und der CCI größer als 100 ist; Gehen Sie kurz, wenn der SAR die 5-minütige EMA in rückläufiger Richtung überschreitet und der CCI kleiner als -100 ist.

  5. Ausgangsregeln: Gewinn am Einstiegspreis + 7 Ticks, Stop-Loss auf der 1-minütigen EMA-Linie.

Vorteile

  1. Die Kommission stellt fest, dass die in den Erwägungsgründen 1 und 2 dargelegten Faktoren nicht berücksichtigt werden können.

  2. Der CCI filtert falsche Ausbrüche effizient. SAR-Umkehrungen in Kombination mit der Trendrichtung vermeiden unnötige Einträge während der Konsolidierung.

  3. EMA-Crossovers mit SAR bieten bei vorübergehenden Pullbacks risikoarme Eintritte.

  4. Optimierte Parameter für flüchtige Rohstoffe wie Gold und kleine Konten.

Risiken

  1. Verlässt sich hauptsächlich auf technische Indikatoren, die bei Schwarzschwanen-Ereignissen ausfallen können.

  2. Volatile Rohstoffe, EMA-Stop-Loss, anfällig für Spikes, die zu großen Verlusten führen.

  3. Potenzielle falsche Signale von CCI und SAR führen zu unnötigen Verlusten.

  4. Systemausfälle bei volatilen Bewegungen können eine effektive Stop-Loss-Ausführung verhindern.

Möglichkeiten zur Verbesserung

  1. Versuche verschiedene Parameterkombinationen, um die CCI für die Eigenschaften von Gold zu optimieren.

  2. Mehr Indikatoren wie Kerzenmuster, Bollinger Bands, um die Robustheit zu verbessern.

  3. Einsatz von maschinellem Lernen zur dynamischen Optimierung von SAR-Parametern, die sich an sich ändernde Märkte anpassen.

  4. Versuche verschiedene Stop-Loss-Mechanismen, z. B. Trailing-Stops, um die Wahrscheinlichkeit zu verringern, dass sie getroffen werden.

  5. Optimierung von Positionsgrößenmodellen, z. B. feste, dynamische, fractionelle Positionsgrößen, um den Betrag einzelner Verluste zu kontrollieren.

Schlussfolgerung

Im Allgemeinen eine stabile Goldhandelsstrategie, die mehrere Indikatoren kombiniert, um Trends, wichtige Unterstützungs- / Widerstandsniveaus und Überkauf- / Überverkaufszonen für risikoreiche Einträge während Retracements zu identifizieren. Optimierte Parameter ermöglichen den Handel mit kleinen Konten, um die hohe Volatilität von Gold zu nutzen. Hat Risiken, die durch ein angemessenes Risikomanagement angegangen werden können.


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

//@version=4
strategy("Parabolic SAR and CCI Strategy with EMA Exit", overlay=true)

// Parameters
length = input(50, title="EMA Length")
length_21 = input(21, title="EMA Length 21")
acc = input(0.02, title="Acceleration Factor")
max_acc = input(0.2, title="Max Acceleration Factor")
takeProfitPoints = input(7, title="Take Profit Points")

// Variables
var float ep = 0.0
var float sar = 0.0
var float af = acc

// Calculating 5-minute EMA based on 1-minute data
var float sum_close = na
var float ema_5min = na
if (bar_index % 5 == 0)
    sum_close := 0.0
    for i = 0 to 4
        sum_close := sum_close + close[i]
    ema_5min := ema(sum_close / 5, length_21)

// Calculating 1-minute EMA
ema1 = ema(close, length)
cci = cci(close, 45)

// Custom Parabolic SAR Calculation
trendUp = close > ema1
trendDown = close < ema1

var float prev_sar = na
prev_sar := na(sar[1]) ? low[1] : sar[1]

if trendUp
    ep := high > ep ? high : ep
    af := min(af + acc, max_acc)
    sar := min(prev_sar, prev_sar + af * (ep - prev_sar))

if trendDown
    ep := low < ep ? low : ep
    af := min(af + acc, max_acc)
    sar := max(prev_sar, prev_sar + af * (ep - prev_sar))

// Entry Conditions
longCondition = sar > ema1 and ema1 > ema_5min and cci > 100
shortCondition = sar < ema1 and ema1 < ema_5min and cci < -100

// Exit Conditions
longTakeProfit = strategy.position_avg_price + takeProfitPoints * syminfo.mintick
longStopLoss = ema1
shortTakeProfit = strategy.position_avg_price - takeProfitPoints * syminfo.mintick
shortStopLoss = ema1

// Plotting Entry Points
plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Strategy Execution
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

if strategy.position_size > 0
    strategy.exit("Take Profit/Stop Loss", "Long", limit=longTakeProfit, stop=longStopLoss)

if strategy.position_size < 0
    strategy.exit("Take Profit/Stop Loss", "Short", limit=shortTakeProfit, stop=shortStopLoss)


Mehr