AwesomeMacd Strategy In-Depth Analysis
Strategy ID: #422 (422nd of 465 strategies)
Strategy Type: Multi-Indicator Momentum Confirmation Strategy
Timeframe: 1 Hour (1h)
I. Strategy Overview
AwesomeMacd is a dual-confirmation momentum strategy combining MACD (Moving Average Convergence Divergence) with Awesome Oscillator (AO). The strategy originates from the Mynt quantitative trading framework, ported from C# to Freqtrade by Gert Wohlgemuth. It improves signal reliability through multi-indicator cross-validation.
Core Features
| Feature | Description |
|---|---|
| Entry Condition | 1 composite buy signal (MACD + AO dual confirmation) |
| Exit Condition | 1 composite sell signal (MACD + AO dual confirmation) |
| Protection Mechanism | Stop loss only, no additional protection layers |
| Timeframe | 1 Hour (1h) |
| Dependencies | talib, qtpylib |
II. Strategy Configuration Analysis
2.1 Basic Risk Parameters
# ROI exit table
minimal_roi = {
"0": 0.1 # 10% profit target
}
# Stop loss setting
stoploss = -0.25 # 25% stop loss
Design Rationale:
- Moderate ROI target (10%): 1-hour framework suitable for intraday swings, moderate target facilitates quick profit taking
- Wide stop loss (25%): Provides sufficient tolerance for volatility, avoiding noise-triggered stops
2.2 Order Type Configuration
This strategy does not explicitly configure order_types and will use Freqtrade default settings.
III. Entry Conditions Detailed
3.1 Core Entry Logic
The entry signal requires three conditions to be met simultaneously:
# Entry conditions
(dataframe['macd'] > 0) & # Condition 1: MACD line above zero
(dataframe['ao'] > 0) & # Condition 2: AO above zero
(dataframe['ao'].shift() < 0) # Condition 3: Previous candle AO below zero (negative to positive)
Condition Analysis:
| Condition | Indicator | Meaning |
|---|---|---|
| Condition 1 | MACD > 0 | MACD line above zero, indicating short-term EMA above long-term EMA, bullish bias |
| Condition 2 | AO > 0 | Current AO value positive, indicating bullish momentum |
| Condition 3 | AO.shift() < 0 | Previous candle's AO was negative, indicating AO just turned from negative to positive (momentum reversal) |
3.2 Technical Principles
MACD Indicator:
- MACD Line = EMA(12) - EMA(26)
- Signal Line = EMA(MACD, 9)
- MACD > 0 indicates short-term MA above long-term MA, bullish trend
Awesome Oscillator (AO):
- AO = SMA(Median Price, 5) - SMA(Median Price, 34)
- Measures market momentum, positive values indicate bullish momentum, negative values indicate bearish momentum
- AO turning from negative to positive is a momentum reversal signal
Dual Confirmation Logic:
- MACD confirms trend direction
- AO confirms momentum reversal timing
- Both combined improve signal reliability
IV. Exit Logic Detailed
4.1 Core Exit Logic
The exit signal also requires three conditions to be met simultaneously:
# Exit conditions
(dataframe['macd'] < 0) & # Condition 1: MACD line below zero
(dataframe['ao'] < 0) & # Condition 2: AO below zero
(dataframe['ao'].shift() > 0) # Condition 3: Previous candle AO above zero (positive to negative)
Condition Analysis:
| Condition | Indicator | Meaning |
|---|---|---|
| Condition 1 | MACD < 0 | MACD line below zero, bearish bias |
| Condition 2 | AO < 0 | Current AO value negative, bearish momentum |
| Condition 3 | AO.shift() > 0 | Previous candle's AO was positive, AO just turned from positive to negative (momentum reversal) |
4.2 Exit Mechanism Summary
| Exit Method | Trigger Condition | Description |
|---|---|---|
| ROI Take Profit | Profit reaches 10% | Fixed target take profit |
| Momentum Exit | MACD < 0 and AO turns from positive to negative | Momentum reversal signal |
| Stop Loss | Loss reaches 25% | Risk control baseline |
V. Technical Indicator System
5.1 Core Indicators
| Indicator Category | Specific Indicator | Purpose |
|---|---|---|
| Trend Indicator | MACD (12, 26, 9) | Trend direction determination |
| Momentum Indicator | Awesome Oscillator (5, 34) | Momentum strength and reversal |
| Trend Strength | ADX (14) | Calculated but not used in signals |
5.2 Indicator Calculation Code
# ADX indicator (calculated but not used in trading signals)
dataframe['adx'] = ta.ADX(dataframe, timeperiod=14)
# Awesome Oscillator
dataframe['ao'] = qtpylib.awesome_oscillator(dataframe)
# MACD indicator
macd = ta.MACD(dataframe)
dataframe['macd'] = macd['macd']
dataframe['macdsignal'] = macd['macdsignal']
dataframe['macdhist'] = macd['macdhist']
5.3 ADX Indicator Note
The strategy calculates ADX but does not use it in trading signals, which may be:
- Reserved for future optimization
- Used for backtesting analysis or visualization
- Potential candidate for trend strength filtering
VI. Risk Management Features
6.1 Concise Risk Framework
| Risk Parameter | Setting | Description |
|---|---|---|
| Stop Loss | -25% | Fixed percentage stop loss |
| Take Profit | +10% | Fixed target take profit |
| Trailing Stop | None | Not enabled |
6.2 Dual Confirmation Reduces False Signals
The strategy's core risk control lies in:
- MACD confirms trend: Avoids counter-trend trading
- AO confirms timing: Captures momentum reversal points
- Both must be met simultaneously: Improves signal quality, reduces false breakouts
VII. Strategy Advantages and Limitations
✅ Advantages
- Dual Confirmation Mechanism: MACD + AO combination reduces false signals
- Momentum Reversal Capture: AO negative-to-positive/positive-to-negative captures momentum inflection points
- Symmetrical Logic: Entry and exit conditions mirror each other, consistent logic
- 1-Hour Framework: Suitable for intraday swing trading, faster response
⚠️ Limitations
- Wide Stop Loss: 25% stop loss may be too large for some traders
- No Trailing Stop: Insufficient profit protection mechanism
- ADX Not Used: Calculated but unused, wastes computational resources
- Not for Ranging Markets: Trend strategy, may have frequent stop losses during sideways movement
VIII. Suitable Scenarios
| Market Environment | Recommended Configuration | Description |
|---|---|---|
| Momentum Market | Default configuration | Strategy excels at capturing momentum reversals |
| Single-direction Trend | Consider raising ROI | Can hold longer when trending |
| Ranging Market | Not recommended | Will generate false signals |
| High Volatility | Increase stop loss | Avoid stops triggered by normal volatility |
IX. Applicable Market Environment Details
AwesomeMacd is a momentum confirmation trend strategy. It combines a trend indicator (MACD) and momentum indicator (AO) for dual verification, best suited for trending markets with clear momentum, while potentially underperforming in sideways ranging markets.
9.1 Strategy Core Logic
- Trend Confirmation: MACD above zero confirms bullish trend
- Momentum Capture: AO turning from negative to positive confirms momentum reversal timing
- Dual Filtering: Both conditions must be met for entry, improving win rate
9.2 Performance in Different Market Environments
| Market Type | Performance Rating | Analysis |
|---|---|---|
| 📈 Momentum Uptrend | ⭐⭐⭐⭐⭐ | Dual confirmation precisely captures momentum initiation |
| 🔄 Sideways Range | ⭐⭐☆☆☆ | MACD and AO may repeatedly cross zero |
| 📉 Momentum Downtrend | ⭐⭐⭐☆☆ | Exit signal accurate, but no shorting mechanism |
| ⚡️ High Volatility | ⭐⭐⭐☆☆ | Noise may cause false signals, requires larger stop loss |
9.3 Key Configuration Recommendations
| Configuration | Recommended Value | Description |
|---|---|---|
| Trading Pairs | Major coins | Good liquidity, more reliable momentum signals |
| Stop Loss | -0.2 to -0.3 | Adjust based on 1h volatility characteristics |
| Take Profit | 0.08 to 0.15 | Adjust based on market activity |
X. Important Note: Optimization Opportunities
10.1 ADX Indicator Utilization
The strategy calculates ADX but doesn't use it. Consider:
- Adding
ADX > 25as trend strength filter - Reducing false signals in ranging markets
10.2 Take Profit/Stop Loss Optimization
| Optimization Direction | Suggested Method |
|---|---|
| Dynamic Take Profit | Adjust ROI target based on market volatility |
| Trailing Stop | Implement profit protection, let profits run |
| ATR Stop Loss | Dynamically adjust stop loss based on market volatility |
10.3 Entry Confirmation Enhancement
Consider adding:
- Volume confirmation: Volume breakout more reliable
- RSI filter: Avoid entry at extreme levels
XI. Summary
AwesomeMacd is a classic dual-indicator confirmation momentum strategy. Its core value lies in:
- Dual Confirmation: MACD + AO combination improves signal reliability
- Momentum Reversal: Precisely captures momentum reversal timing
- Symmetrical Logic: Entry and exit conditions mirror each other, consistent trading logic
For quantitative traders, this is an excellent example for understanding multi-indicator combination strategies. The strategy is concise and effective while retaining optimization potential (such as using ADX filtering), suitable as an intermediate-level strategy for learning and improvement.
Strategy Author: Gert Wohlgemuth
Strategy Source: Mynt Quantitative Trading Framework (C# Port)
Strategy Positioning: Momentum Confirmation / Intermediate Strategy