Es handelt sich um eine Goldhandelsstrategie auf M5-Zeitrahmen, die auf der Kombination von technischen Indikatoren wie Parabol SAR, CCI und EMA basiert.
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.
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.
EMA-Kreuzungen signalisieren kurzfristige Wendepunkte des Preises.
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.
Ausgangsregeln: Gewinn am Einstiegspreis + 7 Ticks, Stop-Loss auf der 1-minütigen EMA-Linie.
Die Kommission stellt fest, dass die in den Erwägungsgründen 1 und 2 dargelegten Faktoren nicht berücksichtigt werden können.
Der CCI filtert falsche Ausbrüche effizient. SAR-Umkehrungen in Kombination mit der Trendrichtung vermeiden unnötige Einträge während der Konsolidierung.
EMA-Crossovers mit SAR bieten bei vorübergehenden Pullbacks risikoarme Eintritte.
Optimierte Parameter für flüchtige Rohstoffe wie Gold und kleine Konten.
Verlässt sich hauptsächlich auf technische Indikatoren, die bei Schwarzschwanen-Ereignissen ausfallen können.
Volatile Rohstoffe, EMA-Stop-Loss, anfällig für Spikes, die zu großen Verlusten führen.
Potenzielle falsche Signale von CCI und SAR führen zu unnötigen Verlusten.
Systemausfälle bei volatilen Bewegungen können eine effektive Stop-Loss-Ausführung verhindern.
Versuche verschiedene Parameterkombinationen, um die CCI für die Eigenschaften von Gold zu optimieren.
Mehr Indikatoren wie Kerzenmuster, Bollinger Bands, um die Robustheit zu verbessern.
Einsatz von maschinellem Lernen zur dynamischen Optimierung von SAR-Parametern, die sich an sich ändernde Märkte anpassen.
Versuche verschiedene Stop-Loss-Mechanismen, z. B. Trailing-Stops, um die Wahrscheinlichkeit zu verringern, dass sie getroffen werden.
Optimierung von Positionsgrößenmodellen, z. B. feste, dynamische, fractionelle Positionsgrößen, um den Betrag einzelner Verluste zu kontrollieren.
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)