Dynamische Pullback-Handelsstrategie für den gleitenden Durchschnitt


Erstellungsdatum: 2024-02-27 14:38:45 zuletzt geändert: 2024-02-27 14:38:45
Kopie: 0 Klicks: 312
1
konzentrieren Sie sich auf
1166
Anhänger

Dynamische Pullback-Handelsstrategie für den gleitenden Durchschnitt

Überblick

Diese Strategie verwendet das Doppel-Grenzen-System, um nach potenziellen Durchbruchsmöglichkeiten in bestimmten Aktien oder Kryptowährungen zu suchen. Die Grundprinzip ist, Aktien oder Kryptowährungen zu kaufen, wenn die kurzfristige Grenze von der langfristigen unterhalb zurückgeht.

Strategieprinzip

Die Strategie nutzt einen einfachen Moving Average (SMA) aus zwei verschiedenen Perioden als Handelssignal. Der erste SMA-Zyklus ist länger und repräsentiert die allgemeine Trendrichtung. Der zweite SMA-Zyklus ist kürzer und dient dazu, kurzfristige Preisbewegungen zu erfassen.

Wenn der kurzfristige SMA den langfristigen SMA von unten durchzieht, bedeutet dies, dass der Preis in einer insgesamt steigenden Tendenz ist, und die Strategie eröffnet daher mehrere Positionen. Wenn der Preis sinkt, wird der langfristige SMA erneut getestet, was das Ende des kurzfristigen Pullbacks anzeigt, und die Strategie berücksichtigt den Stop-Loss oder den Gewinn, um die Position zu schließen.

Die Strategie enthält außerdem die Bedingungen für den Überverkauf und den Überkauf, um den Handel unter extremen Umständen zu vermeiden. Die Position wird nur dann eröffnet, wenn gleichzeitig die Bedingungen für die Überschneidung und die angemessene Bewertung erfüllt sind.

Strategische Vorteile

  • Mit Hilfe eines Dual-Equilibrium-Systems können kurz- und mittelfristige Trends effektiv erkannt werden.
  • Die Vorzüge von Trend-Tracking und Retracing
  • Die integrierten Überverkaufs- und Überkaufspannen reduzieren unnötige Transaktionen

Risikoanalyse

  • Das Ende der Umschaltung ist schwierig zu beurteilen und kann zu einer Fehlentscheidung führen.
  • Wenn sich der Trend ändert, können Sie nicht schnell aufhören und können größere Verluste erleiden
  • Unzureichende Parameter-Einstellungen können zu häufigen oder konservativen Transaktionen führen

Strategieoptimierung

Die Strategie kann noch weiter optimiert werden:

  1. Mit Hilfe von komplexeren Instrumenten, wie z. B. Brin-Bändern, KD-Index, um Preisbewegungen und -trends zu ermitteln
  2. Der Zeitpunkt des Abschlusses des Rückschlags wird durch mehrere Faktoren bestimmt, wie z. B. Veränderungen des Handelsvolumens, Volatilität usw.
  3. Dynamische Anpassung der Positionsgröße zur Maximierung der Gewinne
  4. Optimierung der Stopp-Logik mit KAMA, Ichimoku-Cloud und niedrigeren Zeitleisten

Zusammenfassen

Diese Strategie integriert die Vorteile von Trend-Tracking und Kehrhandel und nutzt die doppelte Gleichgewicht-System, um Gelegenheiten zu beurteilen. Gleichzeitig sind bestimmte Überkauf-Überverkauf-Bedingungen eingebaut, um unnötige Positionen zu vermeiden.

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

// @version=5
strategy("Profitable Pullback Trading Strategy", overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs
ma_length1 = input.int(280,'MA length 1', step = 10,group = 'Moving Avg. Parameters', inline = 'MA')
ma_length2 = input.int(13,'MA length 2', step = 1,group = 'Moving Avg. Parameters', inline = 'MA')
sl = input.float(title="Stop Loss (%)", defval=0.07, step=0.1, group="Moving Avg. Parameters")
too_deep    = input.float(title="Too Deep (%)", defval=0.27, step=0.01, group="Too Deep and Thin conditions", inline = 'Too')
too_thin    = input.float(title="Too Thin (%)", defval=0.03, step=0.01, group="Too Deep and Thin conditions", inline = 'Too')

// Calculations
ma1 = ta.sma(close,ma_length1)
ma2 = ta.sma(close,ma_length2)
too_deep2   = (ma2/ma1-1) < too_deep
too_thin2   = (ma2/ma1-1) > too_thin

// Entry and close condtions
var float buy_price = 0
buy_condition = (close > ma1) and (close < ma2) and strategy.position_size == 0 and too_deep2 and too_thin2
close_condition1  = (close > ma2) and strategy.position_size > 0 and (close < low[1])
stop_distance = strategy.position_size > 0 ? ((buy_price - close) / close) : na
close_condition2 = strategy.position_size > 0 and stop_distance > sl
stop_price = strategy.position_size > 0 ? buy_price - (buy_price * sl) : na

// Entry and close orders
if buy_condition
    strategy.entry('Long',strategy.long)
if buy_condition[1]
    buy_price := open
if close_condition1 or close_condition2
    strategy.close('Long',comment="Exit" + (close_condition2 ? "SL=true" : ""))
    buy_price := na

plot(ma1,color = color.blue)
plot(ma2,color = color.orange)