Advanced MACD Strategy with Limited Martingale
This strategy combines the MACD indicator with a limited Martingale money management method to capture trading opportunities when market trends change. A buy signal is generated when the MACD fast line crosses above…

Overview
This strategy combines the MACD indicator with a limited Martingale money management method to capture trading opportunities when market trends change. A buy signal is generated when the MACD fast line crosses above the slow line, and a sell signal is generated when the fast line crosses below the slow line. At the same time, the strategy uses a limited Martingale method to control drawdowns, with a maximum of 3 additional positions. The strategy sets a fixed take profit and stop loss of 1% for each trade.
Strategy Principles
- Calculate the fast line, slow line, and signal line of the MACD indicator.
- Determine the crossover of the fast and slow lines, going long on a bullish crossover and short on a bearish crossover.
- Set a fixed trading volume (0.01) for each trade.
- Record the net profit of the previous trade.
- If the current net profit is less than the previous trade and the number of additional positions is less than 3, double the next trading volume and increase the number of additional positions by 1; otherwise, reset the trading volume and number of additional positions.
- For each long position, take profit when the price rises by 1% and stop loss when it falls by 1%; vice versa for short positions.
- Mark buy and sell points on the chart.
Strategy Advantages
- Combines the MACD trend-following indicator with Martingale money management, which can better capture trending markets.
- Sets fixed take profit and stop loss levels to control individual trade risk.
- Uses limited Martingale position sizing to achieve higher returns when trends continue.
- Limits the maximum number of additional positions to 3, avoiding the risk of excessive position sizing leading to account blowouts.
- Marks buy and sell signals on the chart for easy observation of strategy performance.
Strategy Risks
- The MACD indicator may experience divergence between signals and price, leading to misjudgment.
- Fixed take profit and stop loss ratios may miss out on larger profit opportunities or incur greater losses.
- Although Martingale position sizing is limited to 3 times, there is still a risk of account blowouts when experiencing consecutive losses in choppy markets.
- The strategy does not consider abnormal market fluctuations, such as sudden gaps, which may result in inability to execute as expected.
Strategy Optimization Directions
- Consider introducing trend confirmation indicators, such as MA, to filter MACD signals.
- Optimize the take profit and stop loss settings, such as using ATR or percentages for dynamic stop losses.
- Optimize the number and ratio of additional positions to control drawdown risk.
- Set up mechanisms to deal with abnormal market conditions, such as suspending trading when prices gap.
- Consider introducing position sizing to dynamically adjust positions based on market volatility.
Summary
This strategy captures trends through the MACD indicator while using limited Martingale to control drawdowns, which can achieve good results in trending markets. However, the strategy also has certain risks, such as signal failure and fixed stop losses. By introducing other indicators, optimizing parameter settings, position sizing, and other methods, the robustness and profitability of this strategy can be further improved.
Source Pine Script
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Advanced MACD Strategy with Limited Martingale", overlay=true, initial_capital=100)
// MACD 설정
fastLength = 15
slowLength = 30
signalSmoothing = 9
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
// 계약수 및 이전 거래 결과 기록
var float contractSize = 0.01
var int martingaleCount = 0 // 마틴게일 카운트
var float lastTradeResult = 0
// 매수 및 매도 조건
longCondition = ta.crossover(macdLine, signalLine)
shortCondition = ta.crossunder(macdLine, signalLine)
// 매수 신호
if (longCondition)
strategy.entry("Long", strategy.long, qty=contractSize)
lastTradeResult := strategy.netprofit
// 매도 신호
if (shortCondition)
strategy.entry("Short", strategy.short, qty=contractSize)
lastTradeResult := strategy.netprofit
// 익절 및 손절 조건
strategy.close("Long", when=(close / strategy.position_avg_price >= 1.01))
strategy.close("Short", when=(strategy.position_avg_price / close >= 1.01))
strategy.close("Long", when=(close / strategy.position_avg_price <= 0.99))
strategy.close("Short", when=(strategy.position_avg_price / close <= 0.99))
// 마틴게일 전략 적용
if (strategy.netprofit < lastTradeResult)
if (martingaleCount < 3)
contractSize := contractSize * 2
martingaleCount := martingaleCount + 1
else
contractSize := 0.01
martingaleCount := 0
else
contractSize := 0.01
martingaleCount := 0
// 매수, 매도 포인트 화살표로 표시
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")Published by ChaoZhang on the FMZ strategy square · last modified 2024-05-11. 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/Advanced-MACD-Strategy-with-Limited-Martingale.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
- Multiple Indicator Quantitative Trading StrategyPine Script · Martingale · 1h
- MACD KDJ Combined Martingale Pyramiding Quantitative Trading StrategyPine Script · Martingale · 1h
- Advanced MACD Strategy with Limited Martingale 453225Pine Script · Martingale · 1h
- MACD and Martingale Combination Strategy for Optimized Long TradingPine Script · Martingale · 1h
- Bollinger Bands and RSI indicators strategyPine Script · Martingale · 2h
- Diversified Indicators Aggregation StrategyPine Script · Martingale · 1d