Satellitenbilder & Öl-Lagerung als Edge.
Jeden Mittwoch um 16:30 deutscher Zeit veröffentlicht die US Energy Information Administration (EIA) ihre wöchentlichen Lagerbestände für Rohöl. Der Markt reagiert oft mit drei- bis fünfprozentigen Bewegungen im WTI-Kontrakt innerhalb weniger Minuten. Wer schon vorher eine belastbare Schätzung hat — etwa durch die Auswertung von Satellitenbildern der größten Lagerterminals — handelt mit einer anderen Information als der Rest des Marktes. Genau das tun heute mehrere Hedgefonds und spezialisierte Datenanbieter.
Das Grundprinzip: Schwimmende Dächer als Messlatte.
Große Rohöltanks haben sogenannte floating roofs — Dächer, die direkt auf dem Öl schwimmen und mit dem Füllstand steigen und sinken. Aus einer Satellitenaufnahme von oben lassen sich zwei Größen ablesen: der Durchmesser des Tanks (statisch, einmal kalibriert) und der Schatten, den der Tank wirft. Aus Sonnenstand, Aufnahmewinkel und Schattenlänge ergibt sich die Tiefe, in die das Dach in den Tank gesunken ist — und damit der freie Raum oberhalb des Öls. Subtrahiert man diesen Leerraum vom Gesamtvolumen, hat man eine Füllstand-Schätzung in Barrels.
Das größte sichtbare Lagerzentrum ist Cushing, Oklahoma — der physische Lieferort für den WTI-Future. Etwa 90 Tanks, davon rund 70 mit Floating-Roof, sammeln dort die Bestände, die in den offiziellen Cushing-Stocks-Bericht der EIA einfließen. Wer Cushing aus dem Orbit zählt, hat einen Vorlauf von 24 bis 48 Stunden gegenüber dem offiziellen Report.
Datenquellen und Anbieter.
Sie können das selbst tun — die Rohbilder sind kommerziell verfügbar — oder Sie kaufen den fertigen Index ein. Beide Wege haben ihren Platz, je nachdem ob Sie Forschung betreiben oder eine Live-Strategie laufen lassen.
- Sentinel-2 (ESA, kostenlos): 10 m Auflösung, 5-Tage-Revisit. Zu grob für einzelne Tanks, aber gut für aggregierte Hafenflächen.
- Planet Labs (PlanetScope): 3 m Auflösung, tägliche Revisits, kommerziell. Kostet je nach Lizenz vier- bis fünfstellig pro Jahr.
- Maxar / WorldView: 30 cm Auflösung, On-Demand. Sehr teuer pro Bild, aber für Spot-Analysen unschlagbar.
- Capella, ICEYE: SAR-Radar — funktioniert durch Wolken und nachts. Wichtig für Standorte mit viel Bewölkung (Nordsee-Terminals).
- Ursa Space Systems, Kayrros, Orbital Insight: liefern den fertigen Lagerbestands-Index als Datenfeed, oft mit API-Zugang.
Für einen Hobby-Quant lohnt sich der Eigenbau ab dem Punkt, an dem die EIA-Reaktion eine planbare Strategie wird. Für ein Family Office oder einen institutionellen Mandanten empfehle ich fast immer den Datenfeed-Einkauf — die Kosten sind im Verhältnis zum Portfolio gering, die Datenqualität deutlich besser kontrolliert.
Computer Vision: Tanks segmentieren.
Wer den Eigenbau wählt, steht vor einer klassischen Computer-Vision-Pipeline. Die Schritte sind: Bild herunterladen, Tank-Position lokalisieren, Schattenlänge messen, Sonnenwinkel zur Aufnahmezeit berechnen, Füllstand schätzen, mit historischen Floating-Roof-Bewegungen kalibrieren.
import rasterio
import numpy as np
from skimage import measure, filters
from datetime import datetime
import ephem # Sonnenstandsberechnung
def detect_tanks(image_path, tank_centers):
"""
Lokalisiert Tanks anhand bekannter Koordinaten und
extrahiert Schattenlängen für die Füllstandsschätzung.
"""
with rasterio.open(image_path) as src:
img = src.read(1)
transform = src.transform
timestamp = datetime.fromisoformat(src.tags()['ACQUISITION_TIME'])
results = []
for tank_id, (lon, lat, radius_m) in tank_centers.items():
# Pixel-Koordinaten aus geografischen Koordinaten
col, row = ~transform * (lon, lat)
col, row = int(col), int(row)
radius_px = int(radius_m / src.res[0])
# Region of Interest extrahieren
roi = img[row-radius_px*2:row+radius_px*2,
col-radius_px*2:col+radius_px*2]
# Schatten via Otsu-Schwellwert isolieren
thresh = filters.threshold_otsu(roi)
shadow_mask = roi < thresh * 0.6
# Längste zusammenhängende Schattenregion messen
labels = measure.label(shadow_mask)
regions = measure.regionprops(labels)
if not regions:
continue
largest = max(regions, key=lambda r: r.area)
shadow_length_m = largest.major_axis_length * src.res[0]
# Sonnenhöhe an Ort und Zeit berechnen
sun_altitude = compute_sun_altitude(lat, lon, timestamp)
roof_depth_m = shadow_length_m * np.tan(np.radians(sun_altitude))
results.append({
'tank_id': tank_id,
'roof_depth_m': roof_depth_m,
'timestamp': timestamp,
})
return results
Die heikelste Stelle ist die Kalibrierung. Ein Tank mit 80 m Durchmesser und 20 m Höhe fasst rund 480.000 Barrel. Eine Schattenmessung von 14 m versus 15 m macht am Ende einen Unterschied von 25.000 Barrels — bei 70 Tanks summieren sich Messfehler schnell zu zweistelligen Prozentwerten. Sie brauchen mindestens zwei Jahre Backtest-Daten, in denen Sie Ihre Schätzung gegen die EIA-Werte kalibrieren, bevor Sie damit handeln.
Trading-Setup um den EIA-Report.
Nehmen wir an, Sie haben eine kalibrierte Schätzung am Mittwochmorgen, 8:00 Uhr deutscher Zeit, also acht Stunden vor dem EIA-Release. Ihre Strategie liest die Konsensschätzung der Analysten (Bloomberg-Survey, Reuters-Poll) und vergleicht sie mit Ihrer eigenen Zahl.
import pandas as pd
from datetime import datetime, timedelta
def build_eia_signal(my_estimate, consensus, prior_residuals):
"""
Vergleicht eigene Schätzung mit Konsens.
Großer Unterschied + historisch zuverlässige Eigenmessung = Signal.
"""
delta = my_estimate - consensus # in Mio. Barrels
sigma = prior_residuals.std()
# z-Score: Wie ungewöhnlich ist die Abweichung?
z = delta / sigma
if z > 1.5:
# Wir sehen mehr Lager als Konsens -> bearish WTI
return {'side': 'short', 'strength': min(abs(z) / 3, 1.0)}
elif z < -1.5:
# Wir sehen weniger Lager -> bullish WTI
return {'side': 'long', 'strength': min(abs(z) / 3, 1.0)}
return {'side': 'flat', 'strength': 0.0}
def position_size(signal, account_equity, vol_target=0.15):
notional = account_equity * vol_target * signal['strength']
return notional if signal['side'] == 'long' else -notional
Die Position wird vor dem Release aufgebaut, das Risiko ist klar definiert (Stop-Loss bei z. B. zwei ATR), und die Strategie wird nach der Release-Bewegung geschlossen — innerhalb von 30 bis 60 Minuten nach 16:30 Uhr. Halten über Nacht ist nicht der Punkt der Strategie: Sie wollen die Informations-Asymmetrie um die Zahl monetarisieren, nicht den langfristigen Öl-Trend.
Was die Strategie kaputtmacht.
Drei Effekte habe ich in der Praxis immer wieder gesehen, die diese scheinbar elegante Idee zerstören. Erstens: Sie sind nie der einzige mit Satellitenbildern. Goldman Sachs, Citadel, Trafigura und ein Dutzend spezialisierter Fonds kaufen dieselben Kayrros-Feeds. Wenn Ihre Schätzung +5 Mio. Barrel zeigt, ist diese Information längst im Preis. Was bleibt, ist der Rest-Edge, der entsteht, wenn Sie eine bessere Pipeline haben — etwa weil Sie globale Lager (Saldanha Bay, Rotterdam, Singapur, ARA) zusammenführen statt nur Cushing.
Zweitens: Der Markt reagiert nicht linear auf Überraschungen. Bei +3 Mio. Barrel über Konsens fällt WTI vielleicht um 2 %, bei +6 Mio. fällt er um 8 % — und bei +10 Mio. plötzlich nur noch um 4 %, weil der Markt eine außerordentliche Lagerung als Sondereffekt (Hurrikan, Refinerie-Wartung) interpretiert. Ihre lineare Regression versagt an den Extremen.
Drittens: SPR-Releases (Strategic Petroleum Reserve), OPEC-Entscheidungen und geopolitische Ereignisse überlagern die Lagerwirkung. Eine Strategie ohne Filter für Sondereffekte handelt Sie in Wochen wie März 2022 systematisch falsch. Sie brauchen einen Calendar Overlay, der Strategie-Signale unterdrückt, wenn andere Faktoren dominieren.
Realistische Erwartungen.
Eine ehrliche Einschätzung: Diese Strategie ist kein Geld-Druck-Mechanismus. Eine gut umgesetzte Variante mit eigener Datenpipeline und sauberer Risikokontrolle liefert im Backtest typischerweise einen Sharpe zwischen 0,8 und 1,3 — nach Kosten. Sie funktioniert in ungefähr 35 bis 40 Wochen pro Jahr; in den übrigen ist das Signal zu schwach oder durch externe Effekte überlagert. Der Edge ist real, aber schmal.
Für institutionelle Mandanten lohnt sich der Aufbau, wenn das Portfolio bereits in Energie-Commodities aktiv ist und der Lagerstand-Feed als Filter für andere Strategien dient (Trend, Mean-Reversion in WTI-Futures, Crack-Spread-Trades). Als Solo-Strategie für Retail-Trader ist das Verhältnis von Aufwand zu Edge häufig nicht attraktiv — die Kayrros-Lizenz allein kostet im fünfstelligen Bereich pro Jahr.
Einstieg ohne Datenfeed: Sentinel-2 als Schule.
Wer das Thema lernen will, ohne fünfstellige Lizenzkosten zu zahlen, kann mit Sentinel-2-Aufnahmen über die Copernicus Open Access Hub anfangen. Die Auflösung reicht nicht für einzelne Tanks, aber für die größeren Cushing-Cluster lassen sich Helligkeits- und Schattenproxys aggregieren. Es ist kein Tradingsignal, das ich live einsetzen würde — aber eine ausgezeichnete Übung, um die gesamte Pipeline zu verstehen: Datenakquise, Georeferenzierung, Tank-Detektion, Kalibrierung gegen EIA. Wenn diese Pipeline steht und Sie Ergebnisse erzielen, die mit ±10 % Genauigkeit gegen die offiziellen Zahlen korrelieren, ist der Schritt zu Planet- oder Maxar-Daten eher ein finanzieller als ein technischer.
Für tiefer interessierte Leser ist das Kayrros-Whitepaper zur Cushing-Methodik ein guter Startpunkt, ebenso der akademische Aufsatz von Cattaneo et al. zur Lagerstands-Schätzung aus optischen Satellitenbildern. Beide zeigen den Stand der Technik — und die offenen Probleme.
Sie überlegen, alternative Daten in Ihr Portfolio zu integrieren? Erstgespräch buchen — wir schauen, welche Datenquellen für Ihre Strategie realistisch und finanziell sinnvoll sind.