The WaveTrend Cross LazyBear strategy is a trading strategy based on the WaveTrend indicator. The strategy uses two WaveTrend indicator lines with different periods. When the faster-period WaveTrend indicator line crosses above the slower-period WaveTrend indicator line, it generates a buy signal. When the faster-period WaveTrend indicator line crosses below the slower-period WaveTrend indicator line, it generates a sell signal. The strategy also sets overbought and oversold zones to assist in judging market conditions.
The core of this strategy is the WaveTrend indicator, which is calculated by the following steps:
The strategy uses two WaveTrend indicator lines with different periods (default is 10 and 21), denoted as WT1 and WT2 respectively. When WT1 crosses above WT2, it generates a buy signal; when WT1 crosses below WT2, it generates a sell signal. In addition, the strategy also sets 4 auxiliary levels: overbought level 1, overbought level 2, oversold level 1, and oversold level 2, to assist in judging market conditions.
The WaveTrend Cross LazyBear strategy is a trend-tracking strategy based on the WaveTrend indicator. Through the design of dual-period indicators and the auxiliary judgment of overbought and oversold levels, it captures trends while also taking into account certain risk control. However, the strategy may generate more false signals in oscillating markets and lacks strict risk management measures. Further optimization and improvement are needed in practical applications.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m 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/ // © burakaydingr //@version=5 strategy("WaveTrend with Crosses [LazyBear]", shorttitle="WT_CROSS_LB", overlay=true) // Kullanıcı girişleri n1 = input(10, title="Channel Length") n2 = input(21, title="Average Length") obLevel1 = input(60, title="Over Bought Level 1") obLevel2 = input(53, title="Over Bought Level 2") osLevel1 = input(-60, title="Over Sold Level 1") osLevel2 = input(-53, title="Over Sold Level 2") // Temel hesaplamalar 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) // WaveTrend göstergeleri wt1 = tci wt2 = ta.sma(wt1, 4) // Al ve Sat Sinyalleri buySignal = ta.crossover(wt1, wt2) sellSignal = ta.crossunder(wt1, wt2) // Alım ve Satım pozisyonları if (buySignal) if (strategy.position_size <= 0) // Eğer şu anda açık bir satış pozisyonu varsa, onu kapat strategy.close("Sell") strategy.entry("Buy", strategy.long, comment="Buy Signal: Price crossed above WT2") if (sellSignal) if (strategy.position_size >= 0) // Eğer şu anda açık bir alım pozisyonu varsa, onu kapat strategy.close("Buy") strategy.entry("Sell", strategy.short, comment="Sell Signal: Price crossed below WT2") // Renkler ve diğer görseller plot(0, color=color.new(color.gray, 0), title="Zero Level") plot(obLevel1, color=color.new(color.red, 0), title="Overbought Level 1") plot(osLevel1, color=color.new(color.green, 0), title="Oversold Level 1") plot(obLevel2, color=color.new(color.purple, 0), title="Overbought Level 2") plot(osLevel2, color=color.new(color.orange, 0), title="Oversold Level 2") plot(wt1, color=color.new(color.red, 0), title="WT1") plot(wt2, color=color.new(color.blue, 0), title="WT2") plot(wt1-wt2, color=color.new(color.purple, 80), style=plot.style_area, title="WT1-WT2 Area") // İşaretler plotshape(buySignal, location=location.absolute, color=color.new(color.yellow, 0), style=shape.circle, size=size.small, title="Buy Signal") plotshape(sellSignal, location=location.absolute, color=color.new(color.red, 0), style=shape.circle, size=size.small, title="Sell Signal")