Retracement-Handelsstrategie basierend auf gleitenden Durchschnitten


Erstellungsdatum: 2024-02-21 17:03:31 zuletzt geändert: 2024-02-21 17:03:31
Kopie: 0 Klicks: 648
1
konzentrieren Sie sich auf
1617
Anhänger

Retracement-Handelsstrategie basierend auf gleitenden Durchschnitten

Überblick

Die Hauptidee der Strategie ist es, kurzfristige Rückgänge in Richtung des langfristigen Trends zu handeln. Konkret wird die langfristige Trendrichtung durch den 200-Tage-Simple Moving Average und die kurzfristige Trendrichtung durch den 10-Tage-Simple Moving Average bestimmt.

Strategieprinzip

Die Strategie nutzt die 200-Tage-Simple Moving Average und die 10-Tage-Simple Moving Average, um die Markttrends zu ermitteln. Wenn der Preis die 200-Tage-Linie überschreitet, gilt dies als Eintritt in den Mehrkopfmarkt, und wenn der Preis die 200-Tage-Linie unterbricht, gilt dies als Eintritt in den Markt. In den Mehrkopfmärkten, wenn der Preis in der Nähe der 10-Tage-Linie fällt, bedeutet dies eine kurzfristige Anpassung.

Insbesondere, wenn die folgenden Bedingungen erfüllt sind, mehr Eintritt in die Arena: Preis über der 200-Tage-Linie, Preis unter der 10-Tage-Linie, zuvor keine Positionen gehalten. Wenn die folgenden Bedingungen erfüllt sind, ist die Ausfahrt aus dem Gelände aus dem Gelände: Preis über der 10-Tage-Linie, zuvor mehrere Positionen gehalten. Um große Verluste zu verhindern, wurde ein FAILSAFE Stop-Loss eingerichtet, wenn der Rückzug vom höchsten Punkt mehr als 10% beträgt, wird der Rückzug direkt gestoppt.

Wie man sehen kann, basiert die Handelslogik der Strategie hauptsächlich auf dem Gold-Dod-Fork der Mittellinie, wobei Rückkauf- und Trend-Stopps in der Richtung des Trends nach der Beurteilung des langen und kurzen Mittelwertes durchgeführt werden, was zu einer typischen Trend-Tracking-Strategie gehört.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, Trends mit niedrigen Kapitalkosten zu verfolgen, um überschüssige Gewinne zu erzielen. Die konkreten Vorteile sind:

  1. Die Verwendung von lang- und kurzfristigen Mittelwertkombinationen, um die Richtung der Haupt- und Unterklasse zu bestimmen, ermöglicht es, mittelschnelle und langfristige Trendchancen effektiv zu locken und die kurzfristige Entwicklung zu vermeiden.

  2. Kurzfristige Rücknahme-Einnahmen ermöglichen eine maximale Reduzierung der Einkaufskosten und damit einen höheren Gewinnraum.

  3. Ein FAILSAFE Stop-Loss-Mechanismus kann einzelne Verluste effektiv kontrollieren und die Sicherheit der Kontogelder gewährleisten.

  4. Es ist möglich, den Ausgang der Stoppschlange zu verfolgen, die Mittel-Langstrecken-Trendchancen zu nutzen und zusätzliche Alphas zu erhalten.

  5. Der Einsatz einer rein mechanischen Handelsmethode, die subjektiven emotionalen Einflüssen aus dem Weg geht, erleichtert die Umsetzung der Strategie.

Risikoanalyse

Diese Strategie birgt folgende Risiken:

  1. Rückmeldungsdaten-Risiko. Die tatsächlichen Marktbedingungen können von den historischen Daten abweichen, was zu einer Diskontierung der Effektivität von Live-Trading führt.

  2. False Breakout Risk. Wenn der Preis nur in der Nähe der Durchschnittslinie berührt wird, besteht eine hohe Wahrscheinlichkeit, dass er sich umdreht und leicht zu kleinen Verlusten führt.

  3. Trendwechselrisiken. Plötzliche Trendwechsel in der mittleren und langen Linie sind häufig, was zu größeren Verlusten führt.

Die Maßnahmen sind wie folgt:

  1. Erhöhung der Stichprobenmenge und Verwendung von mehr historischen Daten zur Überprüfung der Robustheit, um zuverlässige Ergebnisse zu gewährleisten.

  2. Optimierung der Parameter und Anpassung der Parameterkombination des linearen Systems zur Sicherstellung der Qualität der Handelssignale.

  3. Die Stop-Line wird entsprechend gelockert, um den Preisen einen gewissen Rückschlagraum zu geben und zu sensible Stop-Lines zu vermeiden.

Optimierungsrichtung

Die Strategie kann weiter optimiert werden:

  1. Die Erhöhung der Filterbedingungen, wie z. B. die Filterung des Transaktionsvolumens, kann die unnötigen Transaktionen, die durch den Falschbruch verursacht werden, wirksam reduzieren.

  2. In Kombination mit anderen Indikatoren wie KDJ, MACD usw. kann die Qualität des Handelssignals verbessert werden.

  3. Test unterschiedlicher Positionsdauer, Optimierung von Stop-Loss- und Stop-Loss-Strategien, weitere Steigerung der Sharp-Rate usw.

  4. Die Parameter werden dynamisch an die Marktbedingungen angepasst, um eine Anpassungs- und Optimierungsmechanismus zu bilden, der die Strategie robuster macht.

  5. Die Erweiterung der Algorithmus-Trading-Module und die automatische Erzeugung von Trading-Signalen mit Hilfe von Methoden wie maschinellem Lernen reduzieren die menschliche Intervention.

Zusammenfassen

Die Gesamtkonzeption dieser Strategie ist klar und einfach umzusetzen. Mit einer niedrigen Kostenverfolgung von mittleren und langen Trends kann ein stabiler Alpha erzielt werden. Es besteht jedoch ein gewisses Risiko, dass die Wahrscheinlichkeit eingeschränkt wird, und es muss weiter optimiert werden, um die Stabilität zu verbessern. Insgesamt ist die Strategie aus der Sicht der Trendverfolgung konzipiert und lohnt sich weitere Forschung und Anwendung.

Strategiequellcode
/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
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/
// © irfanp056
// @version=5

strategy("Simple Pullback Strategy", 
     overlay=true, 
     initial_capital=100000,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=1000, // 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)