Der Aktienkurs bewegt sich in Sekundenbruchteilen – doch hinter jeder Preisbewegung steht ein komplexes Zusammenspiel aus Limit-Orders und Market-Orders, das Ökonomen als „Preisbildungsmechanismus" bezeichnen. In diesem Tutorial analysieren wir die technischen Grundlagen der Preisbildung und zeigen, wie Sie diese Mechanismen mit der HolySheep AI API programmatisch nutzen können.
Das Szenario: Warum Ihre Order zum falschen Preis ausgeführt wird
Stellen Sie sich folgendes Szenario vor: Sie analysieren Aktienkurse und platzieren eine Market-Order bei $142,50. Nach der Ausführung sehen Sie jedoch einen Durchschnittspreis von $142,78 – ein Slippages von 28 Cent. Oder worse: Ihre Limit-Order bei $141,00 wird nie ausgeführt, obwohl der Kurs laut Ihrer Oberfläche „darunter lag".
Dieses Phänomen erklärt sich durch die Limit Order Book Dynamics, die wir in diesem Artikel detailliert durchleuchten werden.
Was ist ein Orderbuch?
Ein Limit Order Book (LOB) ist ein elektronisches Register aller ausstehenden Kauf- (Bid) und Verkaufsorders (Ask) für ein bestimmtes Wertpapier, sortiert nach Preis und Zeitstempel.
// Orderbuch-Beispiel für eine Aktie
// Bid-Seite (Kaufdruck) Ask-Seite (Verkaufsdruck)
┌─────────────────────────┐ ┌─────────────────────────────────────┐
│ Price │ Volumen │ Zeit│ │ Preis │ Volumen │ Zeit │
├─────────────────────────┤ ├─────────────────────────────────────┤
│ $142.50 │ 1.200 │ 09:32│ │ $142.55 │ 800 │ 09:33 │
│ $142.48 │ 2.500 │ 09:31│ │ $142.58 │ 1.500 │ 09:32 │
│ $142.45 │ 3.800 │ 09:30│ │ $142.60 │ 2.200 │ 09:31 │
│ $142.40 │ 5.000 │ 09:28│ │ $142.65 │ 900 │ 09:30 │
└─────────────────────────┘ └─────────────────────────────────────┘
▲ Spread: $0.05 (5 Cents) ▲
Der Bid-Ask-Spread von 5 Cents repräsentiert die Liquiditätskosten und spiegelt das Verhältnis zwischen Käufern und Verkäufern wider.
Preisbildungsmechanismen verstehen
2.1 Market Orders: Sofortige Liquidität, unsicherer Preis
Eine Market Order wird sofort zum nächsten verfügbaren Preis ausgeführt. Die Logik:
# Preisberechnung für Market Orders
Entnommen aus HolySheep AI Trading API
def calculate_market_order_cost(order_book, side, quantity):
"""
Berechnet die Gesamtkosten einer Market Order
unter Berücksichtigung des Orderbuchs.
"""
if side == "buy":
# Kaufe vom Ask (billigstes Angebot nach oben)
levels = order_book["asks"]
else:
# Verkaufe an den Bid (höchstes Gebot nach unten)
levels = order_book["bids"]
remaining_qty = quantity
total_cost = 0.0
fill_prices = []
for price, volume, timestamp in levels:
if remaining_qty <= 0:
break
# Wie viel können wir auf diesem Level kaufen?
fill_qty = min(remaining_qty, volume)
total_cost += fill_qty * price
fill_prices.append((price, fill_qty))
remaining_qty -= fill_qty
avg_price = total_cost / (quantity - remaining_qty)
slippage = abs(avg_price - levels[0][0]) if levels else 0
return {
"average_price": avg_price,
"total_cost": total_cost,
"slippage": slippage,
"fills": fill_prices,
"unfilled_qty": remaining_qty
}
Beispiel aus der Praxis
order_book = {
"asks": [
(142.55, 800, "09:33"),
(142.58, 1500, "09:32"),
(142.60, 2200, "09:31"),
(142.65, 900, "09:30"),
]
}
result = calculate_market_order_cost(order_book, "buy", 3000)
print(f"Durchschnittspreis: ${result['average_price']:.2f}")
print(f"Slippage: ${result['slippage']:.2f}")
print(f"Nicht ausgefüllt: {result['unfilled_qty']} Aktien")
2.2 Limit Orders: Preisgarantie, Ausführungsrisiko
Limit Orders garantieren einen Maximalpreis (Kauf) oder Minimalpreis (Verkauf), laufen aber Gefahr, nicht ausgeführt zu werden.
# Limit Order Logik mit HolySheep API Integration
import httpx
import json
from datetime import datetime
class LimitOrderManager:
"""
Verwaltet Limit Orders unter Berücksichtigung
der Orderbuch-Tiefe und Zeitpriorität.
"""
def __init__(self, api_key: str):
self.base_url = "https://api.holysheep.ai/v1"
self.headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
def check_limit_order_execution(self, order_book, limit_price, side, quantity):
"""
Prüft, ob eine Limit Order ausgeführt würde.
"""
if side == "buy":
# Für Kauflimits: Limit muss >= bester Ask sein
best_ask = order_book["asks"][0][0] if order_book["asks"] else float('inf')
if limit_price >= best_ask:
# Order ist im Geld (in-the-money)
available_volume = sum(
vol for price, vol, _ in order_book["asks"]
if price <= limit_price
)
executed_qty = min(quantity, available_volume)
execution_price