Die Ressourcen sind geladen. Beförderung...

Multi-Moving Average Trend Following Strategy - Langfristiges Anlage-Signalsystem auf Basis von EMA- und SMA-Indikatoren

Schriftsteller:ChaoZhang, Datum: 2024-12-13 10:28:02
Tags:EMASMA

img

Übersicht

Diese Strategie ist ein Trendfolgensystem, das auf der Kombination mehrerer gleitender Durchschnitte basiert und hauptsächlich die Crossover- und Positionsbeziehungen zwischen der wöchentlichen EMA20, dem täglichen SMA100, dem täglichen SMA50 und dem täglichen EMA20 nutzt, um mittelfristige bis langfristige Anlagemöglichkeiten zu erfassen.

Strategieprinzipien

Die Kernlogik der Strategie beruht auf folgenden Schlüsselbedingungen:

  1. Verwendet den wöchentlichen exponentiellen gleitenden Durchschnitt (EMA1W20) für 20 Zeiträume als primären Trendindikator
  2. Kombination mit dem 100-Tage-Simple Moving Average (SMA1D100) zur sekundären Trendbestätigung
  3. Verwendet den 50-tägigen einfachen gleitenden Durchschnitt (SMA1D50) als mittelfristige Trendreferenz
  4. Verwendet den 20-tägigen exponentiellen gleitenden Durchschnitt (EMA1D20) zur kurzfristigen Trendbestätigung Das System erzeugt ein langes Signal, wenn der Preis 14 aufeinanderfolgende Tage über EMA1W20 und SMA1D100 hält und dann unter SMA1D50 fällt.

Strategische Vorteile

  1. Mehrzeitrahmenvalidierung: Kombiniert wöchentliche und tägliche gleitende Durchschnitte für eine umfassendere Trendbewertung
  2. Strenge Einstiegsbedingungen: Der Preis muss sich über ausreichend lange Zeit über den wichtigsten gleitenden Durchschnitten halten, um falsche Signale effektiv zu filtern
  3. angemessene Risikokontrolle: Verwenden von mehreren gleitenden Durchschnittsquerschnitten und Positionen für klare Risikogrenzen
  4. Hohe Anpassungsfähigkeit: Strategieparameter können für verschiedene Marktumgebungen angepasst werden
  5. Klarer Ausführung: Handelssignale sind gut definiert und für die programmatische Umsetzung geeignet.

Strategische Risiken

  1. Verzögerungsrisiko: Die gleitenden Durchschnittswerte weisen von Natur aus eine gewisse Verzögerung auf, was möglicherweise zu verzögerten Einträgen führt.
  2. Nebenmarktrisiko: Kann häufige falsche Breakout-Signale in verschiedenen Märkten erzeugen
  3. Parameterempfindlichkeit: Die optimalen Parameter können in verschiedenen Marktumgebungen variieren.
  4. Abzugsrisiko: Bei plötzlichen Trendumkehrungen können erhebliche Abzüge auftreten
  5. Ausführungsrisiko: erfordert einen stabilen Betrieb des Systems, um Signalverlust oder Ausführungsverzögerungen zu vermeiden

Strategieoptimierungsrichtlinien

  1. Einbeziehung von Volumenindikatoren: Hinzufügen eines Volumenbestätigungsmechanismus zur Verbesserung der Signalverlässlichkeit
  2. Optimierung der Anpassung von Parametern: Entwicklung dynamischer Mechanismen zur Anpassung von Parametern
  3. Hinzufügen von Filterbedingungen: Erwägen Sie, Marktumfeldindikatoren hinzuzufügen
  4. Verbesserung des Stop-Loss-Mechanismus: Ausarbeitung detaillierter Stop-Loss- und Gewinnspielregeln
  5. Verbesserung der Signalbestätigung: Überlegen Sie, weitere technische Indikatoren für die Hilfsbestätigung hinzuzufügen.

Zusammenfassung

Diese Strategie stellt durch mehrere gleitende Durchschnittskombinationen einen relativ umfassenden Trend nach dem System her, der für mittelfristige bis langfristige Anleger geeignet ist. Obwohl sie bestimmte Verzögerungs- und Parameterempfindlichkeitsrisiken aufweist, hat die Strategie durch eine angemessene Risikokontrolle und kontinuierliche Optimierung praktischen Wert. Anlegern wird geraten, angemessene Anpassungen anhand ihrer Risikopräferenzen und Marktbedingungen vorzunehmen.


/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 1h
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/
// © petitepupu

//@version=5

ema20wTemp = ta.ema(close, 20)
ema20w = request.security(syminfo.tickerid, "1W", ema20wTemp, barmerge.gaps_on, barmerge.lookahead_off)
sma100d = ta.sma(close, 100)
sma50d = ta.sma(close, 50)
ema20d = ta.ema(close, 20)
daysAbove = input.int(14, title="Days", minval=1)
plot(ema20w, color=color.blue)
plot(sma100d, color=color.yellow)
plot(sma50d, color=color.red)
plot(ema20d, color=color.green)

longCondition = true
clean = true
for i = 0 to daysAbove
    if close[i] < ema20w or close[i] < sma100d or close > sma50d
        longCondition := false
        clean := false
        break

//TODO: 
if clean != true
    longCondition := true
    for i = 0 to daysAbove
        if close[i] > ema20w or close[i] > sma100d or close >= ema20d or -100 * (close - ema20d)/ema20d < 5.9
            longCondition := false
            break


// plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal", size = size.small)

if (longCondition)
    strategy.entry("Long", strategy.long)

    
strategy(title="LT Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=800)

Verwandt

Mehr