Die Ressourcen sind geladen. Beförderung...

KST EMA-Momentumsentwicklung im Anschluss an Strategie

Schriftsteller:ChaoZhang, Datum: 2023-11-07 16:36:21
Tags:

img

Übersicht

Die Kernidee dieser Strategie besteht darin, den KST-Indikator und die EMA-Linien zu kombinieren, um Trends zu identifizieren und zu verfolgen. Es erzeugt Kaufsignale, wenn der KST-Indikator über 0 überschreitet und über der EMA-Linie schließt, und Verkaufssignale, wenn er unter 0 überschreitet und unter der EMA-Linie schließt. Diese einfache und praktische Strategie kann Trends automatisch verfolgen und eignet sich für mittel- bis langfristige Bestände.

Strategie Logik

  1. Berechnung des KST-Indikators: Berechnen Sie den ROC von 10, 15, 20 und 30 Perioden, nehmen Sie eine gewichtete Summe und glätten Sie sie mit einem 9-Perioden-SMA aus, um den KST-Indikator abzuleiten.

  2. Berechnung der EMA-Linie: Berechnung einer 50-Perioden-EMA-Linie.

  3. Erstellen Sie ein Kaufsignal: Wenn die schnelle KST-Linie über die langsame KST-Linie (goldenes Kreuz) kreuzt und unter 0 liegt, während der Abschluss über der EMA-Linie liegt, wird ein Kaufsignal ausgelöst.

  4. Erstellen Sie ein Verkaufssignal: Wenn die schnelle KST-Linie unterhalb der langsamen KST-Linie (Todes Kreuz) kreuzt und über 0 liegt, während der Schlusspunkt unterhalb der EMA-Linie liegt, wird ein Verkaufssignal ausgelöst.

  5. Setzen Sie einen nachfolgenden Stop-Loss: Der Stop-Loss verfolgt 1% des Kontowerts, um automatischen Stop-Loss zu realisieren.

Vorteile

  1. KST identifiziert Trendänderungen, EMA bestätigt Richtung.

  2. Die Verwendung von schnellen/langsamen Crossovers und 0-Line verhindert unnötige Transaktionen.

  3. EMA als Support/Widerstand filtert weitere falsche Signale.

  4. Auto-Trailing-Stop-Loss kontrolliert das Risiko und ermöglicht den Gewinn.

  5. Einfache Parameter erleichtern die Umsetzung und Optimierung.

Risiken

  1. KST hat eine Verzögerung bei der Erkennung von Trendänderungen, kann einige Chancen verpassen, kann Perioden verkürzen oder die Gewichtung optimieren.

  2. Die EMA ist bei Trendumkehrungen zurückgeblieben, andere Indikatoren oder MA-Combos können besser funktionieren.

  3. Ein zu breiter Stoppverlust erhöht die Verluste, ein zu enger Stopp wird durch Spikes gestoppt.

  4. Häufige Signale können die Transaktionskosten erhöhen und die Einstiegsregeln verschärfen, um den Handel zu reduzieren.

Optimierungsrichtlinien

  1. Optimierung der KST-Perioden für die Empfindlichkeit gegenüber bestimmten Instrumenten.

  2. Testen Sie andere gleitende Durchschnitte wie MA, WMA, um zu sehen, welche am besten mit KST kombiniert wird.

  3. Experimente mit dynamischen Stopps basierend auf Volatilitätsmetriken wie ATR.

  4. Fügen Sie Filter wie Lautstärken hinzu, um Fallen zu vermeiden.

  5. Erwägen Sie die Kombination mit Indikatoren wie RSI, MACD für mehr Dimensionen.

  6. Testparameter für verschiedene Instrumente, um für jeden zu optimieren.

Schlussfolgerung

Diese Strategie verfügt über eine klare, zuverlässige Logik, die einfach zu implementieren ist. KST identifiziert Trendwende, filtert EMA weiter und stoppt Risikokontrollen. Es verfolgt mittelfristige bis langfristige Trends automatisch. Vernünftige Parameter bieten einen großen Optimierungsraum. Benutzer können für verschiedene Instrumente optimieren. Anwendbar für Anfänger, die lernen, und Profis, die weiterbauen. Mit weiterer Optimierung zeigt es sich als ein robustes Trendfolgensystem als vielversprechend.


/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Know Sure Thing and EMA Strategy by JLX", shorttitle="KST EMA JLX", format=format.price, precision=4, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
roclen1 = input(10, minval=1, title = "ROC Length #1")
roclen2 = input(15, minval=1, title = "ROC Length #2")
roclen3 = input(20, minval=1, title = "ROC Length #3")
roclen4 = input(30, minval=1, title = "ROC Length #4")
smalen1 = input(10, minval=1, title = "SMA Length #1")
smalen2 = input(10, minval=1, title = "SMA Length #2")
smalen3 = input(10, minval=1, title = "SMA Length #3")
smalen4 = input(15, minval=1, title = "SMA Length #4")
siglen = input(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => sma(roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = sma(kst, siglen)
plot(kst, color=color.green, title="KST")
plot(sig, color=color.red, title="Signal")
hline(0, title="Zero")

len = input(50, minval=1, title="Length EMA")
src = input(close, title="Source EMA")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
fastEMA = ema(src, len)

delta = kst - sig

buySignal = crossover(delta, 0) and kst < 0 and close > fastEMA
sellSignal = crossunder(delta, 0) and kst > 0 and close < fastEMA

longTrailPerc = input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortTrailPerc = input(title="Trail Short Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if (strategy.position_size < 0)
    stopValue = close * (1 + shortTrailPerc)
    min(stopValue, shortStopPrice[1])
else
    999999

// Submit entry orders
if (buySignal)
    strategy.entry(id="EL", long=true)

if (sellSignal)
    strategy.entry(id="ES", long=false)

// STEP 3:
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="XL TRL STP", stop=longStopPrice)

if (strategy.position_size < 0)
    strategy.exit(id="XS TRL STP", stop=shortStopPrice)



alertcondition(crossover(delta, 0) and kst < 0 and close > fastEMA,'Long alert', 'You should buy')

alertcondition(crossunder(delta, 0) and kst > 0 and close < fastEMA, 'Short alert', 'You should sell')





Mehr