Genaue Trendumkehrungs-Durchschnittsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-22 12:14:29
Tags:

img

Übersicht

Diese Strategie wird Golden Cross Death Cross Strategy genannt. Ihre Kernidee besteht darin, die starken Signale zu nutzen, die durch das goldene Kreuz und das Todeskreuz von zwei gleitenden Durchschnitten verschiedener Zeitrahmen erzeugt werden, um Trendumkehrungen auf dem Markt zu erfassen und von niedrigem Kauf / hohem Verkauf zu profitieren.

Strategie Logik

In dieser Strategie berechnen wir die 50-Perioden- und 200-Perioden-Simple Moving Average (SMA) -Linien. Wenn der 50-Tage-SMA traditionell unter den 200-Tage-SMA überschreitet, wird er als Death Cross bezeichnet, was einen bärischen Ausblick signalisiert. Und wenn der 50-Tage-SMA über den 200-Tage-SMA überschreitet, ist es ein goldenes Kreuz, das auf Aufschwung hinweist.

Die Handelslogik besteht einfach darin, Positionen auf der Grundlage dieser Signale einzunehmen - bei einem Todeskreuz kurz zu gehen und bei einem goldenen Kreuz lang zu gehen.

Darüber hinaus bietet die Strategie anpassbare Datumsbereiche für Backtests, so dass wir die tatsächliche Wirksamkeit dieser Crossover-Signale über verschiedene Zeiträume hinweg untersuchen können.

Vorteile

  1. Wirksam erfasst Trendumkehrpunkte für offene Positionen in der Nähe von Schlüsselbereichen
  2. Kombination von zwei SMAs aus verschiedenen Perioden filtert falsche Signale aus
  3. Die Backtesting-Funktion untersucht die tatsächliche Leistung in allen Marktsystemen
  4. Saubere Grafiken zeigen visuell Kreuzungssignale und Positionsänderungen an

Risiken

  1. SMA-Kreuzungen verzögern extreme Umkehrungen und können sie nicht vorhersagen
  2. Die Daten aus den Backtests können sich aufgrund von Kosten und Rutschverhalten von den Leistungen im Live-Bereich unterscheiden.
  3. Parameterauswahl wie SMA-Perioden beeinflussen die Ergebnisse stark
  4. Notwendigkeit, Grundlagen und Techniken zu integrieren, nicht nur mechanischen Handel

Um die Risiken anzugehen, können wir Parameter optimieren, Filter hinzufügen, Risiken verwalten, die Strategie auf Papier handeln usw. um Risiken zu minimieren.

Möglichkeiten zur Verbesserung

Die wichtigsten Möglichkeiten zur Optimierung dieser Strategie sind:

  1. Prüfung von SMA unterschiedlicher Periodenkombinationen
  2. Fügen Sie Filter wie Volumen, Volatilität, um Whipsaws zu vermeiden
  3. Einbeziehung von Wirtschaftsdaten oder Nachrichten für Filter
  4. Implementieren Sie Stop-Loss-Mechanismen wie Bewegung/Zeitstopp
  5. Bewertung der Leistung über verschiedene Haltungszeiten

Durch die Untersuchung der Auswirkungen der Parameter können wir bessere gleitende Durchschnitts-Crossover-Systeme entdecken.

Schlussfolgerung

Diese Strategie nutzt den klassischen technischen Indikator der gleitenden Durchschnittskreuze, um wichtige Wendepunkte in den Märkten zu erfassen. Mit einfacher Logik und bequemen Backtest-Funktionen kann sie dabei helfen, Trends als Teil eines breiteren Systems zu verfolgen.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[S_R__9] - Death and Golden Cross", overlay=true)

// Specific Time Date Range For Backtest
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31, group='DATE CONFIG')
startMonth = input.int(title='Start Month', defval=1, minval=1, maxval=12, group='DATE CONFIG')
startYear = input.int(title='Start Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

endDate = input.int(title='End Date', defval=31, minval=1, maxval=31, group='DATE CONFIG')
endMonth = input.int(title='End Month', defval=12, minval=1, maxval=12, group='DATE CONFIG')
endYear = input.int(title='End Year', defval=2023, minval=1800, maxval=2100, group='DATE CONFIG')

SPECIFIC_DATE = input.bool(title='USE SPECIFIC DATE ?', defval=false, group='DATE CONFIG')

inDateRange = SPECIFIC_DATE ? time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0) : true

// Calculate 50 SMA and 200 SMA
sma50 = ta.sma(close, 50)
sma200 = ta.sma(close, 200)

// Detect a Death Cross (50 SMA crossing below 200 SMA)
deathCross = ta.crossunder(sma50, sma200)
// Detect a Golden Cross (50 SMA crossing above 200 SMA)
goldenCross = ta.crossover(sma50, sma200)

// Strategy Execution
if (inDateRange)
    if (deathCross)
        strategy.entry("Death Cross long", strategy.short)

    if (goldenCross)
        strategy.entry("Golden Cross short", strategy.long)

// Plot SMAs
plot(sma50, color=color.red, title="50 SMA")
plot(sma200, color=color.blue, title="200 SMA")

// Plotting Death Cross signal
plotshape(series=deathCross and inDateRange, title="Death Cross Signal", location=location.belowbar, color=color.red, style=shape.labeldown, text="DEATH CROSS")

// Plotting Golden Cross signal
plotshape(series=goldenCross and inDateRange, title="Golden Cross Signal", location=location.abovebar, color=color.green, style=shape.labelup, text="GOLDEN CROSS")


Mehr