Trendfolgende Strategie auf Basis des gleitenden Durchschnitts


Erstellungsdatum: 2024-02-29 14:00:35 zuletzt geändert: 2024-02-29 14:00:35
Kopie: 0 Klicks: 599
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgende Strategie auf Basis des gleitenden Durchschnitts

Überblick

Diese Strategie, die durch die Berechnung der Kanal-Gewinnlinie, die Einrichtung von Über- oder Off-Hand-Positionen, wenn die Preise die Kanal-Gewinnlinie brechen, die Aktienpreis-Trends zu verfolgen, gehört zu den Trend-Tracking-Strategien.

Strategieprinzip

Die Strategie berechnet zunächst den 20-Tage-Hochschnittsdurchschnitt als Uptrend und den 20-Tage-Lowschnittsdurchschnitt als Downtrend und berechnet die Downtrend-Mitte. Die Downtrend-Mitte repräsentiert den aktuellen Kursdurchschnitt.

Analyse der Stärken

  • Die Anbieter der Kanäle nutzen die Kanäle, um die Preisentwicklung zu verfolgen und zu vermeiden, dass ihre Gelder in den OTC-Märkten eingeschlossen werden.
  • Die Eintritts- und Verkaufsplätze sind leicht zu steuern, da sie über die Bahn hin und her ermittelt werden.
  • Die Einführung eines solchen Kanals würde die Gewinne erhöhen, indem ein Teil des Lärms gefiltert wird.
  • Die Sensitivität der Strategie kann durch die Konfiguration von Kanalparametern angepasst werden.

Risikoanalyse

  • Nach einem großen Durchbruch kann es zu einem Rückschlag auf die Test-Mittellinie kommen, bei dem es eingeschaltet wird.
  • Die Aktien der Schokkarten sind für diese Strategie nicht geeignet und sind anfällig für hochfrequente Arbitrage.
  • Die falsche Einstellung der Parameter kann die Effektivität der Strategie beeinträchtigen.

Optimierungsrichtung

  • Optimierung der Parameter für die Kanalzyklus, um die Auswirkungen verschiedener Parameter auf die Effektivität der Strategie zu testen;
  • Erhöhung der Stop-Loss-Strategie, um Einmal- und Gesamtverluste zu kontrollieren;
  • In Kombination mit anderen Indikatoren als Hilfsmittel, um falsche Signale zu vermeiden.
  • Das Gebäude soll in Phasen errichtet werden, um die Wahrscheinlichkeit zu verringern, dass die Testlinie durchbrochen wird.

Zusammenfassen

Die Strategie ist insgesamt relativ einfach und direkt, um die Aktienpreisentwicklung über die grundlegenden Preiskanäle zu beurteilen und gehört zu den Strategien der Trendverfolgung. Der Vorteil ist, dass sie einfach zu bedienen ist, um die Investitionsmöglichkeiten der Preisentwicklung zu nutzen und die Gelder nicht zu sperren. Der Nachteil ist, dass eine falsche Einstellung der Parameter die Wirkung beeinträchtigen kann und das Risiko eines bestimmten Retro-Tests besteht. Durch eine vernünftige Optimierung kann die Strategie verbessert werden Stabilität und verbessert die reale Vermögensleistung.

Strategiequellcode
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)