Gleitender Durchschnitt Crossover System


Erstellungsdatum: 2024-01-03 16:22:18 zuletzt geändert: 2024-01-03 16:22:18
Kopie: 1 Klicks: 574
1
konzentrieren Sie sich auf
1621
Anhänger

Gleitender Durchschnitt Crossover System

Überblick

Die Strategie ist eine Multi-Hochspiel-Handelstrategie, die ein Handelssignal erzeugt, das auf einem Gold- und Quadrat-Death-Fork basiert, der auf einem Moving Average basiert. Es erzeugt ein Kaufsignal, wenn ein schneller Moving Average den langsamen Moving Average von unten durchdringt; es erzeugt ein Verkaufsignal, wenn ein schneller Moving Average den langsamen Moving Average von oben durchdringt.

Strategieprinzip

Die Strategie verwendet zwei Moving Averages, den 20-Tage-Simple Moving Average und den 30-Tage-Simple Moving Average. Ein Kaufsignal wird erzeugt, wenn der 20-Tage-Moving Average den 30-Tage-Moving Average von unten durchdringt; ein Verkaufsignal wird erzeugt, wenn der 20-Tage-Moving Average den 30-Tage-Moving Average von oben durchdringt.

Der Moving Average selbst ist ein Trendindikator, der die Richtung der Markttrends effektiv darstellt. Das Querprinzip ermöglicht es der Strategie, die Trendwendepunkte rechtzeitig zu erfassen und ein Handelssignal zu erzeugen. Die beiden Periodenlängen an den 20 und 30 Tagen sind so eingestellt, dass sie sowohl die Markttrends widerspiegeln als auch nicht zu empfindlich sind, um falsche Signale zu erzeugen.

Analyse der Stärken

Die Vorteile dieser Strategie zeigen sich in folgenden Aspekten:

  1. Die Strategie ist einfach, klar, leicht zu verstehen und zu implementieren und für Anfänger geeignet.
  2. Es ist wichtig zu wissen, dass es sich um eine gute Handelsstrategie handelt, um die Verringerung der unnötigen Verluste zu vermeiden.
  3. Der Moving Average selbst wirkt als Filter, um Geräusche aus dem Umfeld zu filtern und falsche Signale zu vermeiden.
  4. Die Einstellung der Periodenparameter ist vernünftig und beeinträchtigt nicht die Strategie-Stabilität.

Risikoanalyse

Diese Strategie birgt folgende Risiken:

  1. In der Schwankungsphase treten häufig Moving Average-Kreuzungen auf, was zu einer größeren Anzahl von Stop-Loss-Anweisungen führen kann.
  2. Der Moving Average ist im Trend hinterher und kann einen Teil der Gewinne verpassen.
  3. Die Einstellung der Parameter kann die Strategie-Stabilität beeinträchtigen.

Gegenmaßnahmen:

  1. Um die Kurve zu glätten und die Häufigkeit der Überschneidungen zu verringern, sollten sie mit Hilfe von Techniken wie Dreiecks-Moving-Averages (TMA) regelmäßig angepasst werden.
  2. Es ist wichtig, dass Sie sich mit anderen Indikatoren befassen, um Trends zu beurteilen und nicht in einem unsicheren Umfeld zu handeln.
  3. Optimierung der Parameter und Suche nach der optimalen Kombination der Parameter.

Optimierungsrichtung

Die Strategie kann vor allem in folgenden Bereichen optimiert werden:

  1. Versuchen Sie mit verschiedenen Arten von Moving Averages, wie beispielsweise Gewichtungs-, Dreieck- und Dreieckschnitten-Moving Averages.
  2. Die Zunahme der Einschätzung anderer technischer Indikatoren verhindert, dass in einem wackligen Markt ein Handelssignal erzeugt wird.
  3. Technische Analysemethoden, wie die Wellen- und Kanaltheorie, werden eingesetzt, um Trends zu beurteilen.
  4. Realzeit-Optimierung von Parametern mit Modellen wie Machine Learning;
  5. Das Geldmanagement wird durch eine Stop-Loss-Strategie in Kombination mit Quantifizierungsinstrumenten optimiert.

Zusammenfassen

