Kombinationsstrategie für Momentum-Ausbruch und Trendfolge


Erstellungsdatum: 2023-12-13 16:41:25 zuletzt geändert: 2023-12-13 16:41:25
Kopie: 0 Klicks: 622
1
konzentrieren Sie sich auf
1621
Anhänger

Kombinationsstrategie für Momentum-Ausbruch und Trendfolge

Überblick

Die Strategie ist eine Kombinationsstrategie, die eine Kombination aus Dynamikindikatoren, Trendverfolgungsindikatoren und Mittellinienindikatoren umfasst. Sie ermöglicht Trendverfolgung und Kauf-/Verkauf-Breakthroughs. Die Kauf-/Verkaufsmomente werden hauptsächlich durch die Kombination von Stochastic-Indikatoren und Supertrend-Indikatoren beurteilt.

Strategieprinzip

Die Strategie umfasst folgende Komponenten:

  1. EMA-Gehälter: Die wichtigsten Trends werden anhand von EMA 25, 50, 100 und 200 mit vier Gehältern ermittelt. Ein Durchschnittswert von EMA25 über EMA50 und EMA100 über EMA200 ist ein Aufwärtstrend, sonst ein Abwärtstrend.

  2. Supertrend Trend-Tracking-Indikator: Die Parameter sind Factor 3 und ATR 10, um zu bestimmen, ob der aktuelle Preis im Auf- oder Abwärtstrend ist. Wenn Supertrend grün ist, ist es ein Aufwärtstrend, rot ist es ein Abwärtstrend.

  3. Stochastic-Dynamik-Indikatoren: %K 8 und %D 3, um zu beurteilen, ob Stochastic Gold- oder Todesforken erzeugt. Wenn %K-Strecke von unten durch %D-Strecke geht, ist es Gold- und Todesforken.

Die Kaufstrategie lautet: EMA zeigt einen Aufwärtstrend + Supertrend zeigt einen Aufwärtstrend + Stochastic Goldfork Time . Die Verkaufsstrategie lautet: EMA zeigt einen Abwärtstrend + Supertrend zeigt einen Abwärtstrend + Stochastic Dead Forks.

Die Strategie kombiniert die drei Indikatoren Trend, Dynamik und Breakout, um zuverlässig zu beurteilen, wo der Markt ist und wo es zu kaufen oder zu verkaufen ist.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. In Kombination mit mehreren Indikatoren und einem besseren Urteilsvermögen kann ein falscher Durchbruch effektiv gefiltert werden.

  2. Die Hinzufügung von Dynamikindikatoren kann den Wendepunkt vorzeitig bestimmen.

  3. Anpassbare Parameter für verschiedene Marktumgebungen.

  4. Die relativ effiziente Stop-and-Stop-Einstellungen werden erreicht.

  5. Die Rückmessung kann in hohen Zyklen wie Sonnenstrahlen durchgeführt werden, was besser funktioniert.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Die falsche Einstellung der Parameter kann zu häufigen Transaktionen oder instabilen Signalen führen. Die Parameter müssen angepasst werden.

  2. Es besteht die Möglichkeit, dass bei der Auswahl ein Fehlverhalten auftritt.

  3. Der Stop-Loss ist auf die Extreme des Stochastic-Indikators gesetzt und könnte zu nahe kommen, um eine angemessene Lockerung zu berücksichtigen.

  4. Die Rückmeldedaten sind unzureichend und können Auswirkungen auf die Anpassung der Parameter haben. Die Rückmeldedauer sollte erweitert werden.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Testen Sie mehr Parameterkombinationen, um die optimalen Parameter zu finden. Wie zum Beispiel die Factor-Parameter für die Anpassung von Supertrend.

  2. Hinzufügen von mehr Filterwellenindikatoren, wie Energieindikatoren, Schwankungsrateindikatoren usw., um die Wahrscheinlichkeit von Fehleinschätzungen zu verringern.

  3. Verschiedene Stop-Loss-Methoden können getestet werden, z. B. die Einstellung einer Stop-Loss-Linie in einem bestimmten Prozentsatz an den Extremwerten.

  4. Optimierung von Stop-Off-Methoden, z. B. die Berücksichtigung von dynamischen Stop-Off-Methoden, um mehr Gewinne zu erzielen.

  5. Erweiterung des Anwendungsbereichs der Strategie, z. B. durch Versuche, sie für mehr Handelsarten zu verwenden, oder durch Versuche, sie in höheren Perioden zu verwenden.

