
Die Strategie ist ein quantitatives Handelssystem, das auf den WaveTrend-Indikatoren basiert, kombiniert mit einem dynamischen Risikomanagementmechanismus. Die Strategie berechnet die Trendstärke der Preisbewegungen, filtert die Signale in überkauften und überverkauften Bereichen und wendet Risikokontrollen wie Stop Loss, Stop Out und Tracking Stop Loss an, um ein umfassendes Handelsmanagement zu erreichen.
Der Kern der Strategie ist die Berechnung des WaveTrend-Indikators über den HLC3-Preis. Zuerst wird der Index-Moving-Average ((EMA) für n1 Zeitabschnitte als Referenzlinie berechnet, dann die Abweichung von Preis und Referenzlinie berechnet und mit 0,015 als Koeffizient für die Vereinheitlichungsbehandlung durchgeführt. Schließlich werden zwei Wellenlinien wt1 und wt2 erhalten, die jeweils die Schnelllinie und die Langlinie darstellen.
Durch die Kombination von WaveTrend-Indikatoren und einem ausgefeilten Risikomanagementsystem ermöglicht die Strategie eine umfassendere, quantitative Handelsstrategie. Die Kernvorteile der Strategie liegen in ihrer Anpassungsfähigkeit und Risikokontrolle, aber dennoch erfordern sie von den Händlern die Optimierung der Parameter und die Verbesserung der Strategie in Abhängigkeit von der tatsächlichen Marktsituation. Durch kontinuierliche Optimierung und Verbesserung wird die Strategie zu stabilen Erträgen in den tatsächlichen Geschäften führen.
/*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))