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.
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?
| Ausgangslage | Fälle | POC berührt (Folgetag) | Erwartung bei Zufall |
|---|---|---|---|
| Schluss über Value Area | 312 | 61 % | 58 % |
| Schluss unter Value Area | 298 | 64 % | 59 % |
| Schluss innerhalb | 1.130 | 79 % | 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.
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.
|M| < 0,5 → Preisbewegung ohne Volumenbestätigung
Vorzeichenwechsel bei hoher |M| → häufig Ende einer Bewegungsphase
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.
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.
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.