
Die Strategie ist ein quantitatives Handelssystem, das auf den WaveTrend-Indikatoren und dem Trend-Tracking basiert. Es bildet einen vollständigen Handelsentscheidungsrahmen, indem es die WaveTrend-Indikatoren mit den Moving Averages kombiniert. Die Strategie nutzt die EMA und SMA, um die Wellen-Trendwerte und die Gesamttrends des Marktes zu berechnen, um Marktwendepunkte zu identifizieren, indem sie Überkauf-Überverkauf-Schwellenwerte festlegt, und in Verbindung mit einem Trendfilter, um die Genauigkeit des Handels zu verbessern.
Im Zentrum der Strategie stehen folgende Schritte:
Die Strategie baut ein robustes Handelssystem auf, indem sie WaveTrend-Indikatoren und Trendfilter geschickt kombiniert. Die Strategie ermöglicht eine umfassende Analyse des Marktes, während sie die Einfachheit der Bedienung beibehält. Obwohl ein gewisses Risiko besteht, hat die Strategie durch vernünftiges Risikomanagement und kontinuierliche Optimierung einen guten Nutzen und Potenzial für die Entwicklung.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mojomarv
//@version=6
strategy("WaveTrend with Trend Filter", shorttitle="WaveTrend Trend", overlay=false, initial_capital = 100000)
// Inputs for the WaveTrend indicator
inputLength = input.int(10, title="Channel Length", minval=1)
avgLength = input.int(21, title="Average Length", minval=1)
obLevel = input.float(45, title="Overbought Level")
osLevel = input.float(-45, title="Oversold Level")
showSignals = input.bool(true, title="Show Buy/Sell Signals")
// Trend filter input
maLength = input.int(500, title="Trend MA Length", minval=1)
// Calculate WaveTrend values
hlc_avg = (high + low + close) / 3 // Renamed from hlc3 to hlc_avg
esa = ta.ema(hlc_avg, inputLength)
d = ta.ema(math.abs(hlc_avg - esa), inputLength)
k = (hlc_avg - esa) / (0.015 * d)
ci = ta.ema(k, avgLength)
tci = ta.ema(ci, avgLength)
// Moving average for trend detection
trendMA = ta.sma(close, maLength)
// Determine trend
bullishTrend = close > trendMA
bearishTrend = close < trendMA
// Generate signals with trend filter
crossUp = ta.crossover(tci, osLevel)
crossDown = ta.crossunder(tci, obLevel)
// Plot WaveTrend
plot(tci, title="WaveTrend Line", color=color.new(color.blue, 0), linewidth=2)
hline(obLevel, "Overbought", color=color.red, linestyle=hline.style_dotted)
hline(osLevel, "Oversold", color=color.green, linestyle=hline.style_dotted)
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_solid)
// Plot moving average for trend visualization
plot(trendMA, title="Trend MA", color=color.orange, linewidth=1)
// Plot buy and sell signals
plotshape(showSignals and crossUp, title="Buy Signal", location=location.belowbar, style=shape.labelup, color=color.new(color.green, 0), size=size.small)
plotshape(showSignals and crossDown, title="Sell Signal", location=location.abovebar, style=shape.labeldown, color=color.new(color.red, 0), size=size.small)
// Alerts
alertcondition(crossUp, title="Buy Alert", message="WaveTrend Buy Signal (Trend Confirmed)")
alertcondition(crossDown, title="Sell Alert", message="WaveTrend Sell Signal (Trend Confirmed)")
alertcondition(bullishTrend, title="bull", message="WaveTrend Sell Signal (Trend Confirmed)")
alertcondition(bearishTrend, title="bear", message="WaveTrend Sell Signal (Trend Confirmed)")
// Strategy logic
if crossUp and bullishTrend
strategy.entry("Long", strategy.long)
if crossDown
strategy.close("Long")
if crossDown and bearishTrend
strategy.entry("Short", strategy.short)
if crossUp
strategy.close("Short")