Pennants in der Tiefe: kurze Konsolidierungen im Trend.

Ein Pennant ist eines der unscheinbarsten Patterns der klassischen Chart-Lehre — und gleichzeitig eines der wenigen, das in Bulkowskis Statistiken eine messbare, wenn auch moderate Fortsetzungstendenz zeigt. Vorausgesetzt, man hält sich an drei Bedingungen, die in Lehrbüchern selten klar genug formuliert werden.

Was ein Pennant ist — und was nicht.

Ein Pennant ist eine kurze, symmetrische Dreiecks-Konsolidierung nach einer starken, fast vertikalen Kursbewegung. Diese vertikale Bewegung heißt Flagpole — sie ist das eigentliche Setup. Das Pennant selbst ist lediglich die Atempause zwischen Flagpole und Fortsetzungs-Bewegung. Visuell erinnert die Konstruktion an eine Wimpel an einer Stange: ein steiler Stab, ein kleines konvergierendes Dreieck, dann ein zweiter Schub in dieselbe Richtung.

Drei Bedingungen, die ein echtes Pennant von einer beliebigen Konsolidierung unterscheiden: Erstens muss der Flagpole steil sein — als Faustregel gilt ein steiler Anstieg über wenige Bars. Zweitens muss das Dreieck klein sein — typischerweise 5 bis 15 Bars, nicht 50. Drittens müssen die beiden Trendlinien des Dreiecks tatsächlich konvergieren, nicht parallel verlaufen. Ein paralleler Kanal ist eine Flagge, kein Pennant — der Unterschied ist statistisch relevant.

Bullish und Bearish Pennants.

Bullish Pennants bilden sich nach einem steilen Aufwärts-Move; Bearish Pennants nach einem steilen Abwärts-Move. Bulkowski berichtet in seiner Encyclopedia of Chart Patterns, dass Bullish Pennants im Aufwärtsmarkt besser abschneiden als Bearish Pennants. Das ist ein Muster, das sich durch fast alle Bearish-Patterns zieht: Abwärts-Bewegungen sind im Aggregat schwerer zu fangen, weil Märkte langfristig steigen und kurze Bear-Moves häufig in ungeplante V-Reversals übergehen.

Volume: der wichtigste Filter.

Ohne Volume-Analyse ist ein Pennant nichts wert. Die klassische Volume-Signatur ist eindeutig und in fast jedem akademischen Test reproduzierbar:

Typischerweise verbessert allein der Volume-Filter die Trefferquote spürbar. Pennants ohne Volume-Bestätigung performen in vielen Tests kaum besser als ein Zufalls-Einstieg.

Algorithmische Pennant-Detection.

Die Detection besteht aus drei Phasen: Flagpole-Identifikation, Dreiecks-Fit und Breakout-Trigger. Hier eine kompakte Implementierung in Python, die ich als Ausgangspunkt für Backtests verwende:

import numpy as np
import pandas as pd

def detect_bullish_pennant(df, pole_min_pct=0.20, pole_max_bars=20,
                           pennant_min_bars=5, pennant_max_bars=15,
                           vol_mult=1.5):
    """
    df: tageliche Bars mit ['high','low','close','volume']
    Liefert Liste von Trigger-Indizes mit Setup-Parametern.
    """
    triggers = []
    for end in range(pole_max_bars + pennant_max_bars + 5, len(df)):
        # 1) Flagpole: steiler Up-Move
        for pole_bars in range(5, pole_max_bars):
            pole_start = end - pennant_max_bars - pole_bars
            pole_end   = end - pennant_max_bars
            pole_low   = df['low'].iloc[pole_start]
            pole_high  = df['high'].iloc[pole_end - 1]
            pole_pct   = (pole_high - pole_low) / pole_low
            if pole_pct < pole_min_pct:
                continue

            # 2) Pennant: konvergierende Highs und Lows
            pennant = df.iloc[pole_end:end]
            if len(pennant) < pennant_min_bars:
                continue
            x = np.arange(len(pennant))
            slope_high, _ = np.polyfit(x, pennant['high'].values, 1)
            slope_low,  _ = np.polyfit(x, pennant['low'].values,  1)
            # Highs fallen, Lows steigen
            if not (slope_high < 0 and slope_low > 0):
                continue
            # Volume sinkt im Pennant
            vol_slope, _ = np.polyfit(x, pennant['volume'].values, 1)
            if vol_slope >= 0:
                continue

            # 3) Trigger: Close ueber oberer Trendlinie + Volume
            upper_line = pennant['high'].iloc[0] + slope_high * len(pennant)
            vol_med    = df['volume'].iloc[end-50:end].median()
            if df['close'].iloc[end] > upper_line \
               and df['volume'].iloc[end] > vol_mult * vol_med:
                triggers.append({
                    'idx': end,
                    'pole_pct': pole_pct,
                    'target': df['close'].iloc[end] + (pole_high - pole_low),
                    'stop':   pennant['low'].min(),
                })
                break
    return triggers

