Dual EMA Intelligent Tracking Strategy

Author: ChaoZhang, Date: 2024-02-26 11:41:23



This strategy is a dual EMA indicator-based trend tracking strategy. By calculating the fast EMA line and slow EMA line and determining golden cross and death cross, it realizes low buying high selling to automatically track market trends.

Strategy Principle

The core indicator of this strategy is the dual EMA, including the fast EMA line and slow EMA line. The fast EMA line has a length of 3 days and reacts sensitively. The slow EMA line has a length of 30 days and reacts slowly. When the fast line crosses above the slow line, a golden cross signal is generated, indicating the market is entering an upward trend, and the strategy will open long positions at this time. When the fast line crosses below the slow line, a death cross signal is generated, indicating the market is entering a downward trend, and the strategy will close positions at this time. By using such fast and slow EMA line crosses to track changes in market trends, the strategy can automatically switch position directions to achieve low buying and high selling.

Advantage Analysis

The biggest advantage of this strategy is that it can automatically identify market trends and flexibly adjust positions accordingly. Specifically, the main advantages are as follows:

  1. The combination of the sensitivity of the fast EMA and the stability of the slow EMA can accurately capture inflection points in trends while filtering out noise to prevent false signals.

  2. Using dual EMA crossover signals, positions are only adjusted when significant trend changes occur, avoiding excessive frequency of trading.

  3. The strategy logic is simple and clear, easy to understand and modify, and convenient to backtest and optimize quantitatively.

  4. High capital utilization efficiency, maintains positions most of the time to track trends.

Risk and Solution Analysis

  1. The dual EMA indicator belongs to the trend tracking strategy, which cannot predict or avoid the risks of major fluctuations or special events. The risk control method is to appropriately shorten the holding period and stop loss in time.

  2. The EMA indicator is sensitive to parameters. Improper fast and slow line parameter settings may lead to poor strategy performance. The optimal parameters can be found through systematic backtesting optimization methods.

  3. The dual EMA indicator may generate false signals in some shocks or sideways trends. Consider introducing other auxiliary indicators for signal filtering on the basis of EMA.

  4. The dual EMA strategy belongs to the tracking strategy, not good at selecting important technical turning points. Consider introducing K-line patterns and other auxiliary judgments at critical technical positions.

Optimization Directions

The following aspects of this strategy can be further optimized:

  1. Optimize the parameters of the fast and slow EMA lines to find the best parameter combination.

  2. Increase other indicators to build multi-factor models and improve signal accuracy. Such as introducing BOLL derivatives indicators, etc.

  3. Add stop loss strategies to control single transaction risks. Such as introducing trailing stops, etc.

  4. The optimal parameters may differ across products. Consider factor decomposition to find parameters most suitable for each product.

  5. Machine learning methods can be tried for time-driven hyperparameter optimization.

  6. Explore K-line pattern recognition at key technical positions to capture larger degree reversals.


In summary, this is a simple and practical dual EMA trend tracking strategy. It automatically adjusts positions by determining market stages through fast and slow EMA crosses. The strategy logic is concise and clear, easy to implement quantitatively. At the same time, there is room for further optimization to improve signal accuracy and control risks to make it a high-quality quantitative strategy for actual trading.

start: 2023-02-19 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]

strategy("EMA Crossover Strategy with Target", shorttitle="EMACross", overlay=true)

// Define input parameters
fastLength = input(3, title="Fast EMA Length")
slowLength = input(30, title="Slow EMA Length")
profitPercentage = input(100.0, title="Profit Percentage")

// Calculate EMAs
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)

// Plot EMAs on the chart
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")

// Buy condition: 3EMA crosses above 30EMA
buyCondition = ta.crossover(fastEMA, slowEMA)

// Sell condition: 3EMA crosses below 30EMA or profit target is reached
sellCondition = ta.crossunder(fastEMA, slowEMA) or close >= (strategy.position_avg_price * (1 + profitPercentage / 100))

// Target condition: 50 points profit
//targetCondition = close >= (strategy.position_avg_price + 50)

// Execute orders
// strategy.entry("Buy", strategy.long, when=buyCondition)
// strategy.close("Buy", when=sellCondition )
if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)

// // Execute sell orders
// strategy.entry("Sell", strategy.short, when=sellCondition)
// strategy.close("Sell", when=buyCondition)

// Plot buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)