Diese Strategie basiert auf gleitenden Durchschnittslinien.

Schriftsteller:ChaoZhang, Datum: 2024-01-23 10:38:18
Tags:

img

Übersicht

Diese Strategie ist eine Dynamikstrategie, die auf gleitenden Durchschnittslinien basiert. Sie erzeugt Handelssignale, indem sie einfache gleitende Durchschnitte verschiedener Perioden berechnet und ihre Überschreitungssituationen vergleicht. Insbesondere wird ein Kaufsignal erzeugt, wenn die kurzfristige gleitende Durchschnittslinie über die langfristige gleitende Durchschnittslinie kreuzt; wenn die kurzfristige gleitende Durchschnittslinie unter die langfristige gleitende Durchschnittslinie kreuzt, wird ein Verkaufssignal erzeugt.

Strategieprinzip

Die Kernlogik dieser Strategie basiert auf dem Momentum-Effekt, der die Beständigkeit der Aktienpreistendenzen ist. Bewegliche Durchschnittslinien können den Veränderungstrend der Aktienkurse effektiv widerspiegeln. Wenn die kurzfristige gleitende Durchschnittslinie über die langfristige gleitende Durchschnittslinie überschreitet, bedeutet dies, dass der Aktienkurs einen Aufwärtstrend beginnt; im Gegenteil, wenn die kurzfristige gleitende Durchschnittslinie unter die langfristige gleitende Durchschnittslinie überschreitet, bedeutet dies, dass der Aktienkurs einen Abwärtstrend beginnt. Diese Strategie erzeugt Handelssignale, die auf diesem Prinzip basieren.

Insbesondere werden ein 13-tägiger einfacher gleitender Durchschnitt und ein 34-tägiger einfacher gleitender Durchschnitt in der Strategie definiert. Nachdem diese beiden gleitenden Durchschnitte auf der Grundlage des täglichen Schlusskurses berechnet wurden, wird ihr Größenverhältnis verglichen. Wenn die 13-tägige Linie über die 34-tägige Linie geht, wird ein Kaufsignal generiert, das anzeigt, dass der Aktienkurs einen Aufwärtstrend betritt und eine Long-Position eingerichtet werden sollte; wenn die 13-tägige Linie unter die 34-tägige Linie geht, wird ein Verkaufssignal generiert, das anzeigt, dass der Aktienkurs einen Abwärtstrend betritt und die Position geschlossen werden sollte.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie einfach und leicht zu verstehen und umzusetzen ist. Die gleitende Durchschnittslinie ist einer der grundlegendsten und am häufigsten verwendeten technischen Indikatoren. Ihr Prinzip ist einfach und leicht zu verstehen und anzuwenden. Gleichzeitig hat sich das gleitende Durchschnittslinie-Kreuzungssignal auch durch langfristige Praxis als wirksam erwiesen.

Darüber hinaus ist die Parameter-Einstellung dieser Strategie flexibel und kann je nach verschiedenen Sorten und Marktbedingungen angepasst werden. Zum Beispiel können die Zyklusparameter der gleitenden Durchschnittslinie geändert werden, um die Empfindlichkeit der Strategie anzupassen. Dies bietet Raum für die Optimierung und Anpassung der Strategie.

Risikoanalyse

Das größte Risiko dieser Strategie besteht darin, dass es mehr falsche Signale geben kann und man in Bereichsmärkten gefangen wird. Wenn die Preise stark schwanken, können gleitende Durchschnittslinien häufige Crossovers erzeugen, was zu falschen Signalen führt. Zu diesem Zeitpunkt müssen Sie die Zyklusparameter der gleitenden Durchschnittslinie anpassen, um etwas Rauschen zu filtern.

Darüber hinaus kann bei einer größeren Umkehr des Marktes der Stop-Loss-Punkt der Strategie durchbrochen werden, was zu größeren Verlusten führt.

Optimierungsrichtlinien

Die folgenden Aspekte dieser Strategie können optimiert werden:

  1. Optimieren der Zyklusparameter der gleitenden Durchschnittslinie, um die optimale Kombination von Parametern für verschiedene Sorten und Marktbedingungen zu finden.

  2. Hinzufügen einer Filtration anderer technischer Indikatoren wie MACD und KD, um falsche Signale in Bereichsgebundenen Märkten zu vermeiden.

  3. Optimierung und dynamische Anpassung der Stop-Loss-Strategie, um zu vermeiden, dass der Stop-Loss-Punkt zu nahe ist und gleichzeitig den Stop-Loss mit einer höheren Wahrscheinlichkeit des Durchbruchs gewährleistet.

  4. Erhöhung der Positionsmanagementmechanismen wie Fixinvestitionen und Positionsquote zur Kontrolle des Einzeltransaktionsrisikos.

Schlussfolgerung

Diese Strategie ist eine sehr klassische gleitende Durchschnitts-Crossover-Strategie. Sie erzeugt Kauf- und Verkaufssignale, indem sie die Beziehung zwischen kurzfristigen und langfristigen gleitenden Durchschnitten berechnet und vergleicht. Die Vorteile dieser Strategie sind einfache, flexible Parameter und für Anfänger geeignet; die Nachteile sind, dass die Signale möglicherweise nicht stabil genug sind und es leicht ist, in Bereichsmärkten gefangen zu werden. Mit der richtigen Optimierung kann sie immer noch eine sehr praktische quantitative Strategie werden.


/*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"}]
*/

//@version=3
// TODO: update strategy name
strategy("{STRATEGY NAME}", overlay=true)

// === TA LOGIC ===

//
//
// TODO: PUT YOUR TA LOGIC HERE
LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34))
SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21))

// === INPUT BACKTEST DATE RANGE ===
enableShorts = input(false, title="Enable short entries?")

FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2018, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === STRATEGY BUY / SELL ENTRIES ===

// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN

if buy()
    strategy.entry("Long", strategy.long, comment="Long")

if sell()
    if (enableShorts)
        strategy.entry("Short", strategy.short, comment="Short")
    else
        strategy.close("Long")

// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(30, title='Take Profit %', type=float)/100

stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)

strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)

Mehr