Marktmechanik
AktienOrderflow-LaborMarktstruktur

Volume Profile: POC-Migration ist ein Kontextfilter, kein Signal

Der Point of Control wird als Zielzone gehandelt. In meinen Daten ist er das nicht. Was er leistet: Er beschreibt, ob eine Bewegung Akzeptanz gefunden hat - und das ist eine andere und nützlichere Aussage.

Jonas BrantnerOrderflow & Index-Futures Intraday
3 Min Lesezeit

Der Point of Control (POC) wird gern als Zielzone gehandelt, zu der der Preis zurückkehrt. In meinen Daten zum FDAX, dem DAX-Future, passiert das kaum häufiger als bei einem Zufallspfad; brauchbar ist erst die Wanderung des POC über mehrere Tage, und zwar als Kontextfilter. Volume Profile hat mit der Auktionsmarkttheorie eine saubere theoretische Grundlage, wird aber oft schlecht verwendet, weil aus einer Beschreibung ein Signal gemacht wird.

Was das Profil tatsächlich beschreibt

Ein Volume Profile zeigt, wie viel Volumen auf welchem Preisniveau gehandelt wurde. Der Point of Control ist das Niveau mit dem höchsten Volumen, die Value Area umfasst die Niveaus, die zusammen siebzig Prozent des Volumens ausmachen.

Die Interpretation ist eine Aussage über Konsens: Wo viel Volumen gehandelt wurde, haben sich Käufer und Verkäufer über den Preis geeinigt - der Preis ist „akzeptiert“. Wo wenig gehandelt wurde, ist der Preis durchgelaufen, ohne dass sich jemand geeinigt hätte - „abgelehnt“.

Das ist eine Beschreibung der Vergangenheit. Sie enthält keine Aussage über die Zukunft. Die verbreitete Regel „der Preis kehrt zum POC zurück“ ist eine zusätzliche, unbelegte Behauptung.

Die Behauptung, getestet

Ich habe für 1.740 FDAX-Handelstage seit 2018 geprüft: Wenn der Schlusskurs außerhalb der Value Area des Vortages liegt, wie oft berührt der Preis am Folgetag den Vortages-POC?

Rückkehr zum Vortages-POC nach Schluss außerhalb der Value Area, FDAX 2018-2025. Beispielwerte.
AusgangslageFällePOC berührt (Folgetag)Erwartung bei Zufall
Schluss über Value Area31261 %58 %
Schluss unter Value Area29864 %59 %
Schluss innerhalb1.13079 %77 %

Die Vergleichsspalte ist der Punkt. Ich habe sie über eine Monte-Carlo-Simulation mit einem Random Walk gleicher Tagesvolatilität erzeugt. Der Unterschied zwischen beobachteter und zufälliger Häufigkeit liegt bei drei bis fünf Prozentpunkten und ist bei diesen Stichprobengrößen nicht signifikant von null unterscheidbar.

Anders gesagt: Der Preis kehrt zum POC zurück, weil Preise sich in einer volatilen Zeitreihe häufig zu ihrem kürzlichen Bereich zurückbewegen. Der POC trägt zu dieser Beobachtung praktisch nichts bei.

4.843.151.45-0.25-1.94KW 18KW 20KW 22KW 24KW 26KW 28POC-Migration in ATR-Einheiten pro Woche
Wöchentliche Verschiebung des Point of Control, normiert auf die ATR. Synthetische Beispieldaten.

Was doch etwas bringt: die Wanderung

Die Größe, die in meinen Daten Trennschärfe hat, ist nicht die Lage des POC, sondern seine Veränderung über mehrere Tage. Ich rechne sie normiert auf die ATR (Average True Range, die durchschnittliche Tagesspanne), damit sie über Volatilitätsregime vergleichbar bleibt.

