Strategie zur Rückverfolgung des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2024-03-28 18:00:05
Tags:

img

Übersicht

Die Hauptidee dieser Strategie besteht darin, zwei gleitende Durchschnitte mit unterschiedlichen Perioden zu verwenden, um die Rebound-Möglichkeit nach einem Marktrückgang zu erfassen. Wenn der Preis über dem langfristigen gleitenden Durchschnitt liegt und zum kurzfristigen gleitenden Durchschnitt zurückzieht, eröffnet die Strategie eine Long-Position und schließt die Position, wenn der Preis wieder über den kurzfristigen gleitenden Durchschnitt steigt oder den Stop-Loss-Preis erreicht. Durch die Suche nach Kaufmöglichkeiten während Pullbacks in einem Trend zielt die Strategie darauf ab, von den Trendmärkten zu profitieren.

Strategieprinzip

  1. Berechnen Sie zwei gleitende Durchschnitte mit unterschiedlichen Perioden (MA1 und MA2), wobei MA1 der langfristige gleitende Durchschnitt und MA2 der kurzfristige gleitende Durchschnitt ist.
  2. Wenn der Schlusskurs über dem MA1 und unter dem MA2 liegt und es keine aktuelle Position gibt und die aktuelle Zeit innerhalb des angegebenen Handelszeitrahmens liegt, eröffnet die Strategie eine Long-Position.
  3. Der Eintrittspreis wird als BuyPrice erfasst und der Stop-Loss-Preis StopPrice berechnet (d. h. i_stopPercentage unter dem Eintrittspreis).
  4. Wenn der Schlusskurs wieder über MA2 steigt und i_lowerClose falsch ist oder wenn der Schlusskurs unter den Stop-Loss-Kurs (StopPrice) fällt, schließt die Strategie die Position.
  5. Wenn i_lowerClose wahr ist, schließt die Strategie die Position, wenn der Schlusskurs über MA2 liegt und der Schlusskurs der vorherigen Kerze unter MA2 liegt.

Strategische Vorteile

  1. Trendverfolgung: Durch die Bestimmung des Gesamttrends anhand der relativen Position des Preises und des langfristigen gleitenden Durchschnitts sucht die Strategie nach Einstiegsmöglichkeiten in den Trend.
  2. Pullback-Kauf: Durch die Suche nach Kaufmöglichkeiten, wenn der Preis während eines Aufwärtstrends zum kurzfristigen gleitenden Durchschnitt zurückzieht, verbessert die Strategie die Kosteneffizienz der Einstiegspunkte.
  3. Stop-Loss-Schutz: Die Festlegung eines Stop-Loss-Preises hilft, das Abwärtsrisiko effektiv zu kontrollieren, wenn sich der Preis um eine bestimmte Größenordnung nachteilig bewegt.
  4. Flexible Parameter: Die Benutzer können nach ihren Vorlieben Parameter wie gleitende Durchschnittszeiten, Stop-Loss-Prozentsatz und die Frage festlegen, ob die Position geschlossen werden soll, wenn der Schlusskurs der vorherigen Kerze unter dem kurzfristigen gleitenden Durchschnitt liegt.

Strategische Risiken

  1. Parameteroptimierung: Verschiedene Parameter-Einstellungen haben einen erheblichen Einfluss auf die Leistung der Strategie und erfordern eine Parameteroptimierung und ein Backtesting in verschiedenen Marktumgebungen, um die optimale Parameterkombination zu finden.
  2. Unbeständige Märkte: In unbeständigen Märkten schwanken die Preise häufig zwischen den langfristigen und kurzfristigen gleitenden Durchschnitten, was möglicherweise zu häufigen Eröffnungen und Schließungen von Positionen und zu geringeren Handelskosten führt.
  3. Trendumkehr: Wenn sich ein Markttrend umkehrt, kann die Strategie aufeinanderfolgende Verluste erleiden. Zu diesem Zeitpunkt ist es notwendig, andere Indikatoren oder Signale zu kombinieren, um die Trendumkehr zu beurteilen und die Strategie rechtzeitig anzupassen.
  4. Black Swan-Ereignisse: Wenn der Markt große, unvorhersehbare plötzliche Ereignisse erlebt, können die Preise drastisch schwanken, was zu Stop-Losses führt und die Strategie erheblichen Verlusten aussetzt.

Strategieoptimierungsrichtlinien

  1. Trendbeurteilung: Vor der Eröffnung einer Position müssen weitere Trendbeurteilungsindikatoren wie ADX eingeführt werden, um die Stärke und Richtung des aktuellen Trends zu bestätigen und die Genauigkeit der Eintrittssignale zu verbessern.
  2. Dynamischer Stop-Loss: Der Stop-Loss-Level wird dynamisch anhand von Indikatoren wie Preisvolatilität und ATR angepasst, wobei der Stop-Loss bei hoher Preisvolatilität vergrößert und bei geringer Preisvolatilität verschärft wird.
  3. Positionsgröße: Dynamische Anpassung der Positionsgröße jedes Eintrags anhand von Faktoren wie Markttrendstärke und Preisvolatilität, Erhöhung der Positionsgröße, wenn der Trend stark und die Volatilität moderat ist, und Verringerung der Positionsgröße, wenn der Trend schwach oder die Volatilität zu hoch ist.
  4. Lang-Short-Hedging: Überlegen Sie, ob Sie gleichzeitig Signale sowohl von der Long- als auch von der Short-Seite überwachen und Positionen in verschiedenen Märkten oder Zeitrahmen absichern möchten, um das Gesamtrisiko der Strategie zu verringern.

Zusammenfassung

Die Pullback-Tracking-Strategie für gleitende Durchschnitte erfasst langfristige Handelschancen bei Kursrückgängen in einem Aufwärtstrend, indem sie die relative Position von zwei gleitenden Durchschnitten mit unterschiedlichen Perioden verwendet. Diese Strategie eignet sich für Trending-Märkte und kann bei geeigneten Parameter-Einstellungen und Stop-Losses in Trending-Bedingungen stabile Renditen erzielen. Die Strategie ist jedoch in unruhigen Märkten und bei Trendumkehrungen mit bestimmten Risiken konfrontiert. Durch die Einführung mehrerer Indikatoren, die Optimierung der Positionsgröße, die Implementierung dynamischer Stop-Losses und andere Methoden können die Leistung und Stabilität dieser Strategie weiter verbessert werden.


/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © contapessoal_ivan
// @version=5
strategy("Pullback Strategy", 
     overlay=true, 
     initial_capital=1000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, // 100% of balance invested on each trade
     commission_type=strategy.commission.cash_per_contract, 
     commission_value=0.005) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("26 Jan 2023 00:00 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("26 Mar 2024 23:59 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)


Mehr