Trading-Automatisierung: Programmiere deinen Vorteil, nimm die Emotion raus
3 Uhr nachts. Dein Sweep-Setup triggert. Du schläfst.
Dein Bot platziert den Trade, setzt den Stopp und zielt auf 3R. Und du träumst dabei.
6 Uhr morgens. Du wachst auf. Position geschlossen. +2,8R Gewinn. Der Kaffee schmeckt besser.
🎯 Das Versprechen der Automatisierung
Kein FOMO. Keine Angst. Kein Zögern. Nur Code, der deine Regeln perfekt ausführt, jedes einzelne Mal.
Das ist keine Science-Fiction. So handeln Profis im Jahr 2024.
📉 FALLSTUDIE: Michaels Margin Call über 19.000 $
Aufbau: Mike Sullivan (zusammengesetztes Beispiel), Python-Entwickler, Konto über 200.000 $. Bot über die Alpaca-API (kaufe SPY bei RSI<30). Backtest 2020-2023: 67 % Trefferquote, +140.000 $. Ausgerollt mit NULL Sicherheitskontrollen.
Das Desaster (ein Morgen mit CPI-Schock): Der Bot lief 8 Wochen (+14.000 $, 71 % Trefferquote). SPY eröffnete mit einem Gap von -2,8 % bei 510 $. Der Bot sah RSI 22 und kaufte weiter: 200.000 $ zu 510 $, 505 $, 495 $, 490 $ = Position über 800.000 $ (4-facher Hebel, Durchschnittskurs 499,87 $). Um 15 Uhr: SPY bei 488 $ — 7 % unter dem Vortagesschluss — die Position war 781.000 $ wert, 19.005 $ im Minus, und der Nachschussaufruf kam. Mike war bei der Arbeit und konnte nichts tun.
Erholung: Konto nach dem Knall: 195.000 $. Neu gebaut mit 5 Kontrollen: maximal 50.000 $ Position, VIX>25 = deaktiviert, maximal 3 Trades pro Tag, Alarm bei -5 % vom Höchststand, komplette Abschaltung bei -10 %. Ergebnis über die nächsten 8 Monate: 195.000 $ → 218.000 $ (+12 %), und keine Kontrolle hat je versagt.
Lektion: Programmiere Sicherheitskontrollen ZUERST: (1) Positionslimits, (2) Volatilitätsfilter, (3) Abschaltung bei maximalem drawdown, (4) Not-Aus. Backtests lügen — sie lassen schwarze Schwäne aus.
Quiz: Michaels Bot kassierte an EINEM VORMITTAG einen Nachschussaufruf. Woran lag das?
⚡ Schnelle Erfolge für morgen (zum Aufklappen klicken)
- Zuerst im Demo-Modus handeln — Setze nie echtes Kapital hinter ungetestete Automatisierung. Erst Demo-Modus, und laut Teil 2 heißt das Monate, nicht Wochen.
- Positionslimits ergänzen — Codiere eine maximale Positionsgröße fest: 2 % Kontorisiko pro Trade UND eine Obergrenze für den Nominalwert, denn 2 % Risiko sind nicht 2 % Exposure.
- Einen Not-Aus bauen — Baue eine manuelle Abschaltung, die mit einem Klick bzw. Befehl jede Bot-Aktivität stoppt.
Das menschliche Problem im Trading
Du hast 6 Monate an einer Trading-Strategie gefeilt. Sie im backtest geprüft. Vorwärts getestet. Trefferquote: 62 %. Durchschnittliches R: 2,3. Der Vorteil ist bestätigt.
Du handelst sie live. Das Ergebnis?
| Monat | Strategie-Performance (bei perfekter Befolgung) | Deine tatsächliche Performance | Das Problem |
|---|---|---|---|
| Monat 1 | +4.200 $ (62 % Trefferquote) | +1.800 $ (48 % Trefferquote) | 3 Setups ausgelassen (Angst nach einer Verluststrecke) |
| Monat 2 | +3.900 $ (60 % Trefferquote) | -2.100 $ (38 % Trefferquote) | Rache-Trades genommen, Größe nach Verlusten verdoppelt |
| Monat 3 | +5.100 $ (65 % Trefferquote) | +900 $ (52 % Trefferquote) | Bei Ausbruchs-Setups gezögert, 40 % der Signale verpasst |
Die brutale Wahrheit: Du hast eine profitable Strategie. Aber DU bist das schwache Glied.
Die drei Ausführungskiller
1. Zögern (Auslassen aus Angst)
- Du hast gerade 2 Verluste kassiert. Setup Nr. 3 erscheint. Du denkst: «Vielleicht warte ich auf Bestätigung …»
- Du wartest. Der Kurs läuft ohne dich. Es war ein 4R-Gewinner. Du hast ihn aus Angst verpasst.
- Auswirkung: Gewinner auszulassen zerstört den positiven Erwartungswert
2. Overtrading (FOMO-Einstiege)
- Der Markt zieht an. Deine Strategie sagt «kein Setup». Aber du hältst es nicht aus zuzuschauen. Du steigst trotzdem ein.
- Kein Stopp gesetzt. Kein Plan. Nur Hoffnung. Es dreht. Du verlierst.
- Auswirkung: Zufällige Einstiege verwässern deinen Vorteil mit Rauschen
3. Uneinheitliche Positionsgrößen
- Setup A: Du riskierst 1 % (vorsichtig nach dem letzten Verlust)
- Setup B: Du riskierst 5 % (selbstbewusst, «ich spüre es»)
- Setup A gewinnt 3R. Du machst 3 %. Setup B verliert 1R. Du verlierst 5 %. Netto: -2 %.
- Auswirkung: Eine einzige falsche Größenentscheidung frisst 3 gute Trades auf
💡 Was die Automatisierung löst
Ein automatisierter Trading-Bot führt mit perfekter Disziplin:
- Kein Zögern: Setup erscheint → Trade wird ausgeführt (auch nach 5 Verlusten in Folge)
- Kein FOMO: Setup erscheint nicht → der Bot wartet (egal wie langweilig der Markt gerade ist)
- Perfekte Größe: Jeder Trade riskiert exakt 2 % (oder was immer du programmiert hast), jedes einzelne Mal
Ergebnis: Deine backtest-Performance wird zu deiner Live-Performance. Der Vorteil, den du getestet hast, ist der Vorteil, den du bekommst.
Das Skalierungsproblem (Grenzen des manuellen Handels)
Manueller Handel deckelt dein Potenzial:
| Einschränkung | Manuelles Limit | Automatisiertes Potenzial |
|---|---|---|
| Märkte | 1-3 Symbole beobachten (Grenze der menschlichen Aufmerksamkeit) | Über 50 Symbole gleichzeitig überwachen |
| Zeitrahmen | Höchstens 1-2 Zeitrahmen verfolgen | 5m, 15m, 1h und Tageschart gleichzeitig scannen |
| Stunden | 6-8 Stunden pro Tag handeln (Burnout-Risiko) | Rund um die Uhr handeln (Krypto) oder über die vollen Börsenzeiten (Aktien) |
| Setups | 5-10 Setups pro Woche erwischen (realistisch für diskretionäre Trader) | 50-200 Setups pro Woche erwischen (der Bot schläft nie und verpasst nichts) |
Beispiel: Ein manueller Trader beobachtet ES (S&P-Futures) im 15-Minuten-Chart. Erwischt rund 8 Setups pro Woche. Verdient im Schnitt 3.200 $ pro Monat — etwa 92 $ pro Setup.
Derselbe Trader, automatisiert: Der Bot scannt ES, NQ und RTY (Index-Futures) sowie GC und CL (Metalle und Energie) auf 5m, 15m und 1h. Erwischt rund 24 Setups pro Woche. Bei denselben 92 $ pro Setup sind das 9.600 $ pro Monat.
Der Hebel: Du handelst nicht besser. Du handelst MEHR — ohne auszubrennen.
Und die Obergrenze: ES, MES, SPY und QQQ sind weitgehend derselbe Trade. Korrelierte Symbole vervielfachen deine Signalzahl, nicht deinen Vorteil — und sie vervielfachen dein Risiko, wenn vier davon gleichzeitig auslösen. Zähle unkorrelierte Gelegenheiten, nicht Ticker.
Wann Automatisierung Sinn ergibt (und wann nicht)
Automatisierung funktioniert am besten bei:
- Regelbasierten Strategien: Klare Ein- und Ausstiegskriterien (z. B. «kaufe, wenn der Kurs ein Tief abfischt und es dann zurückerobert»)
- Häufigen Setups: Strategien, die mehr als 10-mal pro Woche auslösen (das Volumen rechtfertigt den Programmieraufwand)
- Langweiliger Ausführung: Strategien, bei denen Ermessen keinen Mehrwert bringt (mechanische Vorteile)
Automatisierung tut sich schwer mit:
- Diskretionären Setups: «Ich handle das nur, wenn es sich richtig *anfühlt*» (Intuition lässt sich nicht programmieren)
- Kontextabhängigen Trades: «Dieser Ausbruch funktioniert, wenn das Volumen über dem 2-fachen Durchschnitt liegt UND ein Nachrichtenkatalysator da ist» (komplexer Kontext ist schwer zu quantifizieren)
- Seltenen Strategien: Setups, die 1-2-mal pro Monat auslösen (der Programmieraufwand lohnt nicht)
⚠️ Automatisierung repariert keine schlechte Strategie
Häufiger Fehler: «Meine Strategie funktioniert manuell nicht. Vielleicht macht ein Bot sie profitabel?»
Realität: Automatisierung führt deine Strategie GENAU so aus, wie sie codiert ist. Hat deine Strategie keinen Vorteil, verliert der Bot beständig — nur schneller und effizienter.
Regel: Automatisiere NUR Strategien mit nachgewiesen positivem Erwartungswert über mehr als 100 manuelle Trades. Automatisierung verstärkt Vorteile. Sie erschafft keine.
Broker-API im Vergleich
Nicht jeder Broker unterstützt automatisierten Handel. Und die, die es tun, unterscheiden sich massiv in Qualität, Kosten und Funktionsumfang.
Die besten Broker-APIs für automatisierten Handel
| Broker | Anlageklassen | API-Qualität | Kosten | Am besten für |
|---|---|---|---|---|
| Alpaca | Aktien, ETFs, Krypto | ⭐⭐⭐⭐⭐ Ausgezeichnet (RESTful + WebSocket, gut dokumentiert) | Aktien provisionsfrei, 0,1-0,25 % bei Krypto | Einsteiger (einfachste API, kostenloses Paper Trading, Python-Bibliothek) |
| Interactive Brokers (IBKR) | Aktien, Optionen, Futures, Devisen, CFDs (globale Märkte) | ⭐⭐⭐⭐ Gut (mächtig, aber komplex, steile Lernkurve) | 0,005 $ pro Aktie, 0,65 $ pro Optionskontrakt | Fortgeschrittene Trader (wollen Optionen/Futures automatisieren, globaler Zugang) |
| Binance | Krypto (über 600 Paare; die Hauptbörse ist für US-Bürger gesperrt — Binance.US ist ein separater, deutlich kleinerer Handelsplatz) | ⭐⭐⭐⭐⭐ Ausgezeichnet (REST + WebSocket, hoher Durchsatz) | 0,1 % Spot, 0,02-0,04 % Futures (mit BNB-Rabatt) | Krypto-Algo-Trader (Märkte rund um die Uhr, hohe Liquidität) |
| Schwab (früher TD Ameritrade / thinkorswim) | Aktien, Optionen, Futures | ⭐⭐⭐ Mittelmäßig (die alte TD-Ameritrade-API wurde 2024 abgeschaltet; die Schwab Trader API hat sie ersetzt und reift noch) | Aktien 0 $, 0,65 $ pro Optionskontrakt | Bestehende Schwab-Kunden (haben das Konto schon und wollen automatisieren) |
| TradeStation | Aktien, Optionen, Futures | ⭐⭐⭐⭐ Gut (Programmierung in EasyLanguage, backtesting eingebaut) | Aktien 0 $, 0,60 $ pro Optionskontrakt | Aktive Trader (wollen eine integrierte Plattform ohne externes Programmieren) |
Kurze Entscheidungshilfe
Wähle Alpaca, wenn: du Automatisierung lernst (einfachste API, kostenloses Paper Trading, beste Doku). Wähle Interactive Brokers, wenn: du Optionen/Futures/globale Märkte brauchst (alle Anlageklassen, 0,005 $ pro Aktie, institutionelles Niveau). Wähle Binance, wenn: es nur um Krypto geht (Märkte rund um die Uhr, über 600 Paare, 0,1 % Gebühren).
💡 Profi-Tipp: Starte immer mit Paper Trading
Jeder oben genannte Broker bietet Paper Trading an (simulierter Handel mit Spielgeld und echten Kursdaten).
Empfohlener Zeitplan:
- Woche 1-2: Mit der API verbinden, grundlegende Orderplatzierung testen (Kauf, Verkauf, Stop-Loss)
- Woche 3-8: Strategie programmieren, im Paper Trading ausrollen, täglich überwachen
- Woche 9-12: Strategie-Performance validieren (passt sie zum backtest?)
- Ab Monat 4: Wenn sie 3 Monate in Folge im Paper Trading profitabel war, live gehen mit 10 % des Kapitals
- Ab Monat 6: Wenn sie weiter profitabel ist, auf die volle Allokation hochskalieren
Überspringe niemals das Paper Trading. Mike (Fallstudie oben) hat es übersprungen und kassierte an einem Vormittag einen Nachschussaufruf.
Von der Trading-Idee zum ausführbaren Code
Du hast eine manuelle Strategie. Wie übersetzt du sie in Code, den ein Bot ausführen kann?
Das 5-Schritte-Framework zur Strategieübersetzung
Schritt 1: Einstiegsbedingungen definieren (nur explizite Regeln)
Der manuelle Trader denkt: «Ich kaufe, wenn der Kurs ein Tief abfischt und wieder nach oben dreht.»
Das ist für einen Bot zu vage. Ein Bot braucht präzise Logik:
- Was ist ein «Sweep»? → Das Tief der aktuellen Kerze fällt mindestens 0,3 % unter das vorherige Swing-Tief
- Was heißt «dreht wieder nach oben»? → Der Kurs schließt innerhalb von 1-3 Kerzen wieder über dem Swing-Tief
- Was ist ein «Swing-Tief»? → Das tiefste Tief der letzten 20 Kerzen
Codierte Fassung:
swing_low = min([bar.low for bar in last_20_bars])
current_low = current_bar.low
current_close = current_bar.close
if current_low < swing_low * 0.997: # 0,3 % darunter abgefischt
if current_close > swing_low: # zurueckerobert
ENTRY = True # Sweep-Setup bestaetigt
Schritt 2: Ausstiegsbedingungen definieren (Stopp und Ziel)
Der manuelle Trader: «Ich setze meinen Stopp unter den Sweep und nehme Gewinne bei einem Chance-Risiko-Verhältnis von 3:1.»
Codierte Fassung:
entry_price = current_close
stop_loss = swing_low * 0.995 # knapp unter dem Sweep
stop_distance = entry_price - stop_loss
target = entry_price + (stop_distance * 3) # 3R-Ziel
Schritt 3: Positionsgröße definieren (Risikomanagement)
Der manuelle Trader: «Ich riskiere etwa 2 % pro Trade.»
Codierte Fassung:
account_equity = 100000 # Konto ueber 100.000 $
risk_per_trade = 0.02 # 2 %
risk_amount = account_equity * risk_per_trade # 2.000 $
stop_distance = entry_price - stop_loss
position_size = risk_amount / stop_distance # zu kaufende Aktien
# Beispiel: Einstieg 520 $, Stopp 518 $, Abstand 2 $
# Positionsgroesse = 2.000 $ / 2 $ = 1.000 Aktien
# ...das sind 520.000 $ SPY auf einem Konto ueber 100.000 $. 2 % Risiko
# sagen nichts ueber den Nominalwert: ein enger Stopp kauft dir Hebel.
max_notional = account_equity * 1.5 # harte Grenze: 1,5-faches Eigenkapital
position_size = min(position_size, max_notional / entry_price)
# Gedeckelt: 288 Aktien. Das echte Risiko liegt bei 576 $ statt 2.000 $ -
# das ist der Preis, und genau der haelt dich im Geschaeft.
Schritt 4: Trade-Management definieren (optional)
Skalierst du aus? Ziehst du Stopps nach? Nimmst du Teilgewinne mit?
Beispiel: «Ich nehme bei 2R 50 % Gewinn mit und lasse den Rest bis 3R laufen.»
if current_price >= entry_price + (stop_distance * 2):
SELL_HALF = True # bei 2R die Haelfte glattstellen
# Stopp fuer die restlichen 50 % auf Einstand ziehen
Schritt 5: Filter definieren (schlechte Setups verhindern)
Welche Bedingungen entkräften das Setup?
- Zeitfilter: Nur in den ersten 2 Handelsstunden handeln (9:30-11:30 Uhr ET)
- Volatilitätsfilter: Trades auslassen, wenn der VIX über 30 liegt (zu unruhig)
- Trendfilter: Long-Setups nur, wenn der Kurs über der 50-Perioden-EMA liegt
if VIX > 30:
SKIP_TRADE = True # Markt zu volatil
if current_time < "09:30" or current_time > "11:30":
SKIP_TRADE = True # ausserhalb des Handelsfensters
✅ Vollständiges Strategiebeispiel (Logik des Sweep-Bots)
Alle 5 Schritte kombiniert als ausführbarer Pseudocode:
# Schritt 1: Einstiegsbedingungen
swing_low = min([bar.low for bar in last_20_bars])
if current_bar.low < swing_low * 0.997: # Sweep
if current_bar.close > swing_low: # zurueckerobert
# Schritt 2: Ausstiege
entry = current_bar.close
stop = swing_low * 0.995
target = entry + ((entry - stop) * 3)
# Schritt 3: Positionsgroesse
risk_amount = account_equity * 0.02
size = risk_amount / (entry - stop)
# Schritt 4: Trade-Management (bei 2R die Haelfte nehmen)
profit_target_partial = entry + ((entry - stop) * 2)
# Schritt 5: Filter
if VIX < 30 and time_in_window():
PLACE_ORDER(symbol, size, entry, stop, target)
Das ist jetzt ausführbar. Ein Bot kann diese Regeln perfekt befolgen, jedes einzelne Mal.
Vollständige Bot-Umsetzung (Sweep-Reversal-Strategie)
import alpaca_trade_api as tradeapi
from alpaca_trade_api.rest import TimeFrame
import os, time
# Einrichtung
API_KEY = os.getenv('ALPACA_API_KEY') # NIEMALS fest eincodieren!
API_SECRET = os.getenv('ALPACA_API_SECRET')
api = tradeapi.REST(API_KEY, API_SECRET, 'https://paper-api.alpaca.markets')
MAX_NOTIONAL_MULT = 1.5 # nie mehr als das 1,5-fache Eigenkapital halten
MAX_DAILY_LOSS = 0.03 # Not-Aus: bei -3 % fuer den Tag aussteigen
def get_swing_low(bars, lookback=20):
# Die aktuelle Kerze ausschliessen. Nimmt man sie mit, IST das Swing-Tief
# das aktuelle Tief, der Sweep-Test unten wird nie wahr, der Bot feuert nie.
lows = [bar.l for bar in bars[-(lookback + 1):-1]]
return min(lows)
def check_sweep(current_price, current_low, swing_low):
# Sweep = aktuelles Tief < Swing-Tief (0,3 %), danach darueber zurueckerobert
if current_low < swing_low * 0.997 and current_price > swing_low:
return True
return False
def calculate_position_size(api, entry, stop):
equity = float(api.get_account().equity)
risk_amount = equity * 0.02 # 2 % Risiko
by_risk = risk_amount / (entry - stop)
by_notional = (equity * MAX_NOTIONAL_MULT) / entry # die Kontrolle, die Mike fehlte
return int(min(by_risk, by_notional))
def kill_switch_tripped(api):
acct = api.get_account()
move = (float(acct.equity) - float(acct.last_equity)) / float(acct.last_equity)
return move <= -MAX_DAILY_LOSS
def in_position(api, symbol):
# Frag den Broker; vertrau keiner lokalen Variable. Eine Bracket-Order, die
# ueber Nacht ausgefuehrt und geschlossen wurde, darf morgen nichts blockieren.
try:
api.get_position(symbol)
return True
except Exception:
return False
def place_bracket_order(api, symbol, size, entry, stop, target):
try:
order = api.submit_order(
symbol=symbol, qty=size, side='buy', type='limit',
limit_price=entry, time_in_force='gtc',
order_class='bracket',
stop_loss={'stop_price': stop},
take_profit={'limit_price': target}
)
print(f"✓ Order: {size} Aktien @ ${entry} | Stopp: ${stop} | Ziel: ${target}")
return order
except Exception as e:
print(f"✗ Order fehlgeschlagen: {e}")
return None
def run_bot(symbol='SPY'):
print(f"Bot gestartet. Beobachte {symbol} auf Sweep-Setups...")
while True:
try:
if not api.get_clock().is_open: # Kontrolle 1: Handelszeiten
time.sleep(60)
continue
if kill_switch_tripped(api): # Kontrolle 2: Tagesverlustgrenze
print("🛑 Tagesverlustgrenze erreicht. Ich steige aus.")
break
bars = api.get_bars(symbol, TimeFrame.Minute, limit=50)
current_price = bars[-1].c
current_low = bars[-1].l
swing_low = get_swing_low(bars)
if not in_position(api, symbol) and check_sweep(current_price, current_low, swing_low):
print(f"🎯 Sweep erkannt @ ${current_price}")
entry = current_price
stop = swing_low * 0.995
target = entry + (entry - stop) * 3 # 3R
size = calculate_position_size(api, entry, stop) # Kontrolle 3: Nominalwert-Deckel
if size > 0:
place_bracket_order(api, symbol, size, entry, stop, target)
time.sleep(60) # jede Minute pruefen
except Exception as e:
print(f"Fehler: {e}")
time.sleep(60)
run_bot() # ~75 Zeilen - und die drei wichtigsten davon sind die Kontrollen.
Was das macht: Verbindet sich mit Alpaca, holt 1-Minuten-Kerzen von SPY, erkennt Sweep-Reversals (das Tief fischt unter das Swing-Tief und erobert es zurück), bestimmt die Größe über 2 % Risiko gedeckelt durch den Nominalwert, platziert eine Bracket-Order (Einstieg + Stopp + 3R-Ziel) und wiederholt das alle 60 Sekunden — aber nur, solange der Markt offen ist, nur wenn der Broker meldet, dass keine Position offen ist, und nie, wenn der Tag 3 % im Minus liegt. Perfekte Disziplin, null Emotion und drei Bremsen.
💡 der Aha-Moment
Du hast gerade die menschliche Ebene entfernt. Kein «Soll ich den nehmen?» mehr. Kein «Vielleicht warte ich noch» mehr.
Setup erscheint → der Bot handelt. Setup erscheint nicht → der Bot wartet. Perfekte Disziplin.
Paper Trading ≠ Live-Trading
Dein Bot läuft im Paper Trading perfekt. Du rollst ihn live aus. Er stürzt ab. Orders werden abgelehnt. Du bist ratlos.
Willkommen im Produktivbetrieb.
Häufige Fehler (und wie man sie abfängt)
Häufige Fehler: Verbindungs-Timeout, abgelehnte Order, Teilausführungen, Rate Limits, geschlossener Markt. Lösungen: Wiederholungslogik (3× exponentielles Backoff), Vorabprüfungen (Guthaben, Handelszeiten, Kurs), Umgang mit Teilausführungen, Rate Limiting (200 Anfragen/Min.), Prüfung der Handelszeiten (9:30-16 Uhr ET). Professionelle Bots fangen Fehler sauber ab.
Wiederholungslogik (unverzichtbar)
import uuid
def place_order_with_retry(api, **order_params):
"""Orderplatzierung bis zu 3-mal wiederholen"""
max_retries = 3
# Bei jedem Versuch dieselbe ID. Kam die erste Anfrage tatsaechlich beim
# Broker an und ging nur die Antwort verloren, wird die Wiederholung als
# Duplikat abgelehnt, statt deine Position zu verdoppeln.
order_params.setdefault('client_order_id', f"bot-{uuid.uuid4()}")
for attempt in range(max_retries):
try:
order = api.submit_order(**order_params)
return order # Erfolg!
except Exception as e:
if attempt < max_retries - 1:
wait = 2 ** attempt # 1s, dann 2s (exponentielles Backoff)
print(f"Order fehlgeschlagen: {e}. Wiederholung in {wait}s...")
time.sleep(wait)
else:
# Letzter Versuch gescheitert
print(f"Order nach {max_retries} Versuchen fehlgeschlagen: {e}")
# Alarm senden (E-Mail, SMS)
raise # Ausnahme erneut werfen
Monitoring & Alarme (entscheidend)
Dein Bot läuft auf einem VPS in der Cloud. Du sitzt beim Abendessen. Er läuft in einen Fehler.
Du bist jetzt auf halber Strecke. Du hast die zentralen Strategien gelernt.
Starker Fortschritt! Mach bei Bedarf eine kurze Dehnpause, dann steigen wir in die fortgeschrittenen Konzepte ein.
Woher weißt du das?
Antwort: Alarme.
import smtplib
from email.mime.text import MIMEText
def send_alert(subject, message):
"""E-Mail-Alarm senden"""
msg = MIMEText(message)
msg['Subject'] = subject
msg['From'] = 'bot@yourbot.com'
msg['To'] = 'you@gmail.com'
# Versand ueber Gmail-SMTP - dafuer braucht es ein Gmail-App-Passwort,
# nicht dein Kontopasswort; Basic Auth wurde 2022 abgeschaltet.
with smtplib.SMTP('smtp.gmail.com', 587) as server:
server.starttls()
server.login('bot@yourbot.com', os.getenv('EMAIL_PASSWORD'))
server.send_message(msg)
# Verwendung
try:
# Trading-Logik
pass
except Exception as e:
send_alert(
subject="🚨 Fehler im Trading-Bot",
message=f"Der Bot lief in einen Fehler: {e}"
)
raise
Jetzt weißt du innerhalb von Minuten, wenn etwas kaputtgeht.
🚨 Not-Aus (nicht verhandelbar)
Dein Bot muss den Handel automatisch einstellen, wenn:
- der Tages-drawdown -3 % überschreitet (Michaels Neubau schaltete zusätzlich bei -10 % vom Höchststand endgültig ab)
- 5 Verluste in Folge auflaufen
- mehr als 10 API-Fehler pro Stunde auftreten
- unerwartetes Verhalten erkannt wird
Programmiere das. Teste es. Dein Konto hängt davon ab.
Hosting: Wo du deinen Bot laufen lässt
Warum der Heim-PC scheitert
- Stromausfall: Der PC geht aus, der Bot steht
- Internetausfall: Keine Verbindung = verpasste Trades
- Windows-Updates: Automatischer Neustart um 3 Uhr = Bot tot
- Du: «Ich starte den PC nur mal eben kurz neu …»
Verfügbarkeit: 95 % (für Algo-Trading inakzeptabel)
Warum der Cloud-VPS gewinnt
- 99,9 % Verfügbarkeit: AWS, DigitalOcean, Linode
- Keine Stromausfälle: Redundante Stromversorgung, Backups
- Schnelles Internet: Geringe Latenz zu den Broker-APIs
- Automatischer Neustart: Bot abgestürzt? Startet in 30 Sekunden neu
Kosten: 5-20 $ pro Monat (der billigste Verstärker deines Vorteils, den du je kaufst)
Automatisierung ist kein Selbstläufer
Du rollst deinen Bot aus. Er handelt einen Monat. Trefferquote: 65 %. Genau wie im backtest. Du bist begeistert.
Monat 2: Die Trefferquote fällt auf 48 %. Du bist ratlos.
Was geschah?
Das Marktregime hat sich geändert. Deine Strategie funktioniert in trendenden Märkten. Der Markt wechselte in eine Seitwärtsphase. Dein Bot handelte weiter. Die Ergebnisse litten.
🚨 Die harte Wahrheit
Automatisierung verstärkt deinen Vorteil. Aber sie passt sich Regimewechseln nicht von allein an.
Du musst weiterhin überwachen, prüfen und nachjustieren. Nur seltener.
Monatliche Wartungscheckliste für den Bot
1. Leistungskennzahlen: Trefferquote innerhalb von 5 % zum backtest? Durchschnittliches R positiv? Drawdown akzeptabel? Slippage verschlechtert? 2. Fehlerprotokolle: Verbindungsfehler, abgelehnte Orders, Sonderfälle. 3. Regimeprüfung: Begünstigt der Markt die Strategie noch? VIX erhöht → pausieren. Niedrige Volatilität → Ausbrüche tun sich schwer.
🎓 Die wichtigsten Erkenntnisse
- Automatisierung nimmt die Emotion raus — repariert aber keine schlechte Strategie
- Starte mit Alpaca (Aktien) oder Binance (Krypto) für einfachen API-Zugang
- Handle 3-6 Monate im Paper Trading, bevor du live gehst
- Fehlerbehandlung ist entscheidend: Wiederholungslogik, Alarme, Not-Aus
- Betreibe ihn auf einem Cloud-VPS (5-20 $ pro Monat) für 99,9 % Verfügbarkeit
- Prüfe monatlich: Performance, Fehler, Regime-Passung
📝 Praxisübung
Baue dein erstes API-Trading-Skript
- Richte ein Alpaca-Paper-Trading-Konto ein
- Melde dich bei alpaca.markets an (kostenloses Paper Trading)
- Erzeuge API-Key und Secret
- Installiere die Python-Bibliothek:
pip install alpaca-trade-api
- Programmiere ein einfaches Strategieskript
- Verbinde dich mit der Alpaca-API
- Hole alle 60 Sekunden den aktuellen SPY-Kurs
- Setze eine einfache Logik um: Kreuzt der Kurs über die 20-Perioden-SMA, platziere eine Kauforder
- Ergänze die Berechnung der Positionsgröße (2 % Risiko pro Trade)
- Füge einen Stop-Loss bei -1R ein
- Ergänze Fehlerbehandlung
- Kapsle API-Aufrufe in try/except-Blöcke
- Protokolliere alle Fehler in eine Datei
- Setze eine Wiederholungslogik um (3 Versuche)
- Teste 1 Woche im Paper Trading
- Überwache die Ausführung: Werden Orders korrekt ausgeführt?
- Prüfe die Protokolle: Gibt es Verbindungsfehler?
- Prüfe die Performance: Passt sie zu deinem backtest?
Ziel: Baue dein erstes automatisiertes Trading-Skript und rolle es im Paper-Trading-Modus aus. Beherrsche die Grundlagen, bevor du echtes Kapital riskierst.
🎮 Teste dein Verständnis (ganz entspannt)
Frage 1: Du hast einen Bot programmiert, der im Paper Trading perfekt läuft. Wie lange musst du mindestens testen, bevor du live gehst?
Frage 2: Die Trefferquote deines Bots lag im backtest bei 65 %, live sind es nach 2 Monaten 48 %. Was ist die wahrscheinlichste Ursache?
Wenn du bis hierher gekommen bist, verstehst du: Automatisierung ist keine Magie, sondern disziplinierte Ausführung in großem Maßstab. Programmiere deinen Vorteil. Teste gründlich. Rolle vorsichtig aus. Überwache fortlaufend.
Verwandte Lektionen
Machine Learning im Trading
Nutze ML-Modelle, um automatisierte Handelssignale zu erzeugen.
Lektion lesen →Fortgeschrittenes Backtesting
Teste deine automatisierten Strategien, bevor du live gehst.
Lektion lesen →Performance-Attribution
Analysiere, welche automatisierten Strategien zur Rendite beitragen.
Lektion lesen →⏭️ Als Nächstes
Lektion #58: Fortgeschrittene Portfoliotheorie — Moderne Portfoliotheorie, Effizienzkurve, Risk Parity und professionelle Frameworks zur Portfoliokonstruktion.
💬 Diskussion (0 Kommentare)
Kommentare werden geladen …
Nur zu Bildungszwecken. Der Handel ist mit erheblichem Verlustrisiko verbunden. Keine Finanzberatung. Vergangene Wertentwicklung ist keine Garantie für zukünftige Ergebnisse.