
This strategy is a momentum trading system based on the WaveTrend indicator, which identifies market overbought and oversold conditions by calculating price momentum changes and generates trading signals at key price level breakouts. The strategy employs double-smoothed momentum curves (WT1 and WT2) to filter market noise and enhance signal reliability.
The core of the strategy builds the WaveTrend indicator through the following steps: 1. Uses HLC3 price as benchmark, calculating n1-period EMA as price center 2. Calculates price deviation from center, using 0.015 as normalization factor 3. Smooths deviation with n2-period EMA to get main trend line WT1 4. Smooths WT1 with 4-period SMA to get signal line WT2 5. Sets trading triggers at overbought (60) and oversold (-60) levels Long signals are generated when WT1 crosses above WT2 in oversold territory; short signals when WT1 crosses below WT2 in overbought territory.
This is a well-designed trend momentum trading strategy that effectively captures market reversal opportunities through the WaveTrend indicator. The strategy’s core strengths lie in its robust signal generation mechanism and good adaptability. Through the suggested optimization directions, the strategy’s stability and profitability can be further enhanced. For investors seeking medium to long-term trading opportunities, this is a trading system worth considering.
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-16 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy(title="WaveTrend [LazyBear] Strategy", shorttitle="WT_LB_Strategy", overlay=true)
// Pôvodné vstupné parametre
n1 = input.int(10, title="Channel Length")
n2 = input.int(21, title="Average Length")
obLevel1 = input.int(60, title="Over Bought Level 1")
obLevel2 = input.int(53, title="Over Bought Level 2")
osLevel1 = input.int(-60, title="Over Sold Level 1")
osLevel2 = input.int(-53, title="Over Sold Level 2")
// Výpočet WaveTrendu
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)
// Vyhladené krivky
wt1 = tci
wt2 = ta.sma(wt1, 4)
// Plotovanie nulovej línie a OB/OS úrevní
plot(0, color=color.gray, linewidth=1)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red)
plot(osLevel2, color=color.green)
// Plot WaveTrendu
plot(wt1, color=color.green, title="WT1")
plot(wt2, color=color.red, title="WT2")
plot(wt1 - wt2, color=color.blue, style=plot.style_area, title="WT Fill")
//------------------------------------------------------
// STRATEGY LOGIC (ukážková)
//------------------------------------------------------
if ta.crossover(wt1, wt2) and wt1 <= osLevel1
strategy.close("Short")
strategy.entry("Long", strategy.long)
if ta.crossunder(wt1, wt2) and wt1 >= obLevel1
strategy.close("Long")
strategy.entry("Short", strategy.short)