Skip to main content

MACD_Recovery Strategy: The Trend Pullback "Bargain Hunter"

Nickname: Bargain Hunter, Pullback Harvester
Profession: Sniper who only "buys the dip" in uptrends
Timeframe: 5 minutes


I. What Is This Strategy?

Simply put, MACD_Recovery is a strategy that:

  • Only works in uptrends
  • Waits for price pullbacks to buy cheap
  • Uses MACD golden cross to confirm entry timing

It's like waiting for the subway: You don't chase after it; you stand on the platform and board when it stops 🚇


II. Core Configuration: "Quick In, Quick Out"

Take-Profit Rules (ROI Table)

Just bought: Target around 3%
5 hours later: Target drops to 2.9%
10 hours later: Target drops to 2.5%
...
35 hours later: No matter what, get out!

Translation: The strategy wants to make money fast. If you buy and it doesn't rise, it'll bail after about a day and a half.

Stop Loss Rules

Loss reaches 4%, unconditional retreat

Translation: Stop loss is set quite tight, allowing maximum 4% loss. This means you can easily get "shaken off," but it also ensures you won't lose big.


III. 1 Buy Condition: Three Conditions Combined

This strategy's buy condition looks like one, but actually contains three conditions that must be satisfied simultaneously:

🎯 Three-in-One Buy Condition

Plain English:

"I'm waiting for three things to happen together: 1) RSI minimum in the last 8 candles dropped below 41 (oversold); 2) Price is above EMA200 (uptrend); 3) MACD golden cross (momentum reversal)."

Classic Lines:

# Buy Conditions
(
(dataframe['rsi'].rolling(8).min() < 41) & # RSI is a bit low
(dataframe['close'] > dataframe['ema200']) & # Trend is upward
(qtpylib.crossed_above(dataframe['macd'],
dataframe['macdsignal'])) # MACD golden crossed!
)

"RSI oversold + Uptrend + MACD golden cross = Perfect entry point!"

Breakdown:

  • RSI < 41: Price has pulled back enough, selling pressure is almost exhausted
  • Price > EMA200: Big trend is upward, not catching a falling knife
  • MACD Golden Cross: Momentum is starting to reverse, confirming upward movement

IV. 1 Sell Condition: Take Profits and Run

4.1 Sell Signal

Plain English:

"I'm waiting for three things to happen together: 1) RSI maximum in the last 8 candles shot above 93 (overbought); 2) MACD is still positive (still in bullish zone); 3) MACD death cross (momentum weakening). Run!"

Classic Lines:

# Sell Conditions
(
(dataframe['rsi'].rolling(8).max() > 93) & # RSI is too high!
(dataframe['macd'] > 0) & # MACD still bullish
(qtpylib.crossed_below(dataframe['macd'],
dataframe['macdsignal'])) # But already death crossed
)

"RSI hit 93, MACD still above zero but starting to death cross—if you don't run now, when will you?"

4.2 11-Level Take-Profit Table

Besides the sell signal, there's a super detailed take-profit table:

Time           Target Return
─────────────────────────
0 minutes 3.024%
~5 hours 2.924%
~10 hours 2.545%
~14 hours 2.444%
~16 hours 2.096%
~21 hours 1.709%
~23.5 hours 1.598%
~28 hours 1.22%
~31.5 hours 0.732%
~34 hours 0.493%
~35 hours 0% (forced exit)

Plain English: After buying, hope it rises fast. If it rises slowly, I'll lower expectations. More than 35 hours (about a day and a half) and still not profitable? Bye bye!


V. This Strategy's "Personality Traits"

✅ Strengths (Praise Section)

  1. Simple Logic: Three conditions combined, crystal clear, not too much, not too little
  2. Trend Filtering: EMA200 ensures only trading in uptrends, not against the trend
  3. Time Constraint: 35-hour forced exit, capital won't be occupied indefinitely

⚠️ Weaknesses (Complaint Section)

  1. Fewer Signals: Only one combined buy condition, may miss other opportunities
  2. Stop Loss Too Tight: 4% stop loss can easily get "shaken" out by the market
  3. No Trailing Stop: Can't run with the trend when it rises; can only wait for sell signal

VI. Applicable Scenarios: When to Use It?

Market EnvironmentRecommended ActionReason
📈 Moderate Uptrend✅ RecommendedBest scenario, many pullback entry opportunities
🔄 Oscillating Uptrend✅ Can useEMA200 filtering can avoid false breakouts
📉 Downtrend❌ Don't useEMA200 filtering will result in very few signals
⚡ High Volatility⚠️ Caution4% stop loss can be frequently triggered

VII. Summary: How Is This Strategy Really?

One-Sentence Evaluation

"A 'bargain hunter' that waits for pullbacks in uptrends, simple logic, suitable for beginners to learn."

Who Should Use It?

  • ✅ Beginners learning trend strategies
  • ✅ Traders who prefer simple logic
  • ✅ 5-minute level short-term traders
  • ✅ People wanting to understand EMA/RSI/MACD combination usage

