Dynamic Multi SMA and MACD based XAUUSD Trading Strategy
This strategy is an XAUUSD trading strategy that combines moving averages (SMA) and the Moving Average Convergence Divergence (MACD) indicator. It uses SMAs with different periods to determine the trend direction and…

Strategy Overview
This strategy is an XAUUSD trading strategy that combines moving averages (SMA) and the Moving Average Convergence Divergence (MACD) indicator. It uses SMAs with different periods to determine the trend direction and potential entry points, and employs the MACD indicator to confirm the momentum direction aligns with the signals generated by SMA crossovers. Additionally, the strategy utilizes the Average True Range (ATR) to set dynamic stop-loss and take-profit levels, adapting to different market volatility scenarios.
Strategy Principles
The core principles of this strategy can be divided into three parts:
Trend Determination: The strategy uses a 100-period SMA to gauge the overall trend direction. When the price is above this SMA, it is considered an uptrend, and long positions are considered. When the price is below this SMA, it is considered a downtrend, and short positions are considered. Additionally, the strategy employs a 15-period fast SMA and a 45-period slow SMA to identify more immediate trend changes and potential entry points based on their crossover.
Momentum Confirmation: The strategy uses the MACD (12, 26, 9) indicator to confirm the momentum direction aligns with the entry signals derived from the SMA crossover. A positive divergence (MACD line crossing above the signal line) supports a long entry, while a negative divergence (MACD line crossing below the signal line) supports a short entry.
Risk Management: The strategy utilizes the ATR (14-period) to set dynamic stop-loss and take-profit levels based on the current market volatility. The stop-loss is set at a distance of 3 times the ATR from the entry price, while the take-profit target is set at a distance of 6 times the ATR from the entry price (twice the stop-loss distance), aiming for a 2:1 risk-reward ratio.
The long entry conditions for this strategy are: the closing price is above the 100-period trend SMA, the 15-period fast SMA crosses above the 45-period slow SMA, and the MACD line is above the signal line (indicating bullish momentum). The short entry conditions are: the closing price is below the 100-period trend SMA, the 15-period fast SMA crosses below the 45-period slow SMA, and the MACD line is below the signal line (indicating bearish momentum).
Strategy Advantages
Combining trend following and momentum: The strategy leverages SMAs of different periods to determine the trend direction and combines it with the MACD indicator to confirm momentum, which can be particularly effective in markets with clear trends and significant price movements.
Dynamic risk management: By using ATR to dynamically set stop-loss and take-profit levels, the strategy automatically adjusts risk management based on the current market volatility, potentially enhancing its performance across different volatility environments.
Suitable for systematic trading: The strategy has clearly defined entry and exit conditions, making it suitable for traders seeking a systematic approach to trading.
Strategy Risks
Choppy markets: During range-bound or choppy market conditions, the strategy may generate numerous false signals, leading to frequent trades and potential capital losses.
Trend reversals: When market trends suddenly reverse, the strategy may struggle to adjust positions promptly, resulting in significant drawdowns.
Parameter optimization: The strategy's performance depends on the chosen parameters for the SMAs, MACD, and ATR. Optimal parameters may vary across different market environments, requiring parameter optimization and adjustment based on historical data.
Optimization Directions
Adding filters: Consider incorporating additional technical indicators or price action features as supplementary conditions to filter out some false signals and improve signal quality. For example, combining Bollinger Bands or price breakout methods could be explored.
Enhancing risk management: In addition to the ATR-based dynamic stop-loss and take-profit, explore other risk management techniques, such as volatility-based or price level-based stop-losses, or employing trailing stop strategies to further control risk exposure.
Incorporating fundamental analysis: XAUUSD price movements are influenced by various fundamental factors, such as monetary policies, inflation expectations, and geopolitical risks. Integrating fundamental analysis into the strategy's decision-making process can help improve its adaptability and robustness.
Conclusion
This strategy combines trend following and momentum approaches for trading XAUUSD, using SMAs of different periods to determine the trend direction and potential entry points, and the MACD indicator to confirm the momentum direction aligns with the SMA signals. Simultaneously, it employs an ATR-based dynamic stop-loss and take-profit mechanism, allowing it to automatically adjust risk management based on market volatility.
The strategy's strengths lie in its combination of trend following and momentum, as well as its dynamic risk management approach, making it suitable for markets with clear trends and significant price movements. However, it may face challenges during choppy markets or trend reversals, generating false signals and potential drawdowns.
Future optimization directions could include introducing additional filters, enhancing risk management techniques, and incorporating fundamental analysis to improve the strategy's signal quality, risk control capabilities, and adaptability. Before actual implementation, it is crucial to conduct parameter optimization and backtesting based on historical data and make necessary adjustments according to individual risk preferences.
Source Pine Script
/*backtest
start: 2024-02-17 00:00:00
end: 2024-03-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Egede
//@version=5
strategy("Refined XAUUSD SMA and MACD Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Moving Averages for trend direction and entry signals
trendSMA = ta.sma(close, 100) // Trend direction SMA
fastSMA = ta.sma(close, 15)
slowSMA = ta.sma(close, 45)
// MACD parameters for entry signal strength
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// ATR for dynamic stop loss and take profit
atrPeriod = 14
atrMultiplier = 3.0
atr = ta.atr(atrPeriod)
// Entry conditions with trend filter and stronger MACD divergence
longCondition = close > trendSMA and ta.crossover(fastSMA, slowSMA) and (macdLine - signalLine) > 0
shortCondition = close < trendSMA and ta.crossunder(fastSMA, slowSMA) and (signalLine - macdLine) > 0
// Dynamic stop loss and take profit based on ATR
dynamicSL = atr * atrMultiplier
dynamicTP = atr * atrMultiplier * 2 // Aiming for a 2:1 risk-reward ratio
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", "Long", stop=close - dynamicSL, limit=close + dynamicTP)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", "Short", stop=close + dynamicSL, limit=close - dynamicTP)
// Plotting
plot(trendSMA, color=color.purple)
plot(fastSMA, color=color.red)
plot(slowSMA, color=color.blue)
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.green, title="MACD Histogram")
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
Published by ChaoZhang on the FMZ strategy square · last modified 2024-03-19. 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-Multi-SMA-and-MACD-based-XAUUSD-Trading-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
- KST EMA Momentum Trend Following StrategyPine Script · Momentum · 1d
- Multi Indicator Trend Momentum Trading Strategy with Dynamic Risk Management SystemPine Script · Momentum · 1h
- Multi Indicator Trend Momentum Trading Strategy An Optimized Quantitative Trading System Based on Bollinger Bands Fibonacci and ATRPine Script · Momentum · 1h
- Multi MA Trend Strength Capture with Momentum Profit Taking StrategyPine Script · Momentum · 2h
- Multi Trend Momentum Crossover Strategy with Volatility Optimization SystemPine Script · Momentum · 1d
- AVMQTS Adaptive Volatility and Momentum Quantitative Trading System AVMQTSPine Script · Momentum · 1d