Schaff Trendzyklus-Strategie mit Momentum-Following


Erstellungsdatum: 2023-11-01 16:08:35 zuletzt geändert: 2023-11-01 16:08:35
Kopie: 2 Klicks: 855
1
konzentrieren Sie sich auf
1617
Anhänger

Schaff Trendzyklus-Strategie mit Momentum-Following

Überblick

Diese Strategie basiert auf dem Schaff Trendzyklus, kombiniert mit dem Überkauf-Überverkauf-Prinzip des Stoch RSI, um Trends zu beurteilen und zu verfolgen. Wenn der Preis aus der Überverkaufszone in die Überkaufszone bricht, macht er mehr; Wenn der Preis aus der Überkaufszone in die Überverkaufszone fällt, macht er nichts.

Strategieprinzip

    1. Berechnen Sie den MACD, wobei die Fast-Längen-Default 23 und die Slow-Längen-Default 50 ist. Der MACD spiegelt die Differenz zwischen den kurz- und langfristigen Moving Averages wider, um die Preisbewegung zu bestimmen.
    1. Die MACD wird mit einer Stoch RSI-Behandlung behandelt, um einen K-Wert zu erzeugen, bei dem die Cycle Length-Standardwert 10 ist, der einen Überkauf und Überverkauf der MACD-Dynamik widerspiegelt.
    1. Gewichtete Moving Averages für K-Werte bilden D-Werte, wobei der 1st %D-Längen-Standardwert 3 ist, ohne die Geräusche in den K-Werten.
    1. Die D-Werte werden erneut mit der Stoch RSI-Behandlung behandelt, um die anfänglichen STC-Werte zu bilden, wobei der 2nd % D-Längen-Standardwert 3 ist, um ein genaues Überkauf-Überverkauf-Signal zu bilden.
    1. Der gewichtete Moving Average des anfänglichen STC-Wertes ergibt den endgültigen STC-Wert in der Spanne von 0 bis 100. STC über 75 ist eine Überkaufzone und unter 25 ist eine Überverkaufzone.
    1. Wenn der STC von unten nach oben 25 überschreitet, macht er mehr; wenn der STC von oben nach unten 75 überschreitet, macht er weniger.

Strategische Vorteile

    1. Der STC-Indikator kombiniert die Konstruktion des Stoch RSI, um überkaufte und überverkaufte Bereiche klar zu identifizieren und ein stärkeres Trendsignal zu erzeugen.
    1. Durch die doppelte Stoch RSI-Filterung kann ein falscher Durchbruch effektiv gefiltert werden.
    1. Die STC bildet einen standardisierten Bereich von 0-100 und ermöglicht die Bildung mechanisierter Handelssignale.
    1. Die Strategie-Retrospektion ermöglicht die visualisierung von Durchbruchsmarkierungen und Text-Sprungfenster-Alarmen, um Handelschancen klar und intuitiv zu erfassen.
    1. Die Strategie nutzt eine optimierte Kombination von Parametern, um unnötige Transaktionen effektiv zu kontrollieren und überempfindliche Transaktionen zu vermeiden.

Strategisches Risiko

    1. Die STC-Indikatoren sind parametersensibel und erfordern eine Anpassung der Parameterkombinationen an die Merkmale des Marktes für verschiedene Währungen und Zeiträume.
    1. Die Strategie des Durchbruchs ist leicht zu manipulieren und erfordert die Einrichtung von Stop-Loss-Systemen zur Risikokontrolle.
    1. Falsche Durchbrüche in einem Markt mit geringer Liquidität können falsche Signale auslösen, die durch Filterung von Indikatoren wie Synthetic Traffic gefiltert werden müssen.
    1. Die Strategie basiert ausschließlich auf den STC-Indikatoren und kann in Kombination mit anderen Faktoren zur Trendbestätigung eingesetzt werden, um einen Rückschlag zu vermeiden.
    1. Es ist notwendig, auf die Widerstandsposition der Schlüsselstütze zu achten, um falsche Signale in dieser Region zu vermeiden.