Who Should NOT Use It?

  • ❌ People pursuing complex strategies
  • ❌ Those needing more entry signals
  • ❌ People who don't like tight stop losses
  • ❌ Those wanting to go long in downtrends

My Recommendations

  1. Backtest first: Test effects on different currencies and timeframes
  2. Adjust stop loss: Can appropriately relax to 5% based on volatility
  3. Add filtering: If signals are too few, can lower RSI threshold to 35
  4. Small capital test: Verify with small capital in live trading

VIII. What Markets Can This Strategy Make Money In?

8.1 Core Logic: Trend Pullback Trading

MACD_Recovery is a trend pullback strategy. Its profit philosophy:

"Don't chase the rise, wait for pullback; trend exists, then I come."

  • EMA200 Filtering: Only trade in bull markets
  • RSI Oversold: Wait for price to pull back into place
  • MACD Golden Cross: Confirm reversal before entering

8.2 Performance in Different Markets (Plain English Version)

Market TypePerformance RatingPlain English Explanation
📈 Moderate Uptrend⭐⭐⭐⭐⭐Many pullback opportunities, stable trend, simply home court
🔄 Oscillating Uptrend⭐⭐⭐⭐☆Has trend, has pullbacks, can capture swings
📉 Downtrend⭐☆☆☆☆EMA200 filtering leaves you with almost no signals
⚡️ High Volatility⭐⭐☆☆☆4% stop loss easily gets penetrated, frequent small losses

One-Sentence Summary: Only suitable for uptrends, rest during downtrends, don't force it.


IX. Want to Run This Strategy? Check These Configurations First

9.1 Trading Pair Configuration

Configuration ItemRecommended ValueComment
Trading PairsMajor currency pairsDon't use currencies with poor liquidity
Timeframe5m (default)Can try 15m

9.2 Hardware Requirements (Easy)

This strategy has extremely low computational requirements:

Number of Trading PairsMinimum MemoryRecommended MemoryExperience
1-10 pairs1GB2GBSmooth
10-50 pairs2GB4GBNo pressure

Comment: Can run on a Raspberry Pi, don't worry about hardware!

9.3 Backtesting vs Live Trading

Due to simple logic, differences between backtesting and live trading are not large. Main points to note:

  • Slippage: 5-minute level, slippage may eat away some profits
  • Latency: Exchange latency may miss best entry price
  • Stop Loss Hit: 4% stop loss is relatively tight, may trigger more easily in live trading than backtesting

Recommended Process:

  1. First validate with historical data backtesting
  2. Test with demo trading for 1-2 weeks
  3. Small capital live trading test
  4. Adjust parameters based on results

Don't go all-in immediately; even the best strategy needs磨合!


X. Easter Egg: The Strategy Author's "Little Thoughts"

Look carefully at the code, you'll find some interesting things:

  1. RSI threshold set to 41 instead of 30

    "I don't want to wait too long, start preparing when RSI hits 41."

  2. 35-hour forced exit

    "If it's not profitable after a day and a half, this trade is a failure, hurry to the next one."

  3. Stop loss 4.032%, precise to decimal point

    "This number was definitely optimized, not just randomly set by me."


XI. Last But Not Least

One-Sentence Evaluation

"Simple trend pullback strategy, suitable for beginner learning and moderate uptrend markets."

Who Should Use It?

  • ✅ Beginners learning strategy logic
  • ✅ People who like simple and clear things
  • ✅ 5-minute short-term traders
  • ✅ People wanting to understand EMA/RSI/MACD combination

Who Should NOT Use It?

  • ❌ People pursuing complex strategies
  • ❌ Those wanting more signals
  • ❌ People wanting to trade in downtrend markets
  • ❌ Those who don't like tight stop losses

Manual Trader Recommendations

Can manually apply this logic:

  1. Draw EMA200 on the chart
  2. Wait for price pullback, RSI below 41
  3. Observe MACD golden cross signal
  4. Set 4% stop loss, target 3%

XII. ⚠️ Risk Re-emphasis (Must Read This Section)

Backtesting Is Beautiful, Live Trading Requires Caution

MACD_Recovery's historical backtesting performance may be pretty good—but there's a trap:

Simple strategies are often parameter-sensitive; optimized numbers (4.032% stop loss, 41 RSI threshold) may just "happen" to fit historical data.

Simply put: "Working well in the past doesn't mean it will work well in the future."

Hidden Risks of Tight Stop Loss

In live trading, tight 4% stop loss may lead to:

  • Frequently shaken out: Normal volatility triggers stop loss
  • Slippage amplifies losses: Actual execution price may be worse
  • Missing subsequent rebound: Price rises again after stop loss

My Recommendations (Honest Truth)

1. Test with demo trading for at least two weeks first
2. Consider relaxing stop loss to 5%
3. Only use in clear uptrends
4. Pause strategy or switch to other strategies during downtrends

Remember: Trend strategies make money in trending markets, lose money in sideways markets. Recognizing market environment is more important than choosing strategies!


Final Reminder: No matter how good the strategy, the market won't say hello when it teaches you a lesson. Light position testing, staying alive is most important! 🙏