Strategie zur Verfolgung des Pullbacks des gleitenden Durchschnitts


Erstellungsdatum: 2024-03-28 18:00:05 zuletzt geändert: 2024-03-28 18:00:05
Kopie: 0 Klicks: 603
1
konzentrieren Sie sich auf
1617
Anhänger

Strategie zur Verfolgung des Pullbacks des gleitenden Durchschnitts

Überblick

Die Hauptidee der Strategie besteht darin, die Rebound-Chancen nach einer Marktrückführung durch die Verwendung von Moving Averages aus zwei verschiedenen Perioden zu erfassen. Die Strategie eröffnet mehr Positionen, wenn die Preise über den langfristigen Durchschnitt liegen und eine Rückkehr zur kurzfristigen Durchschnittsequenz auftreten, und platziert die Positionen, wenn die Preise wieder auf die kurzfristige Durchschnittsequenz oder den Stop-Loss-Preis stoßen. Die Strategie versucht, in der Trendbewegung einen Gewinn zu erzielen, indem sie eine Rücknahme-Kauf-Chance in der Tendenz sucht.

Strategieprinzip

  1. Berechnen Sie einen Moving Average für zwei verschiedene Perioden (MA1 und MA2), wobei MA1 der langfristige und MA2 der kurzfristige Mittelwert ist.
  2. Wenn der Schlusskurs oberhalb von MA1 und unterhalb von MA2 liegt und keine aktuelle Position gehalten wird und die aktuelle Zeit innerhalb des festgelegten Handelszeitraums liegt, wird eine Strategie ausgeführt, um eine Position zu eröffnen.
  3. Erfassen Sie den Eröffnungspreis BuyPrice und berechnen Sie den StopPrice ((i.e. den Prozentsatz der Eröffnungspreis-Senkung i_stopPercent)).
  4. Strategie-Plating, wenn der Schlusskurs wieder auf MA2 steht und i_lowerClose false ist oder der Schlusskurs den StopPrice überschreitet.
  5. Wenn i_lowerClose wahr ist, wird der Kurs platziert, wenn der Schlusskurs höher als MA2 ist und der vorherige K-Linie-Schlusskurs niedriger als MA2 ist.

Strategische Vorteile

  1. Trendverfolgung: Ermittlung des aktuellen Gesamttrends durch die Bestimmung der Position des Preises in Bezug auf die langfristige Durchschnittslinie und die Suche nach Eintrittschancen in den Trends.
  2. Rückschaltkauf: Suche nach Kaufmöglichkeiten, die den Preis in einem Aufwärtstrend zurück zur kurzfristigen Durchschnittslinie bringen, was den Preisverhältnis für den Kauf von Punkten erhöht.
  3. Stop-Loss-Schutz: Setzen Sie einen Stop-Loss-Preis, der automatisch ausgelöscht wird, wenn die Preisumkehr eine bestimmte Größe erreicht, um das Abwärtsrisiko effektiv zu kontrollieren.
  4. Flexible Parameter: Der Benutzer kann die Periodizität der Durchschnittslinie, den Stop-Loss-Prozentsatz, die Platzierung der Position, wenn der Schlusskurs der vorherigen K-Linie unter dem kurzfristigen Durchschnitt liegt, flexibel anpassen.

Strategisches Risiko

  1. Parameteroptimierung: Verschiedene Parameter-Settings haben einen großen Einfluss auf die Strategie-Performance und erfordern eine Parameteroptimierung und -Retesting in verschiedenen Marktumgebungen, um die optimale Kombination von Parametern zu finden.
  2. In einem wackligen Markt können die Preise häufig zwischen den langfristigen Durchschnittslinien schwanken, was dazu führen kann, dass die Strategie häufiger Positionen schließt, was zu höheren Transaktionskosten führt.
  3. Trendwechsel: Wenn sich ein Marktwechsel ereignet, kann die Strategie in Folge Verluste verzeichnen. In Kombination mit anderen Indikatoren oder Signalen muss die Trendwechsel beurteilt und die Strategie rechtzeitig angepasst werden.
  4. Schwarze Schwimmereignisse: Bei bedeutenden, unvorhergesehenen Ereignissen in den Märkten kann es zu starken Preisschwankungen kommen, die die Stop-Loss-Strategie mit hohen Verlusten auslösen.

Richtung der Strategieoptimierung

  1. Trendbeurteilung: Einführung von mehr Trendbeurteilungsindikatoren, wie z. B. ADX, um die Stärke und Richtung des aktuellen Trends zu bestätigen und die Genauigkeit der Positionsöffnungssignale zu verbessern.
  2. Dynamische Stop-Loss: Die Stop-Loss-Position wird dynamisch angepasst, je nachdem, ob die Preise schwanken oder nicht. Die Stop-Loss-Position wird bei größeren Preisschwankungen entsprechend gelockert, während die Stop-Loss-Position bei kleineren Preisschwankungen entsprechend verschärft wird.
  3. Positionsmanagement: Die Positionsgröße wird bei jeder Position dynamisch angepasst, je nach der Stärke der Markttrends und der Preisschwankungen. Bei starken Trends und moderaten Schwankungen werden die Positionen erhöht und bei schwachen Trends oder zu hohen Schwankungen die Positionen verringert.
  4. Multiple-Foreign-Hedging: Erwägen Sie, die Signale von mehreren Fronten gleichzeitig zu überwachen, um Positionen in verschiedenen Märkten oder Zyklen abzusichern, um das Gesamtrisiko der Strategie zu senken.

Zusammenfassen

Die Moving-Average-Return-Tracking-Strategie nutzt die relative Position zwischen zwei verschiedenen Periodenachsen, um mehrere Gelegenheiten zu erfassen, wie der Preis in einem Aufwärtstrend rückgängig gemacht werden kann. Die Strategie ist für Trendmärkte geeignet und kann durch die Einrichtung geeigneter Parameter und Stopps einen stabilen Ertrag in einer Trendsituation erzielen.

Strategiequellcode
/*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)