Dreifacher gleitender Durchschnitt Trendverfolgung und Momentum Fusion Quantitative Handelsstrategie

EMA TEMA MACD SMA
Erstellungsdatum: 2024-11-27 16:08:16 zuletzt geändert: 2024-11-27 16:08:16
Kopie: 2 Klicks: 439
1
konzentrieren Sie sich auf
1617
Anhänger

Dreifacher gleitender Durchschnitt Trendverfolgung und Momentum Fusion Quantitative Handelsstrategie

Überblick

Es handelt sich um eine quantitative Handelsstrategie, die auf Trendverfolgung und Dynamikanalyse basiert. Die Strategie nutzt dreifache Index-Bewegungsmittel (TEMA), mehrere Bewegungsmittel-Kreuzungen und MACD-Varianten, um Markttrends und Einstiegsmomente zu identifizieren. Die Strategie verwendet eine strenge Risikokontrolle, einschließlich fester Stop-Loss- und Gewinnziele sowie Verfolgung von Stop-Losses, um die optimale Balance zwischen Risiko und Gewinn zu erreichen.

Strategieprinzip

Die Strategie basiert auf drei Kerntechnik-Indikator-Systemen, um Handelssignale zu ermitteln:

  1. Das TEMA-System wird verwendet, um die Richtung des Gesamttrends zu bestimmen. Die Trendstärke wird durch die Berechnung von drei EMAs und deren dynamischen Veränderungen beurteilt.
  2. Das schnelle und langsame lineare Kreuzungssystem verwendet 9- und 15-Zyklen-EMA, um die Wendepunkte des mittleren Trends zu erfassen.
  3. Die Kreuzung des Preises mit der 5-Zyklus-EMA dient als letztes Bestätigungssignal, um den Zeitpunkt des Eintritts genau zu erfassen.

Die Triggerung eines Handelssignals erfordert die gleichzeitige Erfüllung der folgenden Bedingungen:

  • Der MACD-Indikator bildet eine goldene Kreuzung mit seiner Signallinie und TEMA tritt nach oben
  • Kurzfristige EMA über langfristige EMA
  • Der Preis hat eine 5-Zyklus-EMA.

Strategische Vorteile

  1. Die Mehrfachbestätigungsmechanismen reduzieren die Auswirkungen von Falschmeldungen erheblich und erhöhen die Genauigkeit der Transaktionen.
  2. Die Kombination von Trend-Tracking und Dynamik-Analyse ermöglicht es, sowohl große Trends zu erfassen als auch kurzfristige Chancen zu nutzen.
  3. Es wurde ein ausgefeilter Stop-Loss-Mechanismus eingesetzt, der sowohl einen festen Stop-Loss-Punkt als auch einen dynamischen Stop-Loss-Tracking-Punkt umfasst, um das Risiko effektiv zu kontrollieren.
  4. Strategieparameter sind anpassungsfähig und können sich an unterschiedliche Marktumstände anpassen.
  5. Die Logik des Eintritts ist klar, leicht zu verstehen und zu verfolgen.

Strategisches Risiko

  1. Die Mehrfachbestätigung kann zu einer langsamen Einreise führen, was dazu führen kann, dass man einige Gelegenheiten in der schnellen Zeit verpasst.
  2. Der feste Stop-Loss-Punkt muss an die unterschiedlichen Marktschwankungen angepasst werden, da er sonst zu früh eingestellt werden kann.
  3. In den meisten Fällen ist es jedoch möglich, dass sich der Markt in einem schwankenden Zustand befindet, was zu einem häufigen Fehlsignal führt.
  4. Stopp-Tracking kann bei starken Marktschwankungen zu früh aus einem guten Trend aussteigen.

Richtung der Strategieoptimierung

  1. Einführung von Volatilitätsindikatoren, um die Stop-Loss- und Gewinnziele dynamisch anzupassen und sie besser an die Marktlage anzupassen.
  2. Fügen Sie Lautstärkeanzeigen als zusätzliche Bestätigung hinzu, um die Signalzuverlässigkeit zu verbessern.
  3. Eintritt in die Identifizierungsmechanismen für die Marktumgebung, wobei verschiedene Kombinationen von Parametern in verschiedenen Marktzuständen verwendet werden.
  4. Entwicklung eines Rücklage-Aufschlagmechanismus, um die Rückzahlung mittelmäßig zu erhöhen, um die Erträge zu erhöhen.
  5. Optimierung von Stop-Loss-Algorithmen, um sie besser auf Marktschwankungen einzustellen.

Zusammenfassen

Die Strategie baut durch die Integration mehrerer technischer Kennzahlensysteme ein stabiles Handelssystem auf. Ihr Kernvorteil liegt in den mehrfachen Bestätigungsmechanismen und dem ausgefeilten Risikokontrollsystem. Obwohl ein gewisses Rückstandsrisiko besteht, besteht durch die Optimierung der Parameter und die Erweiterung der Funktionen noch viel Raum für Verbesserungen.

Strategiequellcode
/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")