Die Ressourcen sind geladen. Beförderung...

Dynamische Entwicklung nach einer mehrjährigen Kreuzungsstrategie für gleitende Durchschnitte

Schriftsteller:ChaoZhang, Datum: 2024-12-13 10:40:30 Uhr
Tags:SMAEMA- Nein.

img

Übersicht

Diese Strategie ist ein trendfolgende Handelssystem, das auf mehreren Perioden gleitenden Durchschnitten basiert. Es verwendet 89-Perioden- und 21-Perioden-Simple Moving Averages (SMA) zur Bestimmung der allgemeinen Markttrendrichtung, während es 5-Perioden-Exponential Moving Average (EMA) -Hoch- und Tiefstände enthält, um spezifische Handelssignale zu identifizieren. Die Strategie verwendet einen doppelten Positionsmanagementansatz in Kombination mit festen Stop-Loss- und Trailing-Take-Profit-Mechanismen.

Strategieprinzipien

Die Kernlogik umfasst folgende Schlüsselelemente:

  1. Trendbestimmung: Verwendet die relative Position der 89-Perioden- und 21-Perioden-SMA zusammen mit der Preisposition, um Trends zu identifizieren. Ein Aufwärtstrend wird bestätigt, wenn der Preis und die 5-Perioden-EMA über der 21-Perioden-SMA liegen, die über der 89-Perioden-SMA liegt; das Gegenteil bestätigt einen Abwärtstrend.
  2. Eintrittssignale: Bei Aufwärtstrends werden Long-Positionen eingegeben, wenn der Preis auf das 5-Perioden-EMA-Tief zurückkehrt; bei Abwärtstrends werden Short-Positionen eingegeben, wenn der Preis auf das 5-Perioden-EMA-Tief zurückfällt.
  3. Positionsmanagement: Eröffnet zwei identische Vertragspositionen für jedes ausgelöste Signal.
  4. Risikokontrolle: Für die erste Position gelten feste Stop-Loss- und Gewinnziele und für die zweite Position ein Trailing-Stop-Loss.

Strategische Vorteile

  1. Mehrfache Zeitrahmenbestätigung: Die Kombination verschiedener gleitender Durchschnittswerte ermöglicht eine umfassendere Trendbewertung und verringert falsche Signale.
  2. Flexible Profit-Taking: kombiniert feste und nachfolgende Profit-Taking-Methoden, um sowohl kurzfristige Schwankungen als auch längere Trends zu erfassen.
  3. Kontrolliertes Risiko: legt für jedes Handelssignal klare Stop-Loss-Niveaus mit einem festen Risikopositionswert fest.
  4. Systematischer Betrieb: Klare Handelsregeln minimieren subjektives Urteilen und machen es einfach, programmatisch umzusetzen.

Strategische Risiken

  1. Konsolidierungsrisiko: Häufige Kreuzungen der gleitenden Durchschnitte während seitlicher Märkte können zu übermäßigen falschen Signalen führen.
  2. Das Risiko eines Ausrutschens: Signifikante Abweichungen zwischen den theoretischen und den tatsächlichen Ausführungspreisen in Zeiten hoher Volatilität.
  3. Geldmanagementrisiko: Der Handel mit festvertraglichen Mengen kann nicht für alle Kontogrößen geeignet sein.
  4. Parameterempfindlichkeit: Die Strategieleistung hängt stark von der Auswahl des gleitenden Durchschnittszeitraums ab und erfordert eine Optimierung für verschiedene Märkte.

Optimierungsrichtlinien

  1. Dynamische Positionsgröße: Empfehlung zur Anpassung der Vertragsmengen anhand des Eigenkapitals des Kontos und der Marktvolatilität.
  2. Marktumfeldfilterung: Hinzufügen von Trendstärkenindikatoren (wie ADX) zur Verringerung der Handelshäufigkeit in unterschiedlichen Märkten.
  3. Erhöhung des Stop-Loss-Verhältnisses: ATR kann zur dynamischen Stop-Loss-Anpassung verwendet werden, um die Anpassungsfähigkeit an unterschiedliche Marktbedingungen zu verbessern.
  4. Bestätigung des Signals: Umfangs- und Impulsindikatoren zur Erhöhung der Signalzuverlässigkeit.

Zusammenfassung

Diese Strategie stellt ein umfassendes Trend-Folge-System dar, das Markttrends durch mehrjährige gleitende Durchschnitte erfasst und gleichzeitig flexible Positionsmanagement- und Risikokontrollmethoden implementiert. Obwohl Optimierungsmöglichkeiten bestehen, zeigt der Grundrahmen gute Praktikabilität und Skalierbarkeit. Die Stabilität der Strategie kann durch Anpassung von Parametern und Hinzufügen von Filterbedingungen für verschiedene Handelsinstrumente und Marktumgebungen verbessert werden.


/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tobiashartemink2

//@version=5
strategy("High 5 Trading Technique", overlay=true)

// --- Input parameters ---
sma89Length = input.int(title="SMA 89 Length", defval=89)
sma21Length = input.int(title="SMA 21 Length", defval=21)
ema5HighLength = input.int(title="EMA 5 High Length", defval=5)
ema5LowLength = input.int(title="EMA 5 Low Length", defval=5)
contracts = input.int(title="Aantal Contracten", defval=1)
stopLossPoints = input.int(title="Stop Loss Points per Contract", defval=25)
takeProfitPoints = input.int(title="Take Profit Points per Contract", defval=25)

// --- Calculate moving averages ---
sma89 = ta.sma(close, sma89Length)
sma21 = ta.sma(close, sma21Length)
ema5High = ta.ema(high, ema5HighLength)
ema5Low = ta.ema(low, ema5LowLength)

// --- Identify trend and order of moving averages ---
longSetup = close > sma89 and close > sma21 and ema5High > sma21 and sma21 > sma89
shortSetup = close < sma89 and close < sma21 and ema5Low < sma21 and sma21 < sma89

// --- Entry signals ---
longTrigger = longSetup and close <= ema5Low
shortTrigger = shortSetup and close >= ema5High

// --- Entry orders ---
if (longTrigger)
    strategy.entry("Long 1", strategy.long, qty=contracts)
    strategy.entry("Long 2", strategy.long, qty=contracts)

if (shortTrigger)
    strategy.entry("Short 1", strategy.short, qty=contracts)
    strategy.entry("Short 2", strategy.short, qty=contracts)

// --- Stop-loss and take-profit for long positions ---
if (strategy.position_size > 0)
    strategy.exit("Exit Long 1", "Long 1", stop=strategy.position_avg_price - stopLossPoints, limit=strategy.position_avg_price + takeProfitPoints)
    strategy.exit("Exit Long 2", "Long 2", stop=strategy.position_avg_price - stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Stop-loss and take-profit for short positions ---
if (strategy.position_size < 0)
    strategy.exit("Exit Short 1", "Short 1", stop=strategy.position_avg_price + stopLossPoints, limit=strategy.position_avg_price - takeProfitPoints)
    strategy.exit("Exit Short 2", "Short 2", stop=strategy.position_avg_price + stopLossPoints, trail_offset=takeProfitPoints, trail_points=takeProfitPoints)

// --- Plot moving averages ---
plot(sma89, color=color.blue, linewidth=2)
plot(sma21, color=color.red, linewidth=2)
plot(ema5High, color=color.green, linewidth=2)
plot(ema5Low, color=color.orange, linewidth=2)


Verwandt

Mehr