This strategy is a dynamic zone trend following system based on dual EMAs (Fast and Slow). It classifies different trading zones based on the relative positions of price and EMAs, combined with a dynamic color indication system to provide clear buy/sell signals. The strategy adopts classical moving average crossover theory while innovating through zone classification to enhance the operability of traditional dual EMA systems.
The core of the strategy lies in dividing market conditions into six distinct zones using the crossover relationship between Fast EMA (default 12 periods) and Slow EMA (default 26 periods), combined with price position. When the fast line is above the slow line, the market is considered bullish; conversely, it’s considered bearish. The price position relative to these two moving averages further subdivides into specific trading zones: Green Zone (Buy), Blue Zone (Potential Buy), Red Zone (Sell), and Yellow Zone (Potential Sell). Buy signals are triggered when price enters the green zone and the first green candle appears, while sell signals are triggered when price enters the red zone and the first red candle appears.
This is a trend following strategy that combines traditional dual EMA systems with modern zone classification concepts. Through intuitive visual feedback and clear trading rules, it provides traders with a reliable trading framework. While inherent lag issues exist with moving average systems, the strategy can achieve stable performance in trending markets through proper parameter optimization and risk management. Traders are advised to optimize parameters based on market characteristics and maintain appropriate risk control in practical applications.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("NUTJP CDC ActionZone 2024", overlay=true, precision=6, commission_value=0.1, slippage=3) //****************************************************************************// // CDC Action Zone is based on a simple EMA crossover // between [default] EMA12 and EMA26 //****************************************************************************// // Define User Input Variables xsrc = input.source(title='Source Data', defval=close) xprd1 = input.int(title='Fast EMA period', defval=12) xprd2 = input.int(title='Slow EMA period', defval=26) xsmooth = input.int(title='Smoothing period (1 = no smoothing)', defval=1) fillSW = input.bool(title='Paint Bar Colors', defval=true) fastSW = input.bool(title='Show fast moving average line', defval=true) slowSW = input.bool(title='Show slow moving average line', defval=true) xfixtf = input.bool(title='** Use Fixed time frame Mode (advanced) **', defval=false) xtf = input.timeframe(title='** Fix chart to which time frame? **', defval='D') startDate = input(timestamp("2018-01-01 00:00"), title="Start Date") endDate = input(timestamp("2069-12-31 23:59"), title="End Date") //****************************************************************************// // Calculate Indicators f_secureSecurity(_symbol, _res, _src) => request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on) xPrice = ta.ema(xsrc, xsmooth) FastMA = xfixtf ? ta.ema(f_secureSecurity(syminfo.tickerid, xtf, ta.ema(xsrc, xprd1)), xsmooth) : ta.ema(xPrice, xprd1) SlowMA = xfixtf ? ta.ema(f_secureSecurity(syminfo.tickerid, xtf, ta.ema(xsrc, xprd2)), xsmooth) : ta.ema(xPrice, xprd2) Bull = FastMA > SlowMA Bear = FastMA < SlowMA // Define Color Zones Green = Bull and xPrice > FastMA Red = Bear and xPrice < FastMA // Buy and Sell Conditions buycond = Green and not Green[1] sellcond = Red and not Red[1] inDateRange = true if inDateRange if buycond strategy.entry("Long", strategy.long, qty=1) if sellcond strategy.close("Long") //****************************************************************************// // Display color on chart bColor = Green ? color.green : Red ? color.red : color.black barcolor(color=fillSW ? bColor : na) // Display MA lines FastL = plot(fastSW ? FastMA : na, "Fast EMA", color=color.new(color.red, 0), style=xfixtf ? plot.style_stepline : plot.style_line) SlowL = plot(slowSW ? SlowMA : na, "Slow EMA", color=color.new(color.blue, 0), style=xfixtf ? plot.style_stepline : plot.style_line) fill(FastL, SlowL, Bull ? color.new(color.green, 90) : (Bear ? color.new(color.red, 90) : na))