Diese Strategie ist ein quantitatives Handelssystem, das auf dem WaveTrend-Indikator basiert und dynamische Risikomanagementmechanismen enthält. Die Strategie berechnet die Trendstärke durch Preisschwankungen, filtert Signale in überkauften und überverkauften Regionen und wendet Risikokontrollmaßnahmen wie Stop-Loss-, Take-Profit- und Trailing-Stop-Mechanismen an.
Der Kern der Strategie liegt in der Berechnung des WaveTrend-Indikators unter Verwendung von HLC3-Preisen. Er berechnet zunächst einen exponentiellen gleitenden Durchschnitt (EMA) für n1-Perioden als Basislinie, berechnet dann die Preisentfernungen von dieser Basislinie und normalisiert sie mit einem Koeffizienten von 0,015. Dies führt zu zwei Wellenlinien, wt1 und wt2, die jeweils schnelle und langsame Linien darstellen. Handelssignale werden basierend auf diesen Linien erzeugt, die überkaufte und überverkaufte Niveaus überschreiten, kombiniert mit einem mehrschichtigen Risikokontrollsystem.
Diese Strategie erreicht einen umfassenden quantitativen Handelsansatz, indem sie den WaveTrend-Indikator mit einem robusten Risikomanagementsystem kombiniert. Seine Kernstärken liegen in seiner Anpassungsfähigkeit und kontrollierter Risikoposition, obwohl Händler die Parameter optimieren und die Strategie auf der Grundlage der tatsächlichen Marktbedingungen verbessern müssen. Durch kontinuierliche Optimierung und Verfeinerung verspricht diese Strategie eine stabile Rendite in realen Handelsumgebungen.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="WaveTrend [LazyBear] with Risk Management", shorttitle="WT_LB_RM", overlay=true) // Input Parameters n1 = input.int(10, "Channel Length") n2 = input.int(21, "Average Length") obLevel1 = input.int(60, "Over Bought Level 1") obLevel2 = input.int(53, "Over Bought Level 2") osLevel1 = input.int(-60, "Over Sold Level 1") osLevel2 = input.int(-53, "Over Sold Level 2") // Risk Management Inputs stopLossPercent = input.float(50.0, "Stop Loss (%)", minval=0.1, maxval=100) takeProfitPercent = input.float(5.0, "Take Profit (%)", minval=0.1, maxval=100) trailingStopPercent = input.float(3.0, "Trailing Stop (%)", minval=0.1, maxval=100) trailingStepPercent = input.float(2.0, "Trailing Stop Step (%)", minval=0.1, maxval=100) // WaveTrend Calculation ap = hlc3 esa = ta.ema(ap, n1) d = ta.ema(math.abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ta.ema(ci, n2) wt1 = tci wt2 = ta.sma(wt1, 4) // Plotting Original Indicators plot(0, color=color.gray) plot(obLevel1, color=color.red) plot(osLevel1, color=color.green) plot(obLevel2, color=color.red, style=plot.style_line) plot(osLevel2, color=color.green, style=plot.style_line) plot(wt1, color=color.green) plot(wt2, color=color.red, style=plot.style_line) plot(wt1-wt2, color=color.blue, style=plot.style_area, transp=80) // Buy and Sell Signals with Risk Management longCondition = ta.crossover(wt1, osLevel1) or ta.crossover(wt1, osLevel2) shortCondition = ta.crossunder(wt1, obLevel1) or ta.crossunder(wt1, obLevel2) // Strategy Entry with Risk Management if (longCondition) entryPrice = close stopLossPrice = entryPrice * (1 - stopLossPercent/100) takeProfitPrice = entryPrice * (1 + takeProfitPercent/100) strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", stop=stopLossPrice, limit=takeProfitPrice, trail_price=close * (1 + trailingStopPercent/100), trail_offset=close * (trailingStepPercent/100)) if (shortCondition) entryPrice = close stopLossPrice = entryPrice * (1 + stopLossPercent/100) takeProfitPrice = entryPrice * (1 - takeProfitPercent/100) strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", stop=stopLossPrice, limit=takeProfitPrice, trail_price=close * (1 - trailingStopPercent/100), trail_offset=close * (trailingStepPercent/100))