Das Moving Average Crossing System ist eine einfache und effektive Trend-Tracking-Strategie, die klar und leicht verständlich ist und sich hervorragend für Anfänger eignet. Die Strategie basiert hauptsächlich auf dem Moving Average, um ein Gold- und Gold-Stopp-Signal zu erzeugen, das durch den Bewegungshandel Gewinne erzielt. Die Strategie kann in vielerlei Hinsicht optimiert werden, um die Strategie stabiler und effizienter zu machen.

Strategiequellcode
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
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/
// © gliese581d

//@version=4
strategy(title="Moving Averages Testing", overlay=true, precision=2, calc_on_every_tick=false, max_bars_back=5000, pyramiding=2,  
 default_qty_type=strategy.percent_of_equity, default_qty_value=50, commission_type=strategy.commission.percent, initial_capital=10000)


//SETTINGS

longs_on = input(title="Long Trades enabled", defval=true)
shorts_on = input(title="Short Trades enabled", defval=true)

long_cond = input(title="Buy/Long Crossover Condition", defval="price x MA1", options=["price x MA1", "price x MA2", "MA1 x MA2"])
short_cond = input(title="Sell/Short Crossunder Condition", defval="price x MA2", options=["price x MA1", "price x MA2", "MA1 x MA2"])

ma1_type = input(title="Moving Average 1 Type", defval="SMA", options=["SMA", "EMA"])
ma1_len = input(defval=20, title="Moving Average 1 Len", type=input.integer, minval=1, maxval=1000, step=1)
ma2_type = input(title="Moving Average 2 Type", defval="SMA", options=["SMA", "EMA"])
ma2_len = input(defval=30, title="Moving Average 2 Len", type=input.integer, minval=1, maxval=1000, step=1)


//MOVING AVERAGES

ma_1 = ma1_type == "EMA" ? ema(close, ma1_len) : sma(close, ma1_len)
ma_2 = ma2_type == "EMA" ? ema(close, ma2_len) : sma(close, ma2_len)


//STRATEGY

//trade entries
long_entry = long_cond == "price x MA1" ? crossover(close, ma_1) : long_cond == "price x MA2" ? crossover(close, ma_2) : long_cond == "MA1 x MA2" ? crossover(ma_1, ma_2) : false
short_entry = short_cond == "price x MA1" ? crossunder(close, ma_1) : short_cond == "price x MA2" ? crossunder(close, ma_2) : short_cond == "MA1 x MA2" ? crossunder(ma_1, ma_2) : false

start_month = input(defval=4, title="Strategy Start Month", type=input.integer, minval=1, maxval=12, step=1)
start_year = input(defval=2018, title="Strategy Start Year", type=input.integer, minval=2000, maxval=2025, step=1)
end_month = input(defval=12, title="Strategy End Month", type=input.integer, minval=1, maxval=12, step=1)
end_year = input(defval=2020, title="Strategy End Year", type=input.integer, minval=2000, maxval=2025, step=1)

in_time =true

strategy.entry("Long", strategy.long, when=longs_on and in_time and long_entry)
strategy.close("Long", when=longs_on and not shorts_on and short_entry)

strategy.entry("Short", strategy.short, when=shorts_on and in_time and short_entry)
strategy.close("Short", when=shorts_on and not longs_on and long_entry)


//PLOTTING

//color background
last_entry_was_long = nz(barssince(long_entry)[1], 5000) < nz(barssince(short_entry)[1], 5000)
bgcol = (longs_on and last_entry_was_long) ? color.green : (shorts_on and not last_entry_was_long) ? color.red : na
bgcolor(color=bgcol, transp=90)

plot((long_cond == "price x MA1" or long_cond == "MA1 x MA2") or (short_cond == "price x MA1" or short_cond == "MA1 x MA2") ? ma_1 : na, color=color.blue)
plot((long_cond == "price x MA2" or long_cond == "MA1 x MA2") or (short_cond == "price x MA2" or short_cond == "MA1 x MA2") ? ma_2 : na, color=color.black)
plotshape(long_entry, style=shape.triangleup, location=location.belowbar, color=color.green)
plotshape(short_entry, style=shape.triangledown, location=location.abovebar, color=color.red)