0bps

Strategy vault / Breakout

Adaptive Multi Period Trading Strategy Based on Wave Trend Momentum Breakout

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…

Author
ChaoZhang
Complexity
Starter · 53 lines
Parameters
0
Backtest bar
2h · intraday
Tested on
BTC/USDT · futures

IMG

Overview

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.

Strategy Principle

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.

Strategy Advantages

  1. Robust signal generation mechanism, significantly reducing false signals through double smoothing and overbought/oversold filtering
  2. Strong parameter adaptability, allowing traders to adjust channel length and moving average periods for different market characteristics
  3. Combines advantages of trend following and momentum reversal, capturing both major trends and reversal trades at extreme positions
  4. Excellent visualization, enabling traders to intuitively understand market conditions and potential trading opportunities

Strategy Risks

  1. May generate frequent trading signals in ranging markets, increasing transaction costs
  2. Fixed overbought/oversold thresholds may not suit all market environments
  3. Double smoothing process may lead to signal lag, missing optimal entry points in fast markets
  4. Requires proper stop-loss settings for risk control, as strategy lacks integrated risk management mechanism

Strategy Optimization Directions

  1. Introduce adaptive overbought/oversold thresholds, dynamically adjusting based on market volatility
  2. Add volume confirmation mechanism to improve signal reliability
  3. Integrate trend strength filter to reduce reversal trades during strong trends
  4. Add time filter to avoid trading during low volatility periods
  5. Develop complete position management system, dynamically adjusting position size based on signal strength

Summary

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.

Source Pine Script

/*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)

Published by ChaoZhang on the FMZ strategy square · last modified 2025-02-18. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.

Build this with AgenKit

A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.

in Claude Code, Cursor, Codex & 4 more
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Adaptive-Multi-Period-Trading-Strategy-Based-on-Wave-Trend-Momentum-Breakout.md
  1. npx agenkit install engineering-kit in your project
  2. Paste the command into your agent and approve each phase
  3. Get tests, backtest, risk controls and a paper-trading switch

Understand it first

Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.

Related specs

esc

Try , , or .

↑↓ move↵ open