Skip to main content

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

FeatureDescription
Entry Condition1 composite buy signal (MACD + AO dual confirmation)
Exit Condition1 composite sell signal (MACD + AO dual confirmation)
Protection MechanismStop loss only, no additional protection layers
Timeframe1 Hour (1h)
Dependenciestalib, 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:

ConditionIndicatorMeaning
Condition 1MACD > 0MACD line above zero, indicating short-term EMA above long-term EMA, bullish bias
Condition 2AO > 0Current AO value positive, indicating bullish momentum
Condition 3AO.shift() < 0Previous 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:

ConditionIndicatorMeaning
Condition 1MACD < 0MACD line below zero, bearish bias
Condition 2AO < 0Current AO value negative, bearish momentum
Condition 3AO.shift() > 0Previous candle's AO was positive, AO just turned from positive to negative (momentum reversal)

4.2 Exit Mechanism Summary

Exit MethodTrigger ConditionDescription
ROI Take ProfitProfit reaches 10%Fixed target take profit
Momentum ExitMACD < 0 and AO turns from positive to negativeMomentum reversal signal
Stop LossLoss reaches 25%Risk control baseline

V. Technical Indicator System

5.1 Core Indicators

Indicator CategorySpecific IndicatorPurpose
Trend IndicatorMACD (12, 26, 9)Trend direction determination
Momentum IndicatorAwesome Oscillator (5, 34)Momentum strength and reversal
Trend StrengthADX (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 ParameterSettingDescription
Stop Loss-25%Fixed percentage stop loss
Take Profit+10%Fixed target take profit
Trailing StopNoneNot 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

  1. Dual Confirmation Mechanism: MACD + AO combination reduces false signals
  2. Momentum Reversal Capture: AO negative-to-positive/positive-to-negative captures momentum inflection points
  3. Symmetrical Logic: Entry and exit conditions mirror each other, consistent logic
  4. 1-Hour Framework: Suitable for intraday swing trading, faster response

⚠️ Limitations

  1. Wide Stop Loss: 25% stop loss may be too large for some traders
  2. No Trailing Stop: Insufficient profit protection mechanism
  3. ADX Not Used: Calculated but unused, wastes computational resources
  4. Not for Ranging Markets: Trend strategy, may have frequent stop losses during sideways movement

VIII. Suitable Scenarios

Market EnvironmentRecommended ConfigurationDescription
Momentum MarketDefault configurationStrategy excels at capturing momentum reversals
Single-direction TrendConsider raising ROICan hold longer when trending
Ranging MarketNot recommendedWill generate false signals
High VolatilityIncrease stop lossAvoid 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 TypePerformance RatingAnalysis
📈 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

ConfigurationRecommended ValueDescription
Trading PairsMajor coinsGood liquidity, more reliable momentum signals
Stop Loss-0.2 to -0.3Adjust based on 1h volatility characteristics
Take Profit0.08 to 0.15Adjust 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 > 25 as trend strength filter
  • Reducing false signals in ranging markets

10.2 Take Profit/Stop Loss Optimization

Optimization DirectionSuggested Method
Dynamic Take ProfitAdjust ROI target based on market volatility
Trailing StopImplement profit protection, let profits run
ATR Stop LossDynamically 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:

  1. Dual Confirmation: MACD + AO combination improves signal reliability
  2. Momentum Reversal: Precisely captures momentum reversal timing
  3. 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