Trend-Tracking-Strategien basierend auf KST-Indikatoren

Schriftsteller:ChaoZhang, Datum: 2023-09-15 12:05:21
Tags:

Trendfolgende Strategie unter Verwendung des KST-Indikators

Dieser Artikel erläutert detailliert eine quantitative Trendstrategie mit Hilfe des KST-Indikators.

I. Strategische Logik

Die wichtigsten Schritte für die Signalerzeugung sind:

  1. Berechnung der Werte mehrerer ROC-Indikatoren mit unterschiedlichen Perioden.

  2. Die ROC-Werte werden separat mit gleitenden Durchschnitten berechnet und die Summe für die Ableitung der KST-Linie gezogen.

  3. Glattet die KST-Linie weiter und benutzt den gleitenden Durchschnitt, um die Signallinie zu erhalten.

  4. Ein Kaufsignal wird erzeugt, wenn die KST-Linie über die Signallinie kreuzt und umgekehrt bei Verkaufssignalen.

  5. Die entsprechende Positionsgröße kann ausgewählt werden.

Durch die Summe mehrerer ROC-Werte spiegelt die KST-Linie sowohl kurzfristige als auch langfristige Preistrends wider.

II. Vorteile der Strategie

Der größte Vorteil ist die umfassende Indikatorberechnung, die Trendinformationen über Zeiträume hinweg beinhaltet.

Ein weiterer Vorteil ist die einfache und intuitive Verwendung der Indikatoren mit einer klaren Signallinie.

Schließlich hilft eine verstellbare Positionsgröße, die Gesamtrisikobelastung zu kontrollieren.

III. Mögliche Schwächen

Es gibt jedoch einige Probleme:

Erstens ist der Indikator selbst bei der Reaktion auf Preisänderungen etwas verzögert.

Zweitens ist die Abhängigkeit von der KST nur anfällig für Umkehrungen.

Außerdem ist eine umfangreiche Optimierung erforderlich, um eine Überanpassung zu vermeiden.

IV. Zusammenfassung

Zusammenfassend wurde in diesem Artikel eine quantitative Trend-Folge-Strategie mit KST-Crossover-Signalen erklärt. Sie spiegelt die Preisentwicklungen durch den Indikator für Handelssignale wider, erfordert jedoch die Verwaltung von Indikatorverzögerungen und eine ordnungsgemäße Einstellung von Parametern. Insgesamt bietet sie einen einfachen Trendverfolgungsansatz.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy(title="KST Alert", shorttitle="KST Alert", format=format.price, precision=4)
roclen1 = input.int(10, minval=1, title = "ROC Length #1")
roclen2 = input.int(15, minval=1, title = "ROC Length #2")
roclen3 = input.int(20, minval=1, title = "ROC Length #3")
roclen4 = input.int(30, minval=1, title = "ROC Length #4")
smalen1 = input.int(10, minval=1, title = "SMA Length #1")
smalen2 = input.int(10, minval=1, title = "SMA Length #2")
smalen3 = input.int(10, minval=1, title = "SMA Length #3")
smalen4 = input.int(15, minval=1, title = "SMA Length #4")
siglen = input.int(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => ta.sma(ta.roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = ta.sma(kst, siglen)
plot(kst, color=#009688, title="KST")
plot(sig, color=#F44336, title="Signal")
hline(0, title="Zero", color = #787B86)
eL1=ta.crossover(kst,sig)
eS1=ta.crossunder(kst,sig)
ch = 0
t = year(time('D'))
ch := ta.change(t) != 0 ? 1 : 0
T1 = time(timeframe.period, "0915-1520")
session_open = na(t) ? false : true
newDay = ta.change(time("15m")) != 0
strategy.entry("Long1", strategy.long, when = eL1)
strategy.entry("Short1", strategy.short, when = eS1)


Mehr