Momentum-basierte Retracement-Strategie


Erstellungsdatum: 2024-01-23 15:23:14 zuletzt geändert: 2024-01-23 15:23:14
Kopie: 0 Klicks: 564
1
konzentrieren Sie sich auf
1617
Anhänger

Momentum-basierte Retracement-Strategie

Überblick

Diese Strategie dient der Identifizierung potenzieller Rückschrittmöglichkeiten in den Märkten. Die Strategie verwendet ein doppelte Gleichgewichtssystem: ein langfristiger Moving Average (MA1) und ein kurzfristiger Moving Average (MA2). Das Hauptziel ist es, eine potenzielle Rückschrittmöglichkeit in einem großen Trend zu zeigen, wenn der Schlusskurs unter MA1 liegt, aber über MA2 liegt, um mehr zu tun.

Strategieprinzip

Die Strategie verwendet zwei Moving Averages: MA1 (lang) und MA2 (kurz). Die Theorie ist, dass es eine gute Gelegenheit sein kann, wenn der kurzfristige Preis zurückgeht und die Unterstützung des langfristigen Trends testet. Insbesondere, wenn der Schlusskurs über der langfristigen Unterstützung (MA1) liegt, zeigt dies, dass der Trend gut ist.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Einfache, leicht verständliche und flexibel anpassbare Parameter
  2. Mit Hilfe des Binary Equity Systems Trends erkennen und Negativtrades vermeiden
  3. Anpassbare Zeitfilter, um Marktunregelmäßigkeiten in bestimmten Zeiträumen zu vermeiden
  4. Anpassbare Positionsgröße für unterschiedliche Risikopräferenzen
  5. Verlustrisiken durch Stop-Loss-Mechanismen begrenzt

Risikoanalyse

Die Strategie birgt auch folgende Risiken:

  1. Der Rückschritt ist gescheitert, die Preise fallen weiter und können nicht mehr aufhören.
  2. Der Trend dreht sich um, die ursprüngliche Unterstützung wird gebrochen
  3. Der US-Markt ist von starken Schwankungen betroffen, der Moving Average hat sich von den US-Marken abgewandt.
  4. Fehl gewählte Zeitspanne, verpasste Handelschancen

In diesem Zusammenhang können Optimierungen und Verbesserungen in folgenden Bereichen vorgenommen werden:

  1. Optimierung der Moving Average-Parameter und Verbesserung der Signalqualität
  2. Optimierung des Stop-Loss-Niveaus, um Gewinne zu erzielen, wobei das Risiko minimiert wird
  3. Zeitfilter anpassen, um sich auf die besten Handelszeiten einzustellen
  4. Verschiedene Sorten und Marktumgebungen

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung von Moving Average-Parametern, um die beste Kombination zu finden
  2. Verschiedene Stoppmechanismen wie Tracking Stop, Vibration Stop, etc. testen
  3. Zusätzliche Filter wie Volumen-Filter, Volatilitätsfilter usw.
  4. Erhöhung der Positionsmanagement-Mechanismen, wie z. B. Gold- und Todesvorräte
  5. Hinzugefügt automatische Bremsvorrichtung
  6. Rückmessung und Berechnung von Kennzahlen zur Ermittlung der optimalen Parameter

Zusammenfassen

Diese Strategie ist im Großen und Ganzen eine einfache und praktische Kurzlinie-Rückzug-Strategie. Sie verwendet die Doppel-Gleichlinie, um die Rücktrittschancen zu identifizieren, und setzt einen beweglichen Stop-Loss ein, um das Risiko zu kontrollieren. Die Strategie ist leicht zu verstehen und zu implementieren, die Parameter sind flexibel anpassbar und können an die verschiedenen Risikopräferenzen angepasst werden.

Strategiequellcode
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ZenAndTheArtOfTrading / www.PineScriptMastery.com
// @version=5
strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=50000,
     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("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +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)