Zusammenfassen

Die Strategie hat eine klare Gesamtkonzeption, die Auswahl der Indikatoren ist vernünftig, die Trendverfolgung und die Durchbruchshandlung sind realisiert, die Rückmessung wirkt besser. Es gibt jedoch noch Optimierungsmöglichkeiten, die durch die Anpassung der Parameter, das Hinzufügen von mehr Wellenindikatoren, die Verbesserung der Stop-Loss-Methode usw.

Strategiequellcode
/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-06 07:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Supertrend + Stoch Strategy", overlay=true)

// ---inputs---
pl = input(1.5, title="P/L", minval=0.1)
lossPercentage = input(1, title="Loss Percentage", minval=1, maxval=100)
atrPeriod = input(10, "ATR Length")
factor = input(3, "Supertrend Factor")
periodK = input(8, title="%K Length", minval=1)
smoothK = input(3, title="%K Smoothing", minval=1)
periodD = input(3, title="%D Smoothing", minval=1)
ema1l = input(25, title="EMA 1 Length", minval=1)
ema2l = input(50, title="EMA 2 Length", minval=1)
ema3l = input(100, title="EMA 3 Length", minval=1)
ema4l = input(200, title="EMA 4 Length", minval=1)

// ---lines---
ema1 = ema(close, ema1l)
ema2 = ema(close, ema2l)
ema3 = ema(close, ema3l)
ema4 = ema(close, ema4l)
trendUpper = ema1 > ema2 and ema3 > ema4
trendLower = ema1 < ema2 and ema3 < ema4

[supertrend, direction] = supertrend(factor, atrPeriod)
supertrendUpper = direction < 0
supertrendLower = direction > 0

k = sma(stoch(close, high, low, periodK), smoothK)
d = sma(k, periodD)
stochCrossOver = crossover(k, d)
stochCrossUnder = crossunder(k, d)

// ---plot---
plot(ema1, color=color.green)
plot(ema2, color=color.orange)
plot(ema3, color=color.blue)
plot(ema4, color=color.purple)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0 ? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)
fill(bodyMiddle, upTrend, color.new(color.green, 95), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 95), fillgaps=false)

// ---stop place compute---
edge = 0.  // periodly high/low
edge := stochCrossOver ? high : stochCrossUnder ? low : k > d ? max(edge[1], high) : k < d ? min(edge[1], low) : edge[1]

// plot(edge)

// ---trade condition---
// longCond = trendUpper and supertrendUpper and stochCrossOver
// shortCond = trendLower and supertrendLower and stochCrossUnder
longCond = trendUpper and supertrendUpper and stochCrossOver and strategy.position_size == 0
shortCond = trendLower and supertrendLower and stochCrossUnder and strategy.position_size == 0

// ---stop & take---
stop = 0.
stop := nz(stop[1], stop)
take = 0.
take := nz(take[1], take)

if longCond
    stop := edge[1]
    take := close + (close - stop) * pl
if shortCond
    stop := edge[1]
    take := close - (stop - close) * pl

// ---trade---
qty = strategy.equity / abs(stop - close) / 100 * lossPercentage

strategy.entry("Buy", strategy.long, when=longCond, qty=qty)
strategy.exit("Close Buy","Buy", limit=take, stop=stop)

strategy.entry("Sell", strategy.short, when=shortCond, qty=qty)
strategy.exit("Close Sell","Sell", limit=take, stop=stop)

stopLine = plot(strategy.position_size != 0 ? stop : na, color=color.red, style=plot.style_linebr)
takeLine = plot(strategy.position_size != 0 ? take : na, color=color.green, style=plot.style_linebr)
entryLine = plot(strategy.position_size != 0 ? strategy.position_avg_price : na, color=color.blue, style=plot.style_linebr)
fill(entryLine, stopLine, color.new(color.red, 90), fillgaps=false)
fill(entryLine, takeLine, color.new(color.green, 90), fillgaps=false)