0bps

Strategy vault / Momentum

MACD Momentum with MA Strategy

The Trend Hunter - MACD Momentum with MA strategy is an exquisite trading tool designed for traders seeking to capitalize on trending markets. Built on the robust combination of Average True Range (ATR), Simple…

Author
ChaoZhang
Complexity
Starter · 36 lines
Parameters
6
Backtest bar
1d · swing
Tested on
BTC/USDT · futures

IMG

Overview

The Trend Hunter - MACD Momentum with MA strategy is an exquisite trading tool designed for traders seeking to capitalize on trending markets. Built on the robust combination of Average True Range (ATR), Simple Moving Average (SMA) and Moving Average Convergence Divergence (MACD), it filters and confirms trade entries with precision.

Strategy Logic

ATR Stop Loss

Utilizes the ATR indicator to dynamically tune stop levels, adapting to market volatility by customizing ATR Length and Multiplier, providing balanced risk management.

SMA Trend Filter

Employs SMA as a trend filter. By tuning SMA Period, users align the strategy timeframe with their preferred market trend, enhancing adaptability.

MACD Entry Confirmation

Incorporates MACD to refine entry signals by comparing the MACD line against its signal line, ensuring alignment with momentum.

Entry Logic

Long: Triggered when price closes above SMA, having closed below in the prior period, with MACD line crossing above signal line. Entry set at current price plus ATR stop distance.

Short: Triggered when price closes below SMA, after closing above in previous period, with MACD line falling below signal line. Entry set at current price minus ATR stop distance.

Advantages

This strategy harnesses volatility, trend and momentum dynamics to construct systematic entry and risk rules. Its blend of indicators enhances adaptability across various market conditions, making it an ideal tool for trend-following.

By tracking trend momentum, the Trend Hunter aids in uncovering profit opportunities. Fine-tuning parameters to match trading style allows observing how the strategy plays a vital role in signaling favorable trading junctures.

Risk Analysis

The strategy relies on indicator combinations to gauge market conditions, risking misjudgments in certain situations. Trend reversals may also lead to increased losses.

Lowering false signals through parameter adjustments or wider stop distances provides solutions. Pausing strategies during abnormal volatility also averts anomalies.

Optimization Paths

Parameter Tuning

Testing and optimizing ATR Length, SMA Period and MACD inputs finds ideal values matching trading style.

More Filters

Adding indicators like KDJ, OBV etc as auxiliary filters improves accuracy. Extra conditions like volume spikes also prevent whipsaws.

Stop Loss Strategies

Trailing or volatility stops that dynamically adjust stop distance minimizes losses by tracking prices.

Conclusion

The Trend Hunter strategy amalgamates volatility, trend and momentum dynamics into a precise entry confirmation and risk management system. Parameter adjustments cater to individual trading styles, aiding in capitalizing on opportunities. Worthwhile for quants to further explore and apply.

Parameters

NameDefaultWhat it controls
v_input_120ATR Length
v_input_20.75ATR Multiplier
v_input_332SMA Period
v_input_412MACD Short Term
v_input_526MACD Long Term
v_input_69MACD Signal Smoothing

Source Pine Script

/*backtest
start: 2023-02-15 00:00:00
end: 2024-02-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("trend_hunter", overlay=true)

length = input(20, title="ATR Length")
numATRs = input(0.75, title="ATR Multiplier")
atrs = ta.sma(ta.tr, length) * numATRs

// Trend Filter
smaPeriod = input(32, title="SMA Period")
sma = ta.sma(close, smaPeriod)

// MACD Filter
macdShortTerm = input(12, title="MACD Short Term")
macdLongTerm = input(26, title="MACD Long Term")
macdSignalSmoothing = input(9, title="MACD Signal Smoothing")

[macdLine, signalLine, _] = ta.macd(close, macdShortTerm, macdLongTerm, macdSignalSmoothing)

// Long Entry with Trend and MACD Filter
longCondition = close > sma and close[1] <= sma[1] and macdLine > signalLine
strategy.entry("Long", strategy.long, stop=close + atrs, when=longCondition, comment="Long")

// Short Entry with Trend and MACD Filter
shortCondition = close < sma and close[1] >= sma[1] and macdLine < signalLine
strategy.entry("Short", strategy.short, stop=close - atrs, when=shortCondition, comment="Short")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_area)

Published by ChaoZhang on the FMZ strategy square · last modified 2024-02-22. 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/MACD-Momentum-with-MA-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