0bps

Strategy vault / Momentum

Momentum Trend Following Dual Indicator MACD and Parabolic SAR Combination Strategy

This strategy is a trend-following trading system that combines MACD (Moving Average Convergence Divergence) and Parabolic SAR (Stop and Reverse) indicators. By integrating momentum and trend indicators, it…

Author
ianzeng123
Complexity
Starter · 49 lines
Parameters
0
Backtest bar
1d · swing
Tested on
BTC/USDT · spot

IMG IMG

Overview

This strategy is a trend-following trading system that combines MACD (Moving Average Convergence Divergence) and Parabolic SAR (Stop and Reverse) indicators. By integrating momentum and trend indicators, it quantifies trend strength while identifying market direction, thereby capturing higher quality trading opportunities. The strategy uses MACD line crossovers to confirm trend momentum while utilizing SAR points to confirm trend direction and set trailing stops.

Strategy Principles

The core logic consists of two components:

  1. MACD Component: Calculates MACD line using 12-period and 26-period exponential moving averages, with a 9-period moving average as the signal line. MACD line crossing above the signal line indicates a bullish signal, while crossing below indicates a bearish signal.
  2. SAR Component: Calculates SAR points using default parameters (start 0.02, increment 0.02, maximum 0.2). Confirms uptrend when price is above SAR points and downtrend when below.

Entry Rules:

  • Long Condition: MACD line above signal line and price above SAR points
  • Short Condition: MACD line below signal line and price below SAR points

Exit Rules:

  • Long Positions: Exit when short signal appears
  • Short Positions: Exit when long signal appears

Strategy Advantages

  1. High Signal Reliability: Combining momentum (MACD) and trend (SAR) indicators effectively filters false signals, improving trading accuracy.
  2. Robust Risk Control: SAR indicator automatically adjusts stop-loss positions based on market volatility, enabling dynamic risk management.
  3. Strong Adaptability: Strategy parameters can be optimized for different market environments and trading timeframes.
  4. Standardized Execution: Clear trading signals facilitate algorithmic implementation, reducing human judgment errors.

Strategy Risks

  1. Ineffective in Ranging Markets: May generate frequent false breakout signals during sideways consolidation, leading to overtrading.
  2. Inherent Lag: Due to the moving average system, signals lag behind price action, potentially missing optimal entry points.
  3. Parameter Sensitivity: Different parameter combinations yield varying results, requiring extensive historical data testing.
  4. Market Environment Dependency: Strategy performs well in trending markets but requires timely adjustments when market characteristics change.

Strategy Optimization Directions

  1. Add Market Environment Filtering: Incorporate volatility indicators (like ATR) to assess market conditions, reducing trading frequency or pausing during low volatility periods.

  2. Enhance Stop-Loss Mechanism: Implement a combination of fixed percentage and trailing stops alongside SAR stops to improve risk control stability.

  3. Optimize Parameter Selection: Utilize machine learning methods to automatically optimize MACD and SAR parameter combinations for different market cycles.

  4. Incorporate Volume Analysis: Include volume indicators to confirm trend strength and improve signal reliability.

Conclusion

This strategy creates a comprehensive trend-following trading system by combining MACD and Parabolic SAR. It offers clear signals, controllable risk, and strong adaptability, but also has limitations such as trend dependency and signal lag. Through improvements in market environment filtering and stop-loss optimization, the strategy's stability and practicality can be further enhanced. It is suitable for traders focusing on medium to long-term trends, with recommended thorough parameter optimization and backtesting before live implementation.

Source Pine Script

/*backtest
start: 2024-02-21 00:00:00
end: 2024-11-25 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD + Parabolic SAR Strategy", shorttitle="MACD+SAR", overlay=true)

//========== User Inputs ==========//
// MACD parameters
fastLength   = input.int(12, "MACD Fast Length")
slowLength   = input.int(26, "MACD Slow Length")
signalLength = input.int(9,  "MACD Signal Length")

// SAR parameters (start, step, maximum)
afStart     = input.float(0.02, "SAR Start")
afIncrement = input.float(0.02, "SAR Increment")
afMax       = input.float(0.2,  "SAR Max")

//========== MACD Calculation ==========//
[macdLine, signalLine, histLine] = ta.macd(close, fastLength, slowLength, signalLength)

//========== Parabolic SAR Calculation ==========//
sarValue = ta.sar(afStart, afIncrement, afMax)

//========== Entry Conditions ==========//
// Long: MACD > Signal + close > SAR
longCondition  = (macdLine > signalLine) and (close > sarValue)

// Short: MACD < Signal + close < SAR
shortCondition = (macdLine < signalLine) and (close < sarValue)

//========== Enter Positions ==========//
if longCondition
    strategy.entry("Long", strategy.long)

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

//========== Exit Positions on Opposite Signal ==========//
if strategy.position_size > 0 and shortCondition
    strategy.close("Long", comment="Exit Long")

if strategy.position_size < 0 and longCondition
    strategy.close("Short", comment="Exit Short")

Published by ianzeng123 on the FMZ strategy square · last modified 2025-02-27. 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/Momentum-Trend-Following-Dual-Indicator-MACD-and-Parabolic-SAR-Combination-Strategy.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