Strategie für die Verlagerung von drei gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2023-11-06
Tags:

img

Übersicht

Die dreifache gleitende Durchschnitts-Crossover-Strategie verwendet die Überschneidung von gleitenden Durchschnitten über verschiedene Zeiträume als Handelssignale, die zu den Trendfolgestrategien gehören.

Strategie Logik

Zunächst berechnet die Strategie die gleitenden Durchschnitte für die kurzfristigen (Default 7 Tage), mittelfristigen (Default 25 Tage) und langfristigen (Default 99 Tage).

  1. Wenn die kurzfristige MA über die mittelfristige MA geht, wird ein Kaufsignal generiert.

  2. Wenn die kurzfristige MA unter die mittelfristige MA fällt, wird ein Verkaufssignal generiert.

  3. Wenn die kurzfristige MA über die langfristige MA geht, wird ein schnelles Kaufsignal generiert.

  4. Wenn die kurzfristige MA unter die langfristige MA fällt, wird ein schnelles Verkaufssignal erzeugt.

Die Strategie geht davon aus, dass die kurzfristige MA-Kreuzung über die mittelfristige MA einen Aufwärtstrend anzeigt, so dass ein Kaufsignal generiert wird. Und die kurzfristige MA-Kreuzung unter der mittelfristigen MA einen Abwärtstrend anzeigt, so dass ein Verkaufssignal generiert wird. Ähnlich erzeugt die Kreuzung zwischen der kurzfristigen MA und der langfristigen MA auch schnelle Handelssignale, um längerfristige Trendänderungen zu erfassen.

Analyse der Vorteile

  • Die Strategielogik ist einfach und leicht zu verstehen und umzusetzen.

  • Durch die Verwendung einer mehrjährigen Analyse können Veränderungen der Marktentwicklung wirksam erfasst werden.

  • Die Parameter können durch Anpassung der MA-Perioden optimiert werden.

  • Die visuellen Crossover-Signale spiegeln intuitiv Trendänderungen wider.

Risikoanalyse

  • Die MAs haben Probleme mit Verzögerungen und können Trendumkehrpunkte verpassen.

  • Zu viele falsche Signale, wenn die kurzfristige MA in Bullenmärkten über die langfristige MA überschreitet.

  • Zu viele falsche Signale, wenn die kurzfristige MA in Bärenmärkten unter die langfristige MA fällt.

  • Schnelle Handelssignale können zu empfindlich sein und die Handelsfrequenz und die Provisionen erhöhen.

Eine korrekte Anpassung der MA-Perioden oder das Hinzufügen von Filterbedingungen kann dazu beitragen, falsche Signale zu optimieren und zu reduzieren.

Optimierungsrichtlinien

  • Hinzufügen von Filterbedingungen, z. B. Erzeugung von Signalen nur bei Erfüllung bestimmter Handelsvolumina oder Preisänderungsprozentsätze.

  • Kombinieren Sie mit anderen Indikatoren wie MACD, KDJ, um fehlerhafte Trades zu vermeiden, wenn kein klarer Trend besteht.

  • Optimieren Sie die Kombinationen der MA-Perioden, um falsche Signale zu reduzieren.

  • Unterscheidung zwischen Bullen- und Bärenmärkten, Optimierung von Kauf- und Verkaufsparametern getrennt.

  • Berücksichtigen Sie die Handelskosten, passen Sie schnelle Handelsparameter an, um die Häufigkeit zu kontrollieren.

Zusammenfassung

Die dreifache MA-Crossover-Strategie ist relativ einfach und beurteilt die Trendrichtung durch Crossover verschiedener Zeitrahmen-MAs, um Handelssignale zu generieren. Sie ist leicht mit flexiblen Parameteranpassungen umzusetzen, um Trendveränderungen zu erfassen. Aber sie hat auch die Probleme von MA-Verzögerungen und übermäßigen falschen Signalen. Methoden wie das Hinzufügen von Filtern und die Optimierung von Parameterkombinationen können die Strategie verbessern. Sie eignet sich für Trader, die sich für Trendcrossovers für Optimierung und Anwendung interessieren.


/*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)    

Mehr