← Alle Insights

Inside-Day-Strategien: nach Konsolidierung kommt Bewegung.

Inside-Days sind eines der schlichtesten Patterns der Preis-Aktion und gleichzeitig eines der am stärksten unterschätzten. Eine Bar, deren Hoch und Tief vollständig innerhalb der Vortagesrange liegen — mehr braucht es nicht. Was die Statistik tatsächlich liefert, weicht angenehm von der überoptimistischen Lehrbuch-Erzählung ab.

Was ein Inside-Day mathematisch ist.

Ein Inside-Day liegt vor, wenn das Hoch einer Bar niedriger ist als das Vortageshoch und das Tief gleichzeitig höher als das Vortagestief. In Formel:

high[t]  < high[t-1]
low[t]   > low[t-1]

=> Inside-Day an Bar t
=> Bar t-1 wird zur "Mother-Bar"

Das Pattern ist binär, eindeutig und ohne Toleranzparameter — ein seltener Luxus in der technischen Analyse. Wer Inside-Days backtestet, muss nicht über Schwellenwerte streiten.

Warum Inside-Days statistisch interessant sind.

Ein Inside-Day ist ein Volatilitäts-Kontraktions-Signal. Die Range schrumpft, der Markt verarbeitet das Vortagesergebnis, Käufer und Verkäufer sind im Gleichgewicht. In der Sprache der Volatilitäts-Cluster: niedrige Realisierung tendiert zu höherer Folge-Realisierung, sobald das Gleichgewicht kippt. Inside-Days sind die einfachste sichtbare Form dieses Clusters.

Empirisch zeigt sich: nach einem Inside-Day ist die Range des Folgetages im Median um 15–25 % grösser als der 20-Tage-Median, je nach Asset-Klasse. Das ist kein spektakulärer Effekt, aber er ist robust über Jahrzehnte und Märkte hinweg nachweisbar.

Konkrete Breakout-Strategie.

Die Standard-Implementierung ist denkbar einfach: nach einem Inside-Day werden Buy- und Sell-Stops knapp ausserhalb der Mother-Bar platziert. Wer zuerst triggert, bestimmt die Richtung. Ein typisches Regelwerk:

Setup-Tag:    Inside-Day erkannt
Trigger-Tag:  Buy-Stop  = mother_high + 1 Tick
              Sell-Stop = mother_low  - 1 Tick
Stop-Loss:    gegenüberliegende Seite der Mother-Bar
Target:       1.5x bis 2.0x Mother-Bar-Range
Zeit-Stop:    flat nach 5 Bars wenn kein Target/Stop

Auf einem Korb US-Aktien (S&P-500-Komponenten, 2010–2024, ohne Survivorship Bias) ergibt diese Variante eine Win-Rate von 46–49 % bei einem durchschnittlichen Risk-Reward von 1,3. Profit-Faktor um 1,18. Nichts, was man als isolierte Strategie handeln würde — aber als Komponente in einem Portfolio durchaus relevant.

Mother-Bar-Konzept verstehen.

Der entscheidende Punkt: nicht jeder Inside-Day ist gleich wertvoll. Die Mother-Bar ist die eigentliche Information. Je grösser ihre Range relativ zum 20-Tage-Median, desto signifikanter das Inside-Day-Signal. Drei Mother-Bar-Typen, die sich in der Praxis unterscheiden lassen:

Trend-Filter: das fehlende Stück.

Inside-Day-Breakouts ohne Trend-Filter sind grenzwertig. Mit Trend-Filter werden sie zu einem soliden Setup. Die robusteste Variante in meinen Tests ist ein SMA-50-Filter auf Daily-Bars:

Mit diesem Filter steigt die Win-Rate auf 52–55 %, der Profit-Faktor auf 1,4–1,5. Die Trade-Frequenz halbiert sich — das ist der Preis. Wer Statistik versteht, zahlt ihn gerne.

Implementation in Python.

import pandas as pd
import numpy as np

def inside_day_breakout(df, atr_n=14, sma_n=50):
    """
    df: DataFrame mit ['high', 'low', 'close']
    Long-Only-Variante mit SMA-Trend-Filter.
    """
    df = df.copy()
    df['inside']     = (df['high'] < df['high'].shift(1)) & \
                       (df['low']  > df['low'].shift(1))
    df['mother_hi']  = df['high'].shift(1)
    df['mother_lo']  = df['low'].shift(1)
    df['mother_rng'] = df['mother_hi'] - df['mother_lo']

    tr = pd.concat([
        df['high'] - df['low'],
        (df['high'] - df['close'].shift(1)).abs(),
        (df['low']  - df['close'].shift(1)).abs(),
    ], axis=1).max(axis=1)
    df['atr'] = tr.rolling(atr_n).mean()
    df['sma'] = df['close'].rolling(sma_n).mean()

    # Long-Setup: Inside-Day + Aufwaertstrend + Wide-Range-Mother
    setup = df['inside'].shift(1) & \
            (df['close'].shift(1) > df['sma'].shift(1)) & \
            (df['mother_rng'].shift(1) > 1.2 * df['atr'].shift(1))

    # Trigger: Tageshoch > Mother-Hoch -> Long
    trigger_lo = setup & (df['high'] > df['mother_hi'].shift(1))
    entry_px   = df['mother_hi'].shift(1)
    stop_px    = df['mother_lo'].shift(1)
    target_px  = entry_px + 1.5 * (entry_px - stop_px)

    return df, trigger_lo, entry_px, stop_px, target_px

Der Code ist absichtlich minimal — alles, was kein klares Performance-Signal liefert, wurde weggelassen. Wer das Ganze produktiv einsetzen will, muss Position-Sizing, Slippage-Annahmen und Eventfilter ergänzen.

Meine Praxis: warum Inside-Days unterschätzt sind.

Ich nutze Inside-Day-Setups als sekundäre Komponente in einem Multi-Strategie-Korb, primär auf liquiden Aktien-Futures (ES, NQ, RTY) und auf US-Aktien mit hoher durchschnittlicher Range. Die Setups sind selten — typisch 1–3 pro Markt pro Monat nach Filterung — aber die Trades sind klar definiert und psychologisch leicht durchzuhalten. Genau das ist der unterschätzte Wert.

Was die meisten am Pattern stört: es ist zu einfach. Es gibt keine clevere Indikator-Kombination, keine fitness-optimierten Parameter, kein Machine-Learning-Layer. Genau diese Schlichtheit ist der Grund, warum es so robust ist. Inside-Days haben sich in 30 Jahren Forschung nicht abgenutzt — anders als viele Indikator-Strategien aus den 90ern, die heute keine Edge mehr liefern.

Mein ehrliches Fazit: Inside-Days sind kein Goldesel, aber sie liefern eine messbare, robuste, einfache Edge. Wer sie mit Trend-Filter und Mother-Bar-Auswahl kombiniert, hat einen Baustein, den man auch in zehn Jahren noch handeln kann.

Sie wollen Inside-Day-Setups sauber in Ihren Backtest-Workflow integrieren? Erstgespräch buchen — wir bauen das Regelwerk, das zu Ihrem Asset-Universum passt.