Basierend auf einer einfachen Doppel-Moving-Average-Crossover-Handelsstrategie


Erstellungsdatum: 2023-12-25 16:03:48 zuletzt geändert: 2023-12-25 16:03:48
Kopie: 0 Klicks: 643
1
konzentrieren Sie sich auf
1623
Anhänger

Basierend auf einer einfachen Doppel-Moving-Average-Crossover-Handelsstrategie

Überblick

Die Strategie basiert auf dem Gold- und Forksprinzip eines einfachen Moving Averages (SMA). Die Strategie verwendet zwei SMAs, den schnellen SMA und den langsamen SMA, um ein Kaufsignal zu erzeugen, wenn der schnelle SMA den langsamen SMA von unten durchbricht; ein Verkaufsignal wird erzeugt, wenn der schnelle SMA den langsamen SMA von oben nach unten durchbricht.

Strategieprinzip

Die Strategie beruht hauptsächlich auf zwei SMA-Indikatorlinien. Eine kürzere Einstellung während des schnellen SMA ermöglicht eine schnellere Erfassung der Preisänderung. Eine längere Einstellung während des langsamen SMA filtert den Lärm.

Durch die Einstellung verschiedener SMA-Zyklusparameter können die Parameter der Strategie in gewisser Weise an die unterschiedlichen Marktbedingungen angepasst werden. Die Strategie erlaubt außerdem die Einstellung eines Zeitrahmens, um die Strategieparameter auf historischen Daten zu testen.

Analyse der Stärken

  • Die Basis ist einfach und verständlich und basiert auf den bekannten SMA-Indikatoren
  • Anpassungsfähige SMA-Zyklusparameter
  • Einstellbarer Messzeitbereich zur Optimierung der Parameter
  • Die Signalerzeugung erfolgt durch Kreuzung und hat eine gewisse Filterwirkung auf die Durchbruchsignale, wodurch Fehltransaktionen reduziert werden können.

Risikoanalyse

  • Die SMA selbst ist rückständig und könnte kurzfristige Chancen verpassen.
  • Die Trends werden nicht beurteilt und die Signalwirkung kann instabil sein.
  • Unkorrekt eingestellte SMA-Periodenparameter erhöhen das Fehlsignal

Die folgenden Maßnahmen können gegen diese Risiken eingesetzt werden:

  • Senkung der SMA-Zyklen und Sensibilisierung
  • Trends werden in Kombination mit anderen Indikatoren beurteilt.
  • Die optimale Kombination von Parametern mit Hilfe des Parameteroptimierungstools

Optimierungsrichtung

  • Erhöhung der Stop-Loss-Strategie und Kontrolle von Einzelschäden
  • Erhöhung der Positionsverwaltung
  • Kombination mit anderen technischen Indikatoren
  • Mehr Machine Learning Algorithmen und dynamische Parameteroptimierung

Zusammenfassen

Diese Strategie gehört zu den typischen Trend-Tracking-Strategien. Die Anwendung eines einfachen Doppelgleichslinien-Kreuzungsprinzips ermöglicht die Erzielung einer besseren Tracking-Effekt, wenn die Parameter angemessen eingestellt sind. Die SMA selbst ist jedoch etwas zurückgeblieben und kann die Stärke der Trends nicht beurteilen. Daher müssen in der Praxis andere Hilfsmittel eingeführt werden, um eine Portfolio von Indikatoren zu bilden, die gleichzeitig mit automatisierter Parameteroptimierung und Risikokontrolle unterstützt werden, um die Strategie stabil und profitabel zu machen.

Strategiequellcode
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD')

strategy(title="SMA Cross Entry & Exit Strategy", overlay=true)

// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/


// === GENERAL INPUTS ===
// short ma
maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 36, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open , title = "Slow MA Source")
maSlowLength   = input(defval = 46, title = "Slow MA Period", minval = 1)

// === SERIES SETUP ===
// a couple of ma's..
maFast = sma(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)


// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"

// === LOGIC ===
//enterLong = crossover(maFast, maSlow)
//exitLong = crossover(maSlow, maFast)
enterLong = crossover(maSlow, maFast)
exitLong = crossover(maFast, maSlow)


// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)

// === FILL ====

fill(fast, slow, color = maFast > maSlow ? green : red)