Richtung der Strategieoptimierung

    1. Optimierung der MACD-Parameterkombination für unterschiedliche Perioden und Währungen.
    1. Optimierung der K-Werte und D-Werte-Parameter des Stoch RSI, Glättung der STC-Kurve.
    1. Die Kombination von Umsatzindikatoren verhindert falsche Durchbrüche in Märkten mit geringer Liquidität.
    1. Hinzu kommen andere Indikatoren, die Trendsignale bestätigen, z. B. Brin-Band.
    1. Erhöhung der Stop-Loss-Mechanismen, wie beispielsweise Mobile Stop oder ATR Stop.
    1. Anpassung der Eintrittsposition, z. B. Rückruf nach einem Durchbruch, um eine Trendbestätigung zu gewährleisten.

Zusammenfassen

Die Schaff-Trendkreislaufstrategie ermittelt überkaufte und überverkaufte Bereiche anhand von Dynamikindikatoren und beurteilt damit kurzfristige Trendänderungen in den Preisen. Die Strategie ist einfach und kann an unterschiedliche Marktparameter angepasst werden, aber es besteht auch das Risiko, eingeschränkt zu werden. Sie kann mit Hilfe von Hilfsindikatoren beurteilt und gestoppt werden, um besser in starken Trends zu wirken.

Strategiequellcode
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Schaff Trend Cycle script may be freely distributed under the MIT license.
strategy("Schaff Trend Cycle", shorttitle="STC Backtest", overlay=true)

fastLength = input(title="MACD Fast Length",  defval=23)
slowLength = input(title="MACD Slow Length",  defval=50)
cycleLength = input(title="Cycle Length",  defval=10)
d1Length = input(title="1st %D Length",  defval=3)
d2Length = input(title="2nd %D Length",  defval=3)
src = input(title="Source",  defval=close)
highlightBreakouts = input(title="Highlight Breakouts ?", type=bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)

k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))

d = ema(k, d1Length)

kd = nz(fixnan(stoch(d, d, d, cycleLength)))

stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc

//stcColor = not highlightBreakouts ? (stc > stc[1] ? green : red) : #ff3013
//stcPlot = plot(stc, title="STC", color=stcColor, transp=0)

upper = input(75, defval=75)
lower = input(25, defval=25)

transparent = color(white, 100)

upperLevel = plot(upper, title="Upper", color=gray)
// hline(50, title="Middle", linestyle=dotted)
lowerLevel = plot(lower, title="Lower", color=gray)

fill(upperLevel, lowerLevel, color=#f9cb9c, transp=90)

upperFillColor = stc > upper and highlightBreakouts ? green : transparent
lowerFillColor = stc < lower and highlightBreakouts ? red : transparent

//fill(upperLevel, stcPlot, color=upperFillColor, transp=80)
//fill(lowerLevel, stcPlot, color=lowerFillColor, transp=80)

long =  crossover(stc, lower) ? lower : na
short = crossunder(stc, upper) ? upper : na

long_filt = long and not short
short_filt = short and not long

prev = 0
prev := long_filt ? 1 : short_filt ? -1 : prev[1]

long_final = long_filt and prev[1] == -1
short_final = short_filt and prev[1] == 1

strategy.entry("long", strategy.long, when = long )
strategy.entry("short", strategy.short, when = short)

plotshape(crossover(stc, lower) ? lower : na, title="Crossover", location=location.absolute, style=shape.circle, size=size.tiny, color=green, transp=0)
plotshape(crossunder(stc, upper) ? upper : na, title="Crossunder", location=location.absolute, style=shape.circle, size=size.tiny, color=red, transp=0)

alertcondition(long_final, "Long", message="Long")
alertcondition(short_final,"Short", message="Short")

plotshape(long_final, style=shape.arrowup, text="Long", color=green, location=location.belowbar)
plotshape(short_final, style=shape.arrowdown, text="Short", color=red, location=location.abovebar)