Crossover-Strategie mit drei gleitenden Durchschnitten


Erstellungsdatum: 2023-11-06 09:48:33 zuletzt geändert: 2023-11-06 09:48:33
Kopie: 0 Klicks: 661
1
konzentrieren Sie sich auf
1617
Anhänger

Crossover-Strategie mit drei gleitenden Durchschnitten

Überblick

Die Triple Line-Cross-Strategie verwendet die Kreuzung von Moving Averages in verschiedenen Zeiträumen als Kauf- und Verkaufssignal und gehört zu den Trend-Tracking-Strategien. Die Strategie verwendet drei Moving Averages, darunter einen kurzfristigen Moving Average, einen mittleren Moving Average und einen langfristigen Moving Average, um ein Handelssignal zu erzeugen.

Strategieprinzip

Die Strategie berechnet zunächst einen kurzfristigen Moving Average (default 7 Tage), einen mittleren Moving Average (default 25 Tage) und einen langfristigen Moving Average (default 99 Tage) und erzeugt dann ein Handelssignal nach folgenden Regeln:

  1. Ein Kaufsignal wird erzeugt, wenn der kurzfristige Moving Average den mittleren Moving Average überschreitet.

  2. Ein Verkaufssignal wird erzeugt, wenn der kurzfristige Moving Average unter dem mittleren Moving Average durchbricht.

  3. Ein schnelles Kaufsignal wird erzeugt, wenn der kurzfristige Moving Average über den langfristigen Moving Average überschritten wird.

  4. Wenn der kurzfristige Moving Average unter dem langfristigen Moving Average liegt, wird ein schnelles Verkaufssignal erzeugt.

Die Strategie geht davon aus, dass ein Überschreiten des mittleren Moving Averages über den kurzfristigen Moving Average eine Trendwende in Richtung Aufwärts bewirkt und somit ein Kaufsignal erzeugt. Ein Überschreiten des mittleren Moving Averages unter dem kurzfristigen Moving Average bewirkt eine Trendwende in Richtung Abwärts und somit ein Verkaufssignal. Ebenso erzeugt ein Überschreiten des kurzfristigen Moving Averages mit dem langfristigen Moving Average ein schnelles Handelssignal, um die Trendänderungen der längeren Linie zu erfassen.

Analyse der Stärken

  • Die Strategie ist klar und einfach zu verstehen und umzusetzen.
  • Mit Hilfe von Multi-Zeit-Zyklus-Analysen kann die Veränderung von Markttrends effektiv erfasst werden.
  • Die Parameter der Strategie können optimiert werden, indem die Periodizität des Moving Averages angepasst wird.
  • Die visualisierte Kreuzung signalisiert die Veränderung des Trends.

Risikoanalyse

  • Der Moving Average ist nachlässig und könnte einen Trendwendepunkt verpassen.
  • In den Märkten mit vielen Leiter kann es zu viele falsche Signale geben, die auf den kurzen Linien über die langen Linien laufen.
  • In den oberen Märkten kann es zu viele falsche Signale geben, die unter der kurzen Linie die langen durchziehen.
  • Schnelle Kauf- und Verkaufssignale können zu sensibel sein und die Anzahl der Transaktionen und die Gebühren erhöhen.

Die falschen Signale können reduziert werden, indem die Moving Average-Periode entsprechend angepasst oder die Filterbedingungen hinzugefügt werden. Es kann auch geeignet sein, die schnellen Handelszyklen zu verkürzen und die Handelsfrequenz zu reduzieren.

Optimierungsrichtung

  • Hinzufügen von Filterbedingungen, die beispielsweise nur dann signalisiert werden, wenn sie größer sind als ein bestimmtes Handelsvolumen oder ein Prozentsatz der Preisänderung.
  • In Kombination mit anderen Indikatoren wie MACD, KDJ und anderen, um Fehltrades zu vermeiden, wenn keine klaren Trends vorliegen.
  • Optimierung der Kombination von Moving Average-Perioden zur Verringerung der Falschsignale.
  • Unterscheidung zwischen einem Markt mit mehreren und einem Markt ohne mehrere Aktien, Optimierung der Parameter für Kauf und Verkauf.
  • Berücksichtigung der Transaktionskosten, Anpassung der Parameter für schnelle Transaktionen und Kontrolle der Transaktionsfrequenz.

Zusammenfassen

Die Triple-Even-Cross-Strategie ist im Allgemeinen relativ einfach und direkt, indem sie die Richtung des Trends durch die Kreuzung von Evenlinien in verschiedenen Zeiträumen bestimmt, um ein Handelssignal zu erzeugen. Die Strategie ist einfach zu implementieren, die Parameter sind flexibel zu justieren und die Veränderungen des Trends zu erfassen. Aber es gibt auch Probleme mit der Verzögerung des Moving Averages und die Gefahr von zu vielen Falschsignalen.

Strategiequellcode
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 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/
// © dadashkadir

//@version=4
strategy("Üç Hareketli Ortalama Str.", overlay=true, initial_capital=10000, commission_value=0.047, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, calc_on_order_fills=true)

kisa = input(title = "Kısa Vade - Gün", defval = 7,  minval = 1)
orta = input(title = "Orta Vade - Gün", defval = 25, minval = 1)
uzun = input(title = "Uzun Vade - Gün", defval = 99, minval = 1)

sma7  = sma(close, kisa)
sma25 = sma(close, orta)
sma99  = sma(close, uzun)

alTrend  = plot (sma7, color=#2323F1, linewidth=2, title="Har.Ort. Kısa Vade", transp=0)
satTrend = plot (sma25, color=#FF0C00, linewidth=3, title="Har.Ort. Orta Vade", transp=0)
ort99    = plot (sma99, color=#DFB001, linewidth=3, title="Har.Ort. Uzun Vade", transp=0)

zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")

al  = crossover (sma7, sma25) and zamanaralik <= year
sat = crossover (sma25, sma7) and zamanaralik <= year

hizlial = crossover (sma7, sma99) and zamanaralik <= year
hizlisat = crossover (sma99, sma7) and zamanaralik <= year

alkosul  = sma7 >= sma25
satkosul = sma25 >= sma7

hizlialkosul  = sma7 >= sma99
hizlisatkosul = sma99 >= sma7

plotshape(al,  title = "Buy",  text = 'Al',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Sell", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

plotshape(hizlial,  title = "Hızlı Al",  text = 'Hızlı Al',  style = shape.labelup,   location = location.belowbar, color= color.blue, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(hizlisat, title = "Hızlı Sat", text = 'Hızlı Sat', style = shape.labeldown, location = location.abovebar, color= #6106D6 , textcolor = color.white, transp = 0, size = size.tiny)

fill (alTrend, satTrend, color = sma7 >= sma25? #4DFF00 : #FF0C00, transp=80, title="Al-Sat Aralığı")
//fill (ort99, satTrend, color = sma7 >= sma25? #6106D6 : color.blue, transp=80, title="Hızlı Al-Sat Aralığı")

if (al)
    strategy.entry("LONG", strategy.long)
if (sat)
    strategy.entry("SHORT", strategy.short)
//if (hizlial)
//    strategy.entry("My Short Entry Id", strategy.long)
//if (hizlisat)
//    strategy.entry("My Short Entry Id", strategy.short)