Der Code ist bewusst lesbar gehalten. Wer das produktiv verwendet, sollte die innere Schleife über die Pole-Längen vektorisieren und die Pivot-Erkennung robuster machen — Bars allein reichen nicht, wenn Lücken oder dünnes Volume ins Spiel kommen.

Konkrete Setups: Stop, Target, Filter.

Die klassische Lehrmeinung für Pennants:

Warum Pennants nur in starken Trends funktionieren.

Pennants sind keine Trend-Wende-Patterns — sie sind Trend-Fortsetzungs-Patterns. Das klingt trivial, ist aber in der Praxis die häufigste Quelle für Fehlsignale. Ein Pennant in einem schwachen Trend oder einer Seitwärts-Phase ist statistisch schwer von einem normalen Rauschen zu unterscheiden. Erst wenn das übergeordnete Regime klar ist — z. B. Index über 200-Tage-Linie, Sektor in Outperformance, keine bevorstehenden Earnings — entfaltet das Pattern seine Edge.

Strukturell macht das Sinn: das Pennant ist die kurze Atempause in einer starken Bewegung. Wenn die starke Bewegung fehlt, fehlt der ökonomische Grund für eine Fortsetzung. Was bleibt, ist ein kleines Dreieck — und kleine Dreiecke in Seitwärts-Märkten brechen statistisch in beide Richtungen mit nahezu identischer Wahrscheinlichkeit aus.

Ehrliche Bewertung.

Pennants sind eines der wenigen klassischen Patterns, die ich tatsächlich in meinem Werkzeugkasten habe — allerdings mit drei klaren Einschränkungen. Erstens: nur Bullish-Pennants in Aktien-Indizes oder Einzelaktien mit klar positivem Trend. Bearish-Pennants ignoriere ich im Aggregat — die Erfolgsquoten sind in meinen Daten nicht überzeugend genug. Zweitens: nur mit Volume-Bestätigung. Drittens: nicht als Stand-Alone-Strategie, sondern als ein Setup-Typ unter mehreren — typischerweise kombiniert mit fundamentalen Filtern oder relativer Stärke gegenüber dem Index.

Was mich am Pattern stört: die Detection ist anfällig für Parameter-Tuning. Wer die Mindest-Pole-Steilheit, die Pennant-Länge und die Volume-Multiplier unabhängig voneinander optimiert, findet auf historischen Daten fast jede gewünschte Performance — und genau diese überoptimierten Setups versagen live. Mein Vorgehen: feste Parameter, in einem Bereich, der mit der Bulkowski-Literatur kompatibel ist, und kein Re-Tuning auf einzelnen Märkten.

Wer Pennants ernst nimmt, behandelt sie als das, was sie sind: ein wahrscheinlichkeits-getriebenes Setup mit moderater Edge, das in einem geeigneten Markt-Regime und mit sauberem Risikomanagement einen positiven Erwartungswert hat. Nicht mehr, nicht weniger.

Stand: Mai 2026, überarbeitet Oktober 2026. Angaben zu Produkten, Preisen, Gesetzen und Fristen können sich seitdem geändert haben; maßgeblich sind die aktuellen Angaben der Anbieter und Behörden.

Sie wollen Pennants als systematisches Setup in Ihr Trading-System integrieren? Unverbindlich anfragen — wir bauen die Detection und das Filter-Set, das zu Ihrem Markt-Universum passt. Mehr zu meinem Angebot: Trading-Systeme entwickeln lassen.