Dynamic Wave Indicator Combination Strategy
This strategy is a comprehensive trading system based on multiple technical indicators, combining momentum indicators, trend indicators, and volatility indicators to capture short-term market opportunities. The…

Overview
This strategy is a comprehensive trading system based on multiple technical indicators, combining momentum indicators, trend indicators, and volatility indicators to capture short-term market opportunities. The strategy identifies trading opportunities through MACD crossover signals, EMA trend confirmation, RSI overbought/oversold conditions, and ADX trend strength filtering, while using ATR-based dynamic stop-loss and take-profit for risk management.
Strategy Principles
The core logic of the strategy is based on the following key components:
- MACD indicator for capturing momentum changes through fast and slow line crossovers
- 200-period EMA for overall trend confirmation, with price above the line indicating bullish trend and vice versa
- RSI indicator for price momentum confirmation, RSI>50 supports long positions, RSI<50 supports short positions
- ADX indicator for weak trend filtering, only considering entry when ADX is above the set threshold
- ATR indicator for dynamic calculation of stop-loss and take-profit levels, adapting to market volatility
Strategy Advantages
- Multiple indicator cross-validation improves signal reliability
- Dynamic risk management system automatically adjusts stops based on market volatility
- High adaptability with adjustable parameters for different market conditions
- Complete trend confirmation mechanism reduces false breakout risks
- Systematic entry and exit logic reduces subjective judgment
Strategy Risks
- Multiple indicators may lead to signal lag
- Short timeframes are susceptible to market noise
- Parameter optimization may result in overfitting
- High-frequency trading may incur higher transaction costs
- Frequent stop-losses may be triggered during extreme market volatility
Strategy Optimization Directions
- Incorporate volume indicators for additional confirmation
- Optimize ADX threshold to improve trend filtering efficiency
- Add time filters to avoid low liquidity periods
- Develop adaptive parameter system to enhance strategy stability
- Implement market volatility filters to handle different market conditions
Summary
This strategy constructs a complete trading system through the comprehensive use of multiple technical indicators. While it faces challenges such as lag and parameter optimization, the strategy demonstrates good adaptability and reliability through proper risk management and continuous optimization. Traders are advised to conduct thorough backtesting and parameter optimization before live implementation.
Source Pine Script
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-16 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Optimized Impulse Wave Strategy", overlay=true)
// === INPUT PARAMETERS ===
fast_length = input(12, title="MACD Fast Length")
slow_length = input(26, title="MACD Slow Length")
signal_smoothing = input(9, title="MACD Signal Smoothing")
ema_length = input(200, title="EMA Length")
rsi_length = input(14, title="RSI Length")
adx_length = input(14, title="ADX Length")
adx_smoothing = input(14, title="ADX Smoothing")
atr_length = input(14, title="ATR Length")
risk_reward_ratio = input(2, title="Risk-Reward Ratio")
adx_threshold = input(20, title="ADX Threshold")
// === INDICATORS ===
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_smoothing)
ema = ta.ema(close, ema_length)
rsi = ta.rsi(close, rsi_length)
[dmiPlus, dmiMinus, adx] = ta.dmi(adx_length, adx_smoothing)
// === ENTRY CONDITIONS ===
bullishTrend = ta.crossover(macdLine, signalLine) and close > ema and adx > adx_threshold and rsi > 50
bearishTrend = ta.crossunder(macdLine, signalLine) and close < ema and adx > adx_threshold and rsi < 50
// === STOP-LOSS & TAKE-PROFIT CALCULATION ===
longStopLoss = close - ta.atr(atr_length) * 1.5
longTakeProfit = close + (ta.atr(atr_length) * 1.5 * risk_reward_ratio)
shortStopLoss = close + ta.atr(atr_length) * 1.5
shortTakeProfit = close - (ta.atr(atr_length) * 1.5 * risk_reward_ratio)
// === STRATEGY EXECUTION ===
// Enter Long
if bullishTrend
strategy.entry("Long", strategy.long)
strategy.exit("TakeProfitLong", from_entry="Long", limit=longTakeProfit, stop=longStopLoss)
// Enter Short
if bearishTrend
strategy.entry("Short", strategy.short)
strategy.exit("TakeProfitShort", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss)
// === PLOTTING ===
plot(ema, title="EMA 200", color=color.blue, linewidth=2)
plotshape(series=bullishTrend, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=bearishTrend, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")
// === ALERTS ===
alertcondition(bullishTrend, title="Bullish Entry", message="Buy Signal Triggered!")
alertcondition(bearishTrend, title="Bearish Entry", message="Sell Signal Triggered!")
// === DEBUGGING LOG ===
label.new(bar_index, high, "ADX: " + str.tostring(adx), color=color.white, textcolor=color.black)
label.new(bar_index, low, "MACD Cross: " + str.tostring(macdLine), color=color.white, textcolor=color.black)
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.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Dynamic-Wave-Indicator-Combination-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- 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
- Momentum Breakout Trading Strategy 440964Pine Script · Breakout · 5m
- Moving Average Crossover and Upper Rail Breakthrough Impulse StrategyPine Script · Breakout · 1m
- Multi Technical Indicator Dynamic Wave Trading StrategyPine Script · Breakout · 1h
- Quantitative Trading Strategy Based on Ichimoku with Multiple SignalsPine Script · Breakout · 1h
- Momentum Breakout Intraday Trading StrategyPine Script · Breakout · 5m
- Multi Timeframe Trend Confirmed Quantitative Breakout Trading StrategyPine Script · Breakout · 1d