Die Kreuzung der gleitenden Durchschnittswerte von Galileo Galilei

Schriftsteller:ChaoZhang, Datum: 2023-12-18 12:07:07
Tags:

img

Übersicht

Galileo Galilei's gleitende Durchschnitts-Crossover-Strategie ist eine Handelsstrategie, die auf gleitenden Durchschnitten basiert. Sie erzeugt Handelssignale, indem sie den exponentiellen gleitenden Durchschnitt (EMA) über einen bestimmten Zeitraum berechnet und Crossovers zwischen der EMA und dem Preis vergleicht. Verkaufssignale werden erzeugt, wenn der Preis von oben nach unten unter die EMA fällt, während Kaufsignale auftreten, wenn der Preis von unten nach oben über die EMA bricht.

Strategie Logik

Der Kern der Strategie von Galileo Galilei liegt im exponentiellen gleitenden Durchschnitt (EMA).

EMA heute = (Schlusskurs heute × Glättungsfaktor) + (EMA gestern × (1 − Glättungsfaktor))

Bei dem Glättungsfaktor α = (2/(Periodenzahl + 1))

Die Strategie berechnet dynamisch die EMA basierend auf Benutzer-Eingabe-Periodenparametern.

  1. Wenn der Preis von oben nach unten unter die EMA fällt, wird ein Verkaufssignal für den Short-Handel generiert.

  2. Wenn der Preis von unten über die EMA bricht, wird ein Kaufsignal für den Long-Handel ausgelöst.

Die Strategie zeigt auch die EMA-Linie auf dem Diagramm zusammen mit Pfeilmarkern, die Kauf- und Verkaufssignale anzeigen.

Analyse der Vorteile

Die Kreuzung der gleitenden Durchschnittswerte durch Galileo Galilei hat folgende Vorteile:

  1. Einfache Logik, die leicht zu verstehen und umzusetzen ist und für Anfänger geeignet ist.
  2. Schnellere Reaktion auf Preisänderungen durch den Einsatz von EMA.
  3. Klares Kreuzungssignal ohne übermäßige Whipsaws.
  4. Flexibilität bei der Anpassung an unterschiedliche Marktumgebungen durch Anpassung der EMA-Parameter.
  5. Definite Ein- und Ausstiegssignale sorgen für eine Risikokontrolle.

Risikoanalyse

Zu den potenziellen Risiken dieser Strategie gehören:

  1. Eine Stop-Loss-Strategie könnte helfen, zu optimieren.
  2. Die Abhängigkeit von einem einzigen Indikator macht ihn anfällig für Preismanipulationen.
  3. Verkürzung der EMA-Perioden könnte helfen.
  4. Nicht in der Lage, sich an längere einseitige Kursentwicklungen anzupassen, was eine gemeinsame Einschränkung bei gleitenden Durchschnittsstrategien darstellt.

Optimierungsrichtlinien

Einige Möglichkeiten zur Optimierung der Strategie:

  1. Einbeziehung anderer Indikatoren zur Konstruktion einer zusammengesetzten Strategie zur Erhöhung der Robustheit gegen falsche Signale.

  2. Sie können auch einen Stop-Loss-Mechanismus wie Trailing-Stop-Loss oder einen prozentualen Stop-Loss hinzufügen, um den Betrag des Einzelhandelsverlusts zu kontrollieren.

  3. Test EMAs mit verschiedenen Parameterkombinationen, um optimale Einstellungen zu finden.

  4. Bewertung der Wiedereintrittslogik, um Rebounds nach anfänglichen Preisumkehrungen zu erfassen und die Rentabilität zu verbessern.

Schlussfolgerung

Der bewegliche Durchschnitts-Crossover von Galileo Galilei ist eine einfache, aber praktische Strategie mit klarer Logik und einfacher Bedienbarkeit. Er eignet sich für Anfänger im Quant-Handel. Mit kontinuierlichen Verbesserungen könnte seine Leistung im Laufe der Zeit immer überlegener werden.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © armigoldman

//@version=3
strategy(title="Galileo Galilei", shorttitle="Galileo Galilei", overlay=true, initial_capital = 100000, default_qty_type=strategy.cash, default_qty_value = 100000)
len = input(11, minval=1, title="Length")
src = input(open, title="Source")
out = ema(src, len)
plot(out, title="EMA", color=yellow)
//last8h = highest(close, 8)
//lastl8 = lowest(close, 8)

//plot(last8h, color=red, linewidth=2)
//plot(lastl8, color=green, linewidth=2)

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date Inputs
fromDay = input(defval=1, title="From Day", minval=1, maxval=31)
fromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
fromYear = input(defval=2020, title="From Year", minval=1970)

// To Date Inputs
toDay = input(defval=1, title="To Day", minval=1, maxval=31)
toMonth = input(defval=12, title="To Month", minval=1, maxval=12)
toYear = input(defval=2021, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true


bearish = cross(close, out) == 1 and close[1] > close
bullish = cross(close, out) == 1 and close[1] < close

plotshape(bearish, color=white, style=shape.arrowdown, text="BEAR", location=location.abovebar)
plotshape(bullish, color=white, style=shape.arrowup, text="BULL", location=location.belowbar)

buy = if cross(close, out) == 1 and close[1] < close
    strategy.entry("BUY", strategy.long, when=time_cond)
        //strategy.close_all(when=bearish)
        // strategy.exit("exit", "Long", profit =, loss = 35)


sell = if cross(close, out) == 1 and close[1] > close
    strategy.entry("SELL", strategy.short, when=time_cond)
        //sell = if bearish
        //strategy.close_all(when=bullish)
        // strategy.exit("exit", "Long", profit = bullish, loss = 100)

profit = strategy.netprofit
if not time_cond
    strategy.close_all()

//plotshape(true, style=shape.triangleup, location=location.abovebar)


Mehr