Wellentrend: Mehrfach-Stop-Loss- und Mehrfach-Take-Profit-Strategie


Erstellungsdatum: 2023-12-01 18:09:12 zuletzt geändert: 2023-12-01 18:09:12
Kopie: 0 Klicks: 814
1
konzentrieren Sie sich auf
1619
Anhänger

Wellentrend: Mehrfach-Stop-Loss- und Mehrfach-Take-Profit-Strategie

Überblick

Die Strategie ist die ursprüngliche Wave-Trend-Strategie von LazyBear, die einen zweiten Stop-Loss, mehrere Stop-Preise und einen EMA-Filter für hohe Zeitrahmen hinzufügt. Sie generiert Handelssignale mit Wellen-Trend-Indikatoren und kombiniert EMA-Filterung und Stop-Loss-Management, um automatisierte Trend-Tracking-Transaktionen zu ermöglichen.

Strategieprinzip

Der Kernindikator der Strategie ist der WaveTrend-Indikator, der aus drei Teilen besteht:

  1. AP: Durchschnittspreis = (Höchster Preis + niedrigerer Preis + Abschlusskurs) / 3

  2. ESA: n1 EMA der AP

  3. CI: ((AP-ESA) / (0,015 × n1-Termine EMA des AP-ESA) mit n1-Termine EMA des absoluten Wertes

  4. TCI: n2 EMA der CI, also Wellen-Trendlinie 1 ((WT1)

  5. WT2: 4-Zyklus-SMA von WT1

Wenn WT1 durch WT2 Goldfork erzeugt, mehr zu tun; wenn WT1 unter WT2 durch WT2 Todesfork erzeugt, die Position zu erleichtern.

Darüber hinaus wird die Strategie mit einem hohen Zeitfenster EMA als Filter eingesetzt, der nur dann überschreitet, wenn der Preis höher als der EMA ist, und nur dann leer ist, wenn der Preis niedriger als der EMA ist, um einige falsche Signale zu filtern.

Strategische Vorteile

  1. Automatische Trendverfolgung mit Wellen-Trendindikatoren, um menschliche Fehleinschätzungen zu vermeiden
  2. Erhöhung des zweiten Stop-Losses, um den Einzelschaden zu kontrollieren
  3. Mehrere Stop-Pricing-Systeme, um den Gewinn zu maximieren
  4. EMA-Filter, Filter für falsche Signale, Erhöhung der Gewinnquote

Strategische Risiken und Optimierungen

  1. Das ist eine sehr schwierige Aufgabe, die sich nicht umdrehen lässt.
  2. Fehlende Parameter können zu häufigen Transaktionen führen
  3. Verschiedene Parameterkombinationen können getestet und optimiert werden
  4. Trendwende kann in Kombination mit anderen Indikatoren berücksichtigt werden

Zusammenfassen

Die Strategie umfasst mehrere Dimensionen wie Trendverfolgung, Risikokontrolle und Gewinnmaximierung, um Trends automatisch durch Wellen-Trendindikatoren zu erfassen, die in Kombination mit EMA-Filtern die Handels-Effizienz steigern und gleichzeitig die Risiken bei der Erfassung von Trends kontrollieren. Eine effiziente und stabile Trendverfolgungsstrategie. Durch die weitere Optimierung der Parameter und die Erhöhung der Umkehrung kann die Anwendbarkeit der Strategie weiter erweitert werden.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © undacovacobra

//@version=4
strategy("WaveTrend Strategy [LazyBear] with Secondary Stop Loss", overlay=true)

// Input parameters
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
useEmaFilter = input(false, "Use EMA Filter")
emaLength = input(50, "EMA Length")
emaTimeFrame = input("60", "EMA Time Frame")
tradeMode = input("Both", "Trade Mode", options=["Long Only", "Short Only", "Both"])
useSecondarySL = input(false, "Use Secondary Stop Loss")
slPercentage = input(5.0, "Stop Loss Percentage (%)")

// WaveTrend Indicator Calculations
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
wt1 = tci
wt2 = sma(wt1, 4)

// EMA Calculation with Selected Time Frame
getEma(timeFrame) =>
    security(syminfo.tickerid, timeFrame, ema(close, emaLength))

emaFilter = getEma(emaTimeFrame)

// Secondary Stop Loss Calculation
longStopPrice = strategy.position_avg_price * (1 - slPercentage / 100)
shortStopPrice = strategy.position_avg_price * (1 + slPercentage / 100)

// Long Entry and Exit Conditions with EMA Filter and Trade Mode
longEntry = crossover(wt1, wt2) and wt2 < osLevel1 and (not useEmaFilter or close > emaFilter) and (tradeMode == "Long Only" or tradeMode == "Both")
if (longEntry)
    strategy.entry("Long", strategy.long)
longExit = crossunder(wt1, wt2) and wt2 > obLevel1
if (longExit)
    strategy.close("Long")
if (useSecondarySL and strategy.position_size > 0 and low < longStopPrice)
    strategy.close("Long", comment="SL Hit")

// Short Entry and Exit Conditions with EMA Filter and Trade Mode
shortEntry = crossunder(wt1, wt2) and wt2 > obLevel1 and (not useEmaFilter or close < emaFilter) and (tradeMode == "Short Only" or tradeMode == "Both")
if (shortEntry)
    strategy.entry("Short", strategy.short)
shortExit = crossover(wt1, wt2) and wt2 < osLevel1
if (shortExit)
    strategy.close("Short")
if (useSecondarySL and strategy.position_size < 0 and high > shortStopPrice)
    strategy.close("Short", comment="SL Hit")

// Plotting
plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=plot.style_cross)
plot(osLevel2, color=color.green, style=plot.style_cross)
plot(wt1, color=color.green)
plot(wt2, color=color.red, style=plot.style_cross)
plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80)
plot(emaFilter, color=color.blue)