Mt = ( POCt - POCt-5 ) / ATR20 M > 1,5 → Akzeptanzverschiebung nach oben, das Volumen folgt dem Preis
|M| < 0,5 → Preisbewegung ohne Volumenbestätigung
Vorzeichenwechsel bei hoher |M| → häufig Ende einer Bewegungsphase
python · profil.py
import numpy as np, pandas as pd

def poc(preise, volumen, tick=1.0):
    '''Point of Control: Preisniveau mit dem hoechsten gehandelten Volumen.'''
    bins = np.floor(np.asarray(preise) / tick) * tick
    agg = pd.Series(volumen).groupby(bins).sum()
    return float(agg.idxmax())

def value_area(preise, volumen, tick=1.0, anteil=0.70):
    '''Symmetrische Ausdehnung vom POC, bis der Volumenanteil erreicht ist.'''
    bins = np.floor(np.asarray(preise) / tick) * tick
    agg = pd.Series(volumen).groupby(bins).sum().sort_index()
    ziel, p = agg.sum() * anteil, agg.idxmax()
    lo = hi = agg.index.get_loc(p)
    kum = agg.iloc[lo]
    while kum < ziel and (lo > 0 or hi < len(agg) - 1):
        oben = agg.iloc[hi + 1] if hi < len(agg) - 1 else -1
        unten = agg.iloc[lo - 1] if lo > 0 else -1
        if oben >= unten:
            hi += 1; kum += oben
        else:
            lo -= 1; kum += unten
    return float(agg.index[lo]), float(agg.index[hi])

def migration(poc_reihe, atr, n=5):
    return (poc_reihe - poc_reihe.shift(n)) / atr

Wie ich es einsetze

Als Kontextvariable für die Absorptionsanalyse. Ein Absorptionsereignis am Tagestief bei M > 1,5 - also bei einer nach oben wandernden Akzeptanzzone - bewerte ich anders als dasselbe Ereignis bei M nahe null. Im ersten Fall steht es in einem bestätigten Bewegungskontext, im zweiten in einem strukturlosen Umfeld.

Das ist eine Gewichtungsentscheidung, kein Ein- oder Ausstieg. In meinem Journal führe ich seit 2021 beide Varianten getrennt, und die Differenz im Erwartungswert liegt bei etwa 1,8 Ticks je Ereignis. Das ist wenig, aber es ist stabil über die Jahre - und Stabilität ist mir bei so kleinen Effekten lieber als Größe.

Zum Umgang mit kleinen Effekten

1,8 Ticks Differenz klingt nach nichts. Bei rund siebzig Ereignissen im Jahr sind es 126 Ticks - bei einem Tickwert von 12,50 Euro also etwa 1.575 Euro pro Kontrakt und Jahr. Das rechtfertigt keinen Vollzeitaufwand, aber es rechtfertigt, die Variable zu erfassen.

Risikohinweis

Dieser Beitrag beschreibt eine Analysemethode für Index-Futures und ist keine Handelsempfehlung. Gehebelter Intraday-Handel ist für die überwiegende Mehrheit der Marktteilnehmer verlustbringend. Alle Zahlen sind Beispielwerte aus eigenen Auswertungen.

  • Volume Profile
  • POC
  • Value Area
  • Akzeptanz
  • FDAX
Orderflow & Index-Futures IntradayJonas Brantner

Jonas Brantner hat zwölf Jahre Motoren diagnostiziert, bevor er 2016 anfing, Orderbücher zu diagnostizieren. Die Analogie ist ihm wichtig: Ein Fehlerbild entsteht nicht aus einem Messwert, sondern aus dem Zusammenspiel mehrerer - und wer nur den Preis anschaut, schaut auf die Drehzahl und ignoriert den Druck.

Profil ansehen →
Newsletter

Das Briefing am Freitag

Die Beiträge der Woche, eine offene Methodenfrage und ein Verfahren, das wir getestet und verworfen haben. Keine Signale, keine Kursziele.

Demo-Formular ohne Datenverarbeitung