Long-Short Moving Average Crossover Trading Strategy

Author: ChaoZhang, Date: 2023-12-13 15:23:32



The long-short moving average crossover trading strategy is a typical trend-following strategy. It uses the golden cross and death cross of the fast and slow moving averages to determine market trends and make corresponding long and short trades. When the fast moving average crosses above the slow moving average, it indicates an upward trend, so go long. When the fast moving average crosses below the slow moving average, it indicates a downward trend, so go short. This strategy works well for markets with strong mid- to long-term trends.

Strategy Logic

The core logic of the long-short MA strategy is based on the golden cross and death cross of moving averages. Moving averages can effectively filter out market noise and reflect trend direction. The fast MA reacts more quickly to price changes and captures short-term trends. The slow MA responds more slowly and tracks long-term trends.

When the fast MA crosses above the slow MA, it shows that the short-term trend has more upward momentum than the long-term trend, so go long. When the fast MA crosses below the slow MA, it indicates stronger downward momentum in the short-term trend, so go short.

Specifically, this strategy defines a fast MA (length 9) and a slow MA (length 21). It then uses ta.crossover and ta.crossunder to detect golden crosses and death crosses between them. It goes long on golden crosses and goes short on death crosses.

Advantage Analysis

The long-short MA strategy has the following advantages:

  1. Simple logic, easy to understand and implement;
  2. Moving averages filter noise effectively and identify trends;
  3. Fast and slow MAs combined catch mid- to long-term trends;
  4. Customizable MA parameters work for different markets;
  5. Applicable to multiple timeframes, flexible.

Risk Analysis

The long-short MA strategy also has the following risks:

  1. Whipsaws and false signals may occur in ranging markets;
  2. Poor MA parameter tuning leads to bad signals;
  3. Unable to gauge trend strength, losses near reversals;
  4. Entry levels not clearly defined.

These risks can be reduced by optimizing MA parameters, adding filters, and setting stop losses.

Optimization Directions

The long-short MA strategy can be improved in the following aspects:

  1. Optimize MA parameters to find the best combination;
  2. Add other indicators as filters, e.g. MACD, KDJ to avoid bad signals;
  3. Add stop loss mechanisms to control loss per trade;
  4. Combine with volatility metrics to fine-tune entries.


In summary, the long-short MA crossover strategy is a simple and practical trend following system. By combining fast and slow moving averages, it can effectively identify trend direction. But it also has some flaws. After optimizations and enhancements, it can become a core quantitative trading strategy.

start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]

strategy("MA Strategy", overlay=true)

// Input parameters
fastLength = input(9, title="Fast MA Length")
slowLength = input(21, title="Slow MA Length")

// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)

// Plot moving averages
plot(fastMA, color=color.blue, title="Fast MA")
plot(slowMA, color=color.red, title="Slow MA")

// Strategy conditions
longCondition = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)

// Strategy orders
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Plot entry signals
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)