← Back to Overview
Weekly Screener

Vollautomatisierter Aktien-Scan, Portfoliomanagement und Risikosteuerung

Systembeschreibung für Außenstehende  ·  Erstellt auf Basis des Regelwerks Weekly Screener

Überblick

Der Weekly Screener ist ein vollautomatisiertes System zur Selektion, zum Erwerb und zur Verwaltung von US-Aktien. Es läuft einmal wöchentlich — jeden Samstag — und trifft alle Kauf-, Verkaufs- und Risikomanagement-Entscheidungen eigenständig, ohne manuellen Eingriff.

Das System folgt der Anlagephilosophie von Mark Minervini (SEPA-Methode) und dem O'Neil-Ansatz. Es kauft ausschließlich Aktien, die sich in einem nachweisbaren Aufwärtstrend befinden, fundamentale Stärke zeigen und ein klar definiertes Chartmuster aufweisen. Jede Position wird mit einem vordefinierten Risikolimit und einem automatischen Stop-Loss abgesichert.

Samstagsablauf — Hauptprogramm

Schritt 1 — Systemstart und Initialisierung

Zu Beginn legt das System fest, in welchem Modus es läuft. An einem Samstag wechselt es automatisch in den Live-Modus und verbindet sich mit dem Broker-API. An allen anderen Wochentagen läuft es im Testmodus, ohne echte Orders zu platzieren.

Zusätzlich wird ein Datenzwischenspeicher aktiviert. Einmal heruntergeladene Kursdaten werden 24 Stunden lokal gespeichert, um bei einem Neustart keine Daten erneut herunterladen zu müssen.

Schritt 2 — Aktien-Universum laden

Das System definiert zunächst, welche Aktien überhaupt betrachtet werden sollen. Dieses Universum ist eine Liste von Ticker-Symbolen und wird aus zwei Quellen zusammengestellt:

Gleichzeitig liest das System Unternehmensnamen und Branchenzuordnungen aus der Quelldatei aus, ohne dafür externe Daten abzufragen.

Schritt 3 — Historische Kursdaten laden

Für alle Aktien im Universum werden historische Wochenkursdaten der letzten zwei Jahre heruntergeladen. Jeder Datensatz enthält Eröffnung, Hoch, Tief, Schluss und Volumen auf Wochenbasis.

Das System prüft dabei, ob eine Aktie noch aktiv gehandelt wird. Liegt der letzte Handelstag einer Aktie mehr als 14 Tage zurück, wird sie als inaktiv eingestuft und aus dem weiteren Durchlauf ausgeschlossen.

Schritt 4 — Markt- und Indexdaten laden

Neben den Einzelaktien lädt das System übergeordnete Marktdaten. Diese Tagesdaten werden auf Wochenbasis zusammengefasst:

Schritt 5 — Marktbreite berechnen

Die Marktbreite beschreibt, wie breit eine Marktbewegung aufgestellt ist. Das System berechnet für das gesamte Universum vier Kennzahlen:

Diese Werte werden für die aktuelle Woche sowie für die Wochen minus 1 und minus 4 ausgewiesen, um Trends in der Marktbreite zu erkennen.

Schritt 6 — Marktampel: Kaufbedingung prüfen

Bevor das System neue Kaufsignale generiert, prüft es zwei übergeordnete Bedingungen. Beide müssen erfüllt sein, damit der volle Kaufmodus aktiv ist:

Beispiel: SPY 10W-EMA = 520, SPY 20W-EMA = 512 → Trendfilter erfüllt.
58 % der S&P-500-Aktien über 200-Tage-MA → Marktbreite erfüllt.
Ergebnis: Marktampel auf Grün. Bis zu 3 neue Kaufsignale möglich, volle Positionsgröße.

Ist mindestens eine der beiden Bedingungen nicht erfüllt, wechselt das System in einen defensiven Modus. In diesem Fall wird nur noch maximal 1 neues Kaufsignal pro Woche ausgegeben, und alle Positionsgrößen werden halbiert.

Schritt 7 — Offene Kauforders stornieren

Kauforders aus der Vorwoche, die nicht ausgelöst wurden, weil der Kurs das definierte Einstiegsniveau nicht erreicht hat, werden automatisch storniert. Das verhindert, dass veraltete Orders zu einem ungünstigen Zeitpunkt ausgelöst werden.

Schritt 8 — Portfolio-Daten abrufen

Das System holt den aktuellen Stand des Portfolios vom Broker: das verfügbare Bargeld, den Gesamtdepotwert sowie alle Details zu aktuell gehaltenen Positionen (Einstiegspreis, Anzahl Aktien, aktueller Kurs, unrealisierter Gewinn/Verlust).

Schritt 9 — Exit-Manager: MACD Bearish Cross

Für jede aktuell gehaltene Position prüft das System, ob ein sogenannter Bearish MACD Cross aufgetreten ist. Das ist ein technisches Signal, das auf nachlassendes Momentum hindeutet:

Ein Bearish Cross liegt vor, wenn die MACD-Linie von oberhalb der Signallinie nach unterhalb wechselt. Das System reagiert darauf mit einer Stop-Anpassung:

Beispiel: Eine Position hat einen bestehenden Stop bei 48 $. Ein Bearish Cross tritt auf.
Das Wochentief der auslösenden Kerze liegt bei 54 $. Da 54 $ > 48 $, wird der Stop auf 54 $ angehoben.
Fällt der Kurs unter 54 $, verkauft der Broker die Position automatisch.

Schritt 10 — Trade Journal synchronisieren

Das System führt intern ein Trade Journal. In diesem Schritt wird es mit den tatsächlichen Broker-Transaktionen der letzten Woche abgeglichen:

Schritt 11 — Gewinnmitnahme-System

Das System wendet vier ineinandergreifende Regeln an, um Gewinne systematisch zu sichern. Alle Parameter sind zentral konfigurierbar.

Regel 1 — Breakeven-Stop

Sobald eine Position mehr als 10 % im Plus liegt, wird der Schutzstopp auf den ursprünglichen Einstandspreis angehoben. Der Trade kann damit nicht mehr mit Verlust enden. Diese Regel ist immer aktiv und löst keinen Teilverkauf aus.

Regel 2 — O'Neil Fast-Mover-Erkennung

Erreicht eine Position innerhalb von drei Wochenkerzen ab Einstieg einen Gewinn von 20 % oder mehr, wird kein Teilverkauf vorgenommen. Stattdessen wird die Position acht Wochen gehalten (O'Neil "8-week hold rule"). Nach Ablauf dieser Haltezeit wird ein ATR-basierter Trailing Stop aktiviert (Regel 4).

Regel 3 — Minervini Power of Three

Für normale Bewegungen, also ein Gewinn von 20 % in mehr als 3 Wochen, gilt ein gestaffeltes Teilverkaufsschema:

Regel 4 — ATR-Trailing Stop für den Runner

Nach dem ersten Teilverkauf (Regel 3) oder nach Ende der Fast-Mover-Haltezeit (Regel 2) wird ein dynamischer Trailing Stop aktiviert:

Trailing Stop = höchster Wochenschlusskurs seit Einstieg − 2 × ATR(10 Wochen)
Beispiel: Höchster Schlusskurs = 80 $, ATR = 3 $.
Trailing Stop = 80 $ − (2 × 3 $) = 74 $.
Steigt der Kurs auf 90 $, zieht der Stop automatisch auf 90 $ − 6 $ = 84 $ nach.
Der Stop wird nur angehoben, nie abgesenkt.

Bei Aktivierung ersetzt der ATR-Trailing Stop den bisherigen MACD-Stop. Das Modell sichert Gewinne, lässt der Position aber Raum zum Atmen.

Schritt 12 — Performance-Dashboard erstellen

Das System generiert automatisch einen visuellen Leistungsbericht. Dieser enthält die Eigenkapitalkurve des Portfolios, eine Vergleichslinie mit dem S&P 500, Gewinn-/Verlust-Statistiken sowie eine Übersicht aller abgeschlossenen Trades.

Schritt 13 — Minervini-Screener

Das Herzstück des Systems: Jede Aktie im Universum wird anhand von acht technischen Kriterien nach Mark Minervini bewertet. Für jedes erfüllte Kriterium erhält die Aktie einen Punkt — der maximale Score beträgt 8/8.

#KriteriumBedingung
1SMA 10 Wochen steigend10-Wochen-Durchschnitt liegt über dem der Vorwoche
2SMA 30 Wochen steigend30-Wochen-Durchschnitt liegt über dem der Vorwoche
3SMA 40 Wochen steigend40-Wochen-Durchschnitt liegt über dem der Vorwoche
4MA-OrdnungKurs > SMA 10W > SMA 30W > SMA 40W (bullische Hierarchie)
552-Wochen-PositionKurs ≥ 130 % des 52-Wochen-Tiefs UND ≥ 75 % des 52-Wochen-Hochs
6RS-Trend steigendAktueller RS-Score > RS-Score vor 4 Wochen
7VolumenausbruchWochenvolumen ≥ 1,3× des 20-Wochen-Durchschnitts
8Wochenkurs positivSchlusskurs liegt über dem der Vorwoche
RS-Score (Relative Stärke nach O'Neil)

Jede Aktie erhält einen RS-Score zwischen 1 und 99, der ihre Kursentwicklung relativ zu allen anderen Aktien im Universum abbildet. Ein Score von 90 bedeutet, dass die Aktie besser als 90 % aller anderen Aktien performed hat.

Rechenbeispiel RS-Score:
3-Monats-Performance: +18 % (Gewichtung 40 %)
6-Monats-Performance: +25 % (Gewichtung 20 %)
9-Monats-Performance: +30 % (Gewichtung 20 %)
12-Monats-Performance: +22 % (Gewichtung 20 %)
Gewichtete Performance = 0,4 × 18 + 0,2 × 25 + 0,2 × 30 + 0,2 × 22 = 22,6 %
Dieser Wert wird gegen alle Aktien im Universum gerankt → Ergebnis: z. B. RS-Score 78.

Zusätzlich: ΔRS 4W = RS-Score aktuell minus RS-Score vor 4 Wochen. Ein stark steigender Wert signalisiert, dass eine Aktie gerade dynamisch an Stärke gewinnt.

Chartmuster-Erkennung (kein Pflichtkriterium, aber Ranking-Booster)

Das System erkennt zwei klassische Chartmuster, die als Kaufauslöser besonders wertvoll sind:

Das Erkennen eines dieser Muster ist kein Pflichtkriterium für ein Kaufsignal, verbessert aber den Rang einer Aktie im abschließenden Ranking erheblich.

Schritt 14 — Fundamentaldaten laden

Um den Rechenaufwand zu begrenzen, werden Fundamentaldaten nur für Aktien abgerufen, die im Minervini-Screener mindestens 5 von 8 Punkten erreicht haben. Abgerufen werden:

Schritt 15 — Branchen-Stärke berechnen

Das System aggregiert die Einzelaktien-Kennzahlen auf Branchenebene und erstellt eine Rangliste der stärksten Branchen. Drei Kennzahlen fließen ein:

Diese drei Werte werden zu einem Composite Industry Score zusammengefasst und in eine Rangliste überführt. Nur Aktien aus den Top-50-%-Branchen kommen für ein Kaufsignal in Frage.

Schritt 16 — Signal-Generator: Kaufkriterien

Alle Aktien, die den Minervini-Screener und die Fundamentalprüfung überstanden haben, durchlaufen nun 17 Kauffilter. Alle Filter müssen erfüllt sein:

#FilterkriteriumSchwellenwert
1Minervini-Score≥ 6 von 8 Punkten
2RS-Score (Relative Stärke)≥ 70 (Top 30 % des Universums)
3Abstand zum 52-Wochen-Hoch≤ 25 % unter dem 52-Wochen-Hoch
4Volatilität (ATR / Kurs)< 8 % (keine übermäßig schwankenden Aktien)
5VolumenausbruchWochenvolumen ≥ 1,3× des 20-Wochen-Durchschnitts
6Branchen-RankingTop 50 % aller Branchen im Universum
7Mindestkurs≥ 5 $ (kein Penny Stock)
8Marktkapitalisierung≥ 300 Mio. $ (kein Micro Cap)
9Earnings-BlackoutNächste Ergebnispublikation > 14 Tage entfernt
10Wöchentlicher MACD> Signallinie (positives Momentum)
11Marktfilter (Trendfilter)S&P 500: 10W-EMA > 20W-EMA (sonst halbe Positionsgröße)
12Nicht im PortfolioPosition darf nicht bereits gehalten werden
13Sektor-KonzentrationslimitMaximal 3 Positionen pro Sektor
14Marktbreite≥ 40 % der S&P-500-Aktien über ihrem 200-Tage-MA
15Umsatzwachstum (TTM, YoY)≥ 20 %
16EPS-Wachstum (letztes Quartal)≥ 20 % im Jahresvergleich
17Wochenkurs steigendSchlusskurs > Schlusskurs der Vorwoche

Hinweis: Rentabilitätskennzahlen wie ROE und operative Marge sind als Filter vorhanden, aber derzeit deaktiviert. Sie können bei Bedarf aktiviert werden.

Positionsgröße: Risk-First-Methode

Die Positionsgröße wird so berechnet, dass maximal 1,5 % des Gesamtportfolios pro Trade riskiert werden. Das Verlustrisiko ist damit von vornherein begrenzt:

Positionsgröße (%) = min(max_risk_pct / stop_pct, max_position_pct) = min(1,5 % / Stop-Abstand in %, 15 %) Position ($) = Portfolio × Positionsgröße (%)
Beispiel bei 100.000 $ Portfolio und einem Stop-Abstand von 8 %:
Positionsgröße = 1,5 % / 8 % = 18,75 % → gekappt auf maximal 15 % = 15.000 $
Maximales Risiko = 100.000 $ × 1,5 % = 1.500 $

Im defensiven Marktmodus (Marktampel gedämpft): max. Risiko = 0,75 % → kleinere Positionen. Zusätzlich: Position wird auf "verfügbares Cash / verbleibende Slots" gedeckelt.

Ranking der Kaufkandidaten

Alle Aktien, die alle Filter bestehen, werden nach einem gewichteten Score sortiert. Die bestplatzierten Kandidaten (Top-Picks) erhalten bevorzugt Orders:

KriteriumGewichtungBedeutung
RS-Score (Relative Stärke)35 %Aktuelle Stärke gegenüber dem Gesamtmarkt
ΔRS über 4 Wochen20 %Beschleunigung der relativen Stärke
Muster-Qualität20 %VCP oder Launchpad, Qualitätsscore
Stop-Enge (Tightness)15 %Je enger die Basis, desto kontrollierter
Branchen-Stärke10 %Rang der Branche im Universum

Schritt 17 — Orders platzieren

Das System unterscheidet bei der Orderplatzierung zwei Szenarien:

Fall A — Gewinnmitnahmen wurden platziert

Wurden im selben Durchlauf bereits Teilverkäufe aus bestehenden Positionen ausgelöst, wartet das System mit neuen Käufen bis zum nächsten Montag. Der Grund: Der Verkaufserlös steht erst nach dem Settlement-Prozess des Brokers zur Verfügung.

Fall B — Direkte Platzierung

Sind keine offenen Verkäufe vorhanden, werden Kauforders sofort beim Broker als sogenannte OTO-Orders (One-Triggers-Other) platziert. Eine OTO-Order besteht aus zwei verknüpften Teilen:

Der initiale Stop-Loss wird je nach erkanntem Chartmuster unterschiedlich gesetzt:

Beispiel OTO-Order (VCP-Setup): Pivot = 100 $, ATR = 4 $.
Buy-Stop = 100,10 $ (0,1 % über Pivot). Max-Limit = 105 $ (5 % über Pivot).
Initialer Stop-Loss = 100 $ − (2 × 4 $) = 92 $ (8 % unter Pivot, innerhalb des 15%-Caps).
→ Wird die Aktie am Montag zwischen 100,10 $ und 105 $ gekauft, ist der maximale Verlust von vornherein auf ca. 8 % begrenzt.

Schritt 18 — Report und E-Mail

Zum Abschluss des Samstagdurchlaufs erzeugt das System einen vollständigen Wochenbericht:

Montagsablauf — Verzögerter Kaufabschluss

Der Montagsablauf ist nur relevant, wenn der Samstagdurchlauf Gewinnmitnahmen platziert hat und neue Käufe deshalb verschoben wurden (Fall A). Er läuft dann wie folgt ab:

Zusammenfassung: Identifizierte Schwächen

Die folgende Tabelle fasst alle im Dokument markierten Schwachstellen zusammen. Sie soll als Ausgangspunkt für Verbesserungen dienen.

BereichBeschreibung der SchwächeEmpfehlung
Modussteuerung Live-/Testmodus basiert allein auf dem Wochentag. Ein versehentlicher Samstagsstart sendet sofort echte Orders. Manuelles Bestätigungsflag oder Dry-Run-Option einführen.
Universum-Aktualität Die statische CSV-Datei wird nicht automatisch aktualisiert. Neu gelistete oder herausgefallene Aktien werden verpasst. Automatische wöchentliche Aktualisierung aus einer verlässlichen Quelle einplanen.
Datenladegeschwindigkeit Sequenzielle 40er-Batches verlangsamen den Durchlauf bei großen Universen erheblich. Parallele Downloads einführen, um die Laufzeit zu reduzieren.
Marktampel-Granularität Es gibt nur zwei Zustände: grün und gedämpft. Kein harter Stopp bei extremen Markteinbrüchen. Einen dritten Zustand "rot" mit vollständigem Kaufstopp einführen.
Gap-Down-Risiko MACD-Bearish-Cross löst nur einen angehobenen Stop aus, keinen sofortigen Verkauf. Bei Wochenend-Lücken entsteht Slippage-Risiko. Option für einen sofortigen Marktverkauf nach Bearish Cross ergänzen.
Trade-Journal Ausstiegsgrund wird vereinfacht aus dem Ordertyp abgeleitet. Komplexe Szenarien werden unvollständig dokumentiert. Detailliertere Exit-Klassifizierung implementieren.
Gewinnziele statisch TV1 (+20 %) und TV2 (+40 %) sind feste Prozentwerte, unabhängig von der individuellen Volatilität der Aktie. ATR-basierte Schwellen für Teilverkäufe einführen.
Regelpriorität Bei gleichzeitigem Auftreten von Fast-Mover (Regel 2) und normalem Move (Regel 3) ist die Priorität nicht explizit dokumentiert. Klare Rangfolge der Gewinnmitnahme-Regeln im Regelwerk festlegen.
Fundamentaldaten-Quelle Alle Fundamentaldaten stammen aus nur einer Quelle. Fehler oder Ausfälle bleiben unerkannt. Zweite Datenquelle als Fallback einbinden. Fehlende Daten protokollieren.
Performance-Dashboard Kein fixer Benchmark-Startpunkt. Der Vergleich mit SPY ist abhängig vom ersten Trade-Datum. Fixen Startzeitpunkt für den Benchmark-Vergleich definieren.
Cash-Berechnung Wenn Gewinnmitnahmen und Neukäufe im gleichen Durchlauf stattfinden, kann die berechnete Positionsgröße zu klein ausfallen. Erwartete Verkaufserlöse zum verfügbaren Cash hinzurechnen, bevor Positionsgrößen berechnet werden.
5%-Gap-Limit Bei einem Montagsgap von mehr als 5 % über den Pivot verfällt die Kauforder kommentarlos ohne Benachrichtigung. Logging und optionale Benachrichtigung bei verworfenen Orders einführen.
Fehlende Fehleralarme Bei fehlgeschlagenem E-Mail-Versand oder Cloudflare-Fehler gibt es keine Warnmeldung an den Betreiber. Fehler-Logging mit automatischem Alert (E-Mail oder SMS) implementieren.
Mustererkennung Algorithmische VCP-Erkennung ist fehleranfällig in seitwärtslaufenden oder hochvolatilen Märkten. Zusätzliche Plausibilitätsprüfungen oder manuelle Review-Möglichkeit für erkannte Muster einbauen.