Wir möchten für QQQ vorhersagen, wie sich der Preis in den nächsten 1, 3, 5, 10 und 15 Minuten bewegt. Das Ziel ist eine kurzfristige Daytrading-Prognose, mit der man Trends früh erkennt.
Wir nutzen dafür Minuten-Daten und News, um Muster wie Momentum, Volatilität oder News-Impulse zu erkennen.
Ein Modell zu entwickeln, das:
-
Preis- und Volumenmuster erkennt
-
News-Einfluss kurzfristig berücksichtigt
-
zuverlässig abschätzt, wohin sich QQQ in den nächsten Minuten bewegt
Damit können wir präzisere Daytrading-Signale erzeugen.
Wir verwenden 1-Minuten-Bars:
-
timestamp -
open -
high -
low -
close -
volume -
trade_count -
vwap
Zusätzlich nutzen wir News:
-
news_time -
sentiment
-
1-, 5- und 15-Minuten Returns
-
EMA(5) und EMA(20)
-
Unterschied zwischen kurzen und langen EMAs
-
Realisierte Volatilität der letzten 10 Minuten
-
High-Low-Range der aktuellen Minute
-
Volumen-Z-Score über die letzten 30 Minuten
-
Volumen pro Trade
- Effektives News-Sentiment (letzte News, abgeschwächt je älter sie ist)
Wir erstellen für jede Minute fünf Zielwerte:
-
erwartete Preisänderung in 1 Minute
-
erwartete Preisänderung in 3 Minuten
-
erwartete Preisänderung in 5 Minuten
-
erwartete Preisänderung in 10 Minuten
-
erwartete Preisänderung in 15 Minuten
Ruft historische 1 Minuten-Kerzendaten für einen NASDAQ-100 (QQQ) von 2020-11-23 bis 2025-11-20 ab. Die erfassten Markdaten werden sowohl im Parquet-Format als auch CSV-Format unter nasdaq_trading_bot/data gespeichert.
Die Daten werden mit fester Endzeit geladen, um reproduzierbare Ergebnisse zu gewährleisten.
scripts/01_data_acquisition/fetch_nasdaq_index.py
| timestamp | open | high | low | close | volume | trade_count | vwap |
|---|---|---|---|---|---|---|---|
| 2020-11-23 09:00:00+00:00 | 282.40 | 282.40 | 282.39 | 282.40 | 2250.0 | 10.0 | 282.40 |
| 2020-11-23 09:01:00+00:00 | 282.38 | 282.38 | 282.33 | 282.35 | 1512.0 | 9.0 | 282.36 |
| 2020-11-23 09:02:00+00:00 | 282.39 | 282.39 | 282.33 | 282.33 | 437.0 | 6.0 | 282.36 |
| 2020-11-23 09:03:00+00:00 | 282.38 | 282.38 | 282.38 | 282.38 | 1203.0 | 6.0 | 282.38 |
| 2020-11-23 09:04:00+00:00 | 282.31 | 282.39 | 282.31 | 282.39 | 1184.0 | 4.0 | 282.33 |
| 2020-11-23 09:05:00+00:00 | 282.55 | 282.55 | 282.53 | 282.53 | 1185.0 | 6.0 | 282.53 |
| 2020-11-23 09:06:00+00:00 | 282.54 | 282.58 | 282.54 | 282.58 | 1147.0 | 8.0 | 282.54 |
| 2020-11-23 09:07:00+00:00 | 282.47 | 282.49 | 282.47 | 282.49 | 2600.0 | 6.0 | 282.47 |
| 2020-11-23 09:08:00+00:00 | 282.59 | 282.59 | 282.59 | 282.59 | 210.0 | 2.0 | 282.59 |
| 2020-11-23 09:10:00+00:00 | 282.57 | 282.61 | 282.57 | 282.61 | 900.0 | 4.0 | 282.60 |
scripts/01_data_acquisition/fetch_news.py
| id | headline | summary | author | created_at | updated_at | url | symbols | source |
|---|---|---|---|---|---|---|---|---|
| 48963075 | S&P And Nasdaq Move Higher After Hours Foll… | nan | Benzinga Newsdesk | 2025-11-19T21:24:34Z | 2025-11-19T21:24:35Z | https://www.benzinga.com/general/macro-news/... | ['QQQ','SPY'] | benzinga |
| 48961392 | AI Powerhouses Or Small-Cap Rebound? ETF… | Morgan Stanley's 7,800 S&P 500 cal… | Chandrima Sanyal | 2025-11-19T20:38:40Z | 2025-11-19T20:38:41Z | https://www.benzinga.com/etfs/broad-u-s-e… | ['AAPL','EQL','EQWL','IJR','IWM','MSFT','QQQ'] | benzinga |
| 48956738 | Tech Edges Up Ahead Of Nvidia's Earnings, Bi… | All eyes are on Nvidia Corp. (NASDAQ:NVDA)… | Piero Cingari | 2025-11-19T17:45:59Z | 2025-11-19T17:46:00Z | https://www.benzinga.com/news/25/11/489… | ['ACM','AMTM','AS','BRBR','BTC','BTCUSD'] | benzinga |
| 48944099 | Stock Market Today: Dow Jones, S&P 500 Fut… | Editor's note: The future prices of benchmar… | Rishabh Mishra | 2025-11-19T13:03:47Z | 2025-11-19T13:03:47Z | https://www.benzinga.com/markets/equities… | ['IBUD','BTCUSD','CEG','DASH','NVDA','QQQ'] | benzinga |
| 48925309 | How To Trade SPY, Top Tech Stocks Using T… | … | RIPS | 2025-11-19T15:09:28Z | 2025-11-19T13:23:18Z | https://www.benzinga.com/Opinion/25/11/489… | ['AAPL','GOOGL','META','MSFT','NVDA','QQQ'] | benzinga |
| 48943359 | Top Economist Warns Trump Tariffs Effectiv… | Yale Budget Lab: 2025 Trump tariffs hit poor… | Rishabh Mishra | 2025-11-19T08:49:17Z | 2025-11-19T08:49:18Z | https://www.benzinga.com/markets/economi… | ['QQQ','SPY'] | benzinga |
| 48936136 | Nvidia's Big Earnings Test: ETF Market Braces… | Nvidia's earnings could spark a record $… | Chandrima Sanyal | 2025-11-18T20:37:51Z | 2025-11-18T20:37:52Z | https://www.benzinga.com/etfs/25/11/489… | ['NVDA','QQQ','SPY','VOO'] | benzinga |
| 48932450 | Tech Stocks Drop, Pharma Gains As Sector R… | Wall Street endured another wave of selling… | Piero Cingari | 2025-11-18T18:15:12Z | 2025-11-18T15:11Z | https://www.benzinga.com/market… | ['AMGN','AMZN','BTCUSD','DECK','DIA','FC…'] | benzinga |
| 48930265 | Nvidia Sneezed, All ETFs Shivered — Is This t… | Here's how ETFs are positioned as inves… | Chandrima Sanyal | 2025-11-18T17:06:17Z | 2025-11-18T17:06:18Z | https://www.benzinga.com/etfs/sectors-etfs… | ['BUG','CIBR','GOOGL','IGV','META','MSFT','…'] | benzinga |
| 48929811 | Nvidia Earnings Will Determine Market Directio… | Key Earnings Data | The Arora Report | 2025-11-18T15:59:41Z | 2025-11-18T15:59:42Z | https://www.benzinga.com/market… | ['AAPL','AMZN','BTCUSD','GLD','GOOG','HD…'] | benzinga |
| 48926431 | Cloudflare Stumbled — And Tech Stocks Exte… | Cloudflare outage hit major platforms and tec… | Piero Cingari | 2025-11-18T15:28:09Z | 2025-11-18T15:28:09Z | https://www.benzinga.com/news/25/11/489… | ['AIQ','ALAB','AMD','AMZN','APP','ARM','CL…'] | benzinga |
| 48918136 | Stock Market Today: Dow Jones, S&P 500, Na… | Editor's note: The future prices of benchm… | Rishabh Mishra | 2025-11-18T13:27:46Z | 2025-11-18T13:28:09Z | https://www.benzinga.com/markets/equities… | ['AVTR','AXTA','BTCUSD','HD','HP','MOH',…] | benzinga |
| 48916726 | Fed's Waller Backs Rate Cut In December Amid… | Fed's Waller supports a December rate c… | Rishabh Mishra | 2025-11-18T03:23:08Z | 2025-11-18T03:23:09Z | https://www.benzinga.com/markets/macro-e… | ['DIA','NVDA','QQQ','SPY'] | benzinga |
| 48970509 | Nvidia Q3 Preview: Analysts Predict Beat And … | Nvidia's Q3 earnings on Wednesday repr… | Chris Katje | 2025-11-17T19:08:09Z | 2025-11-17T19:08:10Z | https://www.benzinga.com/trading-ideas/… | ['DIA','NVDA','QQQ','SPY'] | benzinga |
| 48905126 | Alphabet Rallies To Record Highs, Bitcoin F… | Wall Street kicked off the new week on a flat n… | Piero Cingari | 2025-11-17T17:40:53Z | 2025-11-17T17:40:54Z | https://www.benzinga.com/markets/equities… | ['ALB','BTCUSD','CNC','COIN','DELL','DIA','…'] | benzinga |
| 48936057 | Dip Buyers Save The Stock Market; Hindenbur… | Dip Buyers Save The Market | The Arora Report | 2025-11-17T16:54:55Z | 2025-11-17T16:54:55Z | https://www.benzinga.com/etfs/d… | ['AAPL','AMZN','APLD','BRK','BTCUSD','GLD…'] | benzinga |
| 48930233 | US ETF Inflows Hit Record Pace—VOO, SPY,… | VOO, SPY and QQQ are driving record U.S. ET… | Chandrima Sanyal | 2025-11-17T16:41:43Z | 2025-11-17T16:41:43Z | https://www.benzinga.com/etfs/broad-u-s-e… | ['AGG','BND','GLD','GOVT','IBIT','IEF','QQQ…'] | benzinga |
| 48931843 | Stock Market Today: Dow, Nasdaq Futures Ri… | Editor’s Note: The future prices of benchm… | Rishabh Mishra | 2025-11-17T13:36:33Z | 2025-11-17T16:31:43Z | https://www.benzinga.com/Opinion/25/11/489… | ['BA','BRK','BTCUSD','DELL','GOOG','QQQ'] | benzinga |
| 48987619 | How To Trade SPY, Top Tech Stocks Using T… | … | RIPS | 2025-11-17T13:35:08Z | 2025-11-17T13:35:08Z | https://www.benzinga.com/etfs/sectors/… | ['AAPL','GOOGL','META','MSFT','NVDA','QQQ'] | benzinga |
| 48982486 | Howard Marks Draws Parallels Between AI Bo… | Legendary investor Howard Marks warns of p… | Rishabh Mishra | 2025-11-17T12:10:47Z | 2025-11-17T12:10:48Z | https://www.benzinga.com/market… | ['FDN','FTEC','IGM','IXN','IVV','MAGS','QQQ…'] | benzinga |
| 48920708 | Paul Singer's Elliott Targets Gold, Consumer S… | Paul Singer's Elliott Investment Managem… | Rishabh Mishra | 2025-11-17T09:53:23Z | 2025-11-17T09:53:23Z | https://www.benzinga.com/markets/hedg… | ['GDX','LBRDK','QQQ','SMH','SPY','WDC','X…'] | benzinga |
Ruft historische 1-Minuten-Kerzendaten für NASDAQ-100 (QQQ) über die Alpaca Data API ab. Die Daten werden im Parquet- und CSV-Format unter nasdaq_trading_bot/data gespeichert.
- Endpoint:
https://data.alpaca.markets/v2/stocks/bars - Dokumentation: Alpaca Market Data API Docs
- Datenquelle: Alpaca Market Data API (v2)
- Zeitraum: 2020-11-23 bis 2025-11-20
- Symbol: QQQ (Invesco QQQ Trust), NDX (Nasdaq-100 Index)
- Zeitraum: 1 Minute
- Kursanpassung: Alle Anpassungen (Splits, Dividenden)
- Ausgabe: Parquet- und CSV-Dateien mit OHLCV-Daten
- Paginierung: Automatische Handhabung der API-Paginierung für große Datensätze
| Parameter | Typ | Beschreibung |
|---|---|---|
symbol_or_symbols |
string | Abgefragtes Symbol, z. B. "QQQ" |
timeframe |
TimeFrame | Zeitintervall, z. B. TimeFrame.Minute |
adjustment |
enum | Kursanpassung (Adjustment.ALL) |
start |
datetime | Startzeitpunkt (START_DATE) |
end |
datetime | Endzeitpunkt (END_DATE) |
| Spalte | Beschreibung |
|---|---|
timestamp |
Zeitstempel der Kerze (z. B. 1min), inkl. Zeitzone (ISO-Format). |
open |
Eröffnungspreis der Periode. |
high |
Höchster Preis der Periode. |
low |
Tiefster Preis der Periode. |
close |
Schlusskurs der Periode. |
volume |
Gehandeltes Volumen innerhalb der Periode. |
trade_count |
Anzahl der Trades in dieser Periode. |
vwap |
Volume Weighted Average Price – volumengewichteter Durchschnittspreis. |
Ruft historische Nachrichtenartikel für NASDAQ-bezogene Symbole (QQQ, NDX) über die Alpaca Data API ab. Es ist darauf ausgelegt, Daten der letzten 5 Jahre zu sammeln und in einer CSV-Datei unter nasdaq_trading_bot/data zu speichern.
- Endpoint:
GET /v1beta1/news - Dokumentation: Alpaca News API Docs
- Datenquelle: Alpaca News API (v1beta1)
- Zeitraum: Letzte 5 Jahre (dynamisch berechnet ab dem aktuellen Datum)
- Symbole: QQQ (Invesco QQQ Trust), NDX (Nasdaq-100 Index)
- Ausgabe: CSV-Datei mit relevanten Metadaten (Schlagzeile, Zusammenfassung, Autor, Zeitstempel, URL)
- Bereinigung: Entfernen der sympol-Spalte
- Timezone: US/Eastern
| Parameter | Standardwert | Beschreibung |
|---|---|---|
start |
5 Jahre vor Enddatum | Startdatum für die Datenabfrage |
end |
Aktuelles Datum | Enddatum für die Datenabfrage |
symbols |
QQQ, NDX | Zu ladende Symbole / Assets |
limit |
50 | Anzahl der Artikel/Bars pro Anfrage |
sort |
DESC | Sortierreihenfolge (neueste zuerst) |
| Spalte | Beschreibung |
|---|---|
id |
Eindeutige ID des Artikels |
headline |
Titel des Nachrichtenartikels |
summary |
Kurze Zusammenfassung des Inhalts |
author |
Autor oder Quelle des Artikels |
created_at |
Erstellungsdatum und -uhrzeit (ISO 8601 Format) |
updated_at |
Datum und Uhrzeit der letzten Aktualisierung |
url |
Link zum vollständigen Artikel |
symbols |
Liste der zugehörigen Tickersymbole |
source |
Quelle |
Zeigt den gleitenden Durchschnitt des Preises zur Trenderkennung.

Allgemeine Analyse der Verteilung von Datenpunkten.

Das Histogramm verdeutlicht, in welchen Preisbereichen sich die Kurse am häufigsten bewegt haben. Die meisten Werte liegen in einem Cluster zwischen etwa 300 und 400 USD, während höhere Preisbereiche seltener auftreten. Eine solche Verteilung hilft dabei, typische Preisniveaus zu erkennen und einzuschätzen, ob aktuelle Kurse eher günstig oder teuer im historischen Kontext sind.
Entwicklung des Handelsvolumens über den betrachteten Zeitraum.

In der dritten Grafik wird das tägliche Handelsvolumen dargestellt. Hohe Ausschläge deuten auf besondere Marktereignisse hin, etwa Unternehmensmeldungen, wirtschaftliche Ereignisse oder Phasen erhöhter Marktvolatilität. Das Volumen ist ein wichtiger Indikator, da starke Kursbewegungen nur dann nachhaltig sind, wenn sie von erhöhtem Handelsvolumen begleitet werden.
Übersicht der Eröffnungspreise auf Wochenbasis.

Die durchschnittlichen Open-Wochenpreise helfen dir, den echten, übergeordneten Trend zu erkennen. Sie bieten eine klare, ruhige Sicht auf die Marktentwicklung und sind damit ein wichtiges Werkzeug, um langfristige Entscheidungen fundiert treffen zu können.
Diese Darstellung kombiniert jede News-Meldung mit ihrem FinBERT-Sentiment-Score (−1 bis +1). Dadurch lassen sich Artikel eindeutig als negativ, neutral oder positiv kategorisieren. Diese Basis dient für alle folgenden Event-Studien.
Detaillierte Verteilung der Sentiment-Scores über den Datensatz.

Die Verteilung zeigt, dass der Großteil der Meldungen neutral ist, während positive und negative News ungefähr gleich häufig auftreten. Dadurch entsteht eine ausgewogene Sentimentbasis. Diese Struktur reduziert Bias in späteren Analysen.
Analyse der Preisentwicklung in Abhängigkeit zu News-Erscheinungen

Positive News erzeugen nach Veröffentlichung deutliche Preissteigerungen, während negative News mit fallenden Preisen einhergehen. Neutrale News führen kaum zu Marktbewegungen. Das bestätigt, dass Sentiment ein signifikanter kurzfristiger Preistreiber ist.
Untersuchung der Anzahl der Trades in Abhängigkeit zu News-Erscheinungen

Zum Zeitpunkt einer News steigt die Anzahl der Trades stark an – unabhängig vom Sentiment. Der Spike beginnt wenige Minuten vor dem offiziellen News-Timestamp, was auf eine leichte Verzögerung hindeutet. Insgesamt lösen News gesteigerte Marktaktivität aus.
Analyse des Handelsvolumens im Kontext von News-Erscheinungen.

Das Handelsvolumen steigt unmittelbar bei News-Ereignissen deutlich an. Positive und neutrale News halten das Volumen länger erhöht, während negative News schneller abfallen. Damit bestätigt auch das Volumen die starke Marktwirkung von News.
scripts/03_pre_split_prep/main.py
scripts/03_pre_split_prep/features.py
scripts/03_pre_split_prep/target.py
scripts/03_pre_split_prep/plot_features.py
| Zeitraum | count | mean | std | min | 25% | 50% | 75% | max |
|---|---|---|---|---|---|---|---|---|
| target_return_1m | 486479.00 | 0.00017 | 0.06357 | -5.3886 | -0.02075 | 0.00000 | 0.02143 | 4.96575 |
| target_return_3m | 486477.00 | 0.00013 | 0.08602 | -5.26278 | -0.03033 | 0.00114 | 0.03138 | 4.93769 |
| target_return_5m | 486475.00 | 0.00007 | 0.10384 | -5.14762 | -0.03720 | 0.00154 | 0.03869 | 4.90101 |
| target_return_10m | 486470.00 | -0.00005 | 0.13864 | -4.80544 | -0.05034 | 0.00238 | 0.05257 | 4.80331 |
| target_return_15m | 486465.00 | -0.00014 | 0.16654 | -4.62533 | -0.06072 | 0.00320 | 0.06379 | 4.67257 |
| Feature | count | mean | std | min | 25% | 50% | 75% | max |
|---|---|---|---|---|---|---|---|---|
simple_return_1m |
486480.00 | 0.00000 | 0.00070 | -0.00024 | 0.00000 | 0.00000 | 0.00025 | 0.04786 |
simple_return_5m |
486480.00 | 0.00001 | 0.00156 | -0.00054 | -0.00005 | 0.00003 | 0.00057 | 0.05110 |
simple_return_15m |
486480.00 | 0.00003 | 0.00267 | -0.00093 | -0.00034 | 0.00007 | 0.00102 | 0.05663 |
ema_5 |
486480.00 | 392.45727 | 94.23085 | 314.83516 | 364.67160 | 417.80685 | 470.06885 | 636.74885 |
ema_20 |
486480.00 | 392.45241 | 94.22688 | 314.37497 | 364.67204 | 417.80685 | 470.09872 | 636.30975 |
volume |
486480.00 | 114474.23159 | 133298.99977 | 2909.00000 | 45274.00000 | 77124.50000 | 136260.00000 | 10123195.00000 |
volume_zscore_30m |
486480.00 | 0.10060 | 1.91014 | -3.24610 | -0.64474 | -0.28696 | 0.28738 | 229.77431 |
realized_volatility |
486480.00 | 0.00009 | 0.00008 | 0.00004 | 0.00007 | 0.00007 | 0.00010 | 0.00208 |
avg_volume_per_trade |
486480.00 | 112.34832 | 120.59268 | 78.47345 | 97.43059 | 110.00000 | 118.09192 | 17032.50185 |
hl_span |
486480.00 | 0.26453 | 0.26014 | 0.14000 | 0.21000 | 0.24000 | 0.33000 | 13.96000 |
last_news_sentiment |
486480.00 | 0.08617 | 0.63225 | -0.93792 | -0.46068 | 0.01083 | 0.81990 | 0.92925 |
news_age_minutes |
486480.00 | 1013.50681 | 3157.58115 | 0.00000 | 56.81667 | 142.65000 | 379.77083 | 31845.00000 |
effective_sentiment_t |
486480.00 | 0.07577 | 0.51398 | -0.93782 | -0.13458 | 0.00625 | 0.60686 | 0.92680 |
Data Split Script
scripts/04_split_data/split_data.py
scripts/05_post_split_prep/post_split_prep.py
Das erste Modell, das wir testen ist ein klassisches Feedforward-Neural-Network (Multi Layer Perceptron). Der Fokus liegt darauf zu evaluieren, wie weit man kurzfristige Preisbewegungen des QQQ allein aus den Features vorhersagen kann, ohne zeitliche Sequenzen zu nutzen.
scripts/06_model_training/feed_forward.py
-
Hidden1: 1024 Neuronen
-
Hidden2: 1024 Neuronen
-
Hidden3: 512 Neuronen
-
Hidden4: 512 Neuronen
-
Hidden5: 256 Neuronen
-
Aktivierung: (Leaky)ReLU
-
Regulierung: Dropout (p = 0.1)
-
Optimizer: AdamW
-
Loss: MSE
Für die ersten 200 Samples folgt die Vorhersage für 3 und 5 Minuten im Großen und Ganzen der tatsächlichen Dynamik, ist aber glatter und leicht phasenverschoben. Bei 10 und 15 Minuten sind die Abweichungen deutlich größer; das Modell verpasst Spitzen und liefert geringere Amplituden.
Über das gesamte Testset zeigt das Modell für die vielen kleinen Bewegungen eine gute Übereinstimmung zwischen Actual und Predicted, während extreme Ausschläge (große Spikes) nur teilweise erfasst werden. Das bedeutet, dass das Modell die typischen, häufigen Marktbewegungen gut abbildet, aber seltene, starke Bewegungen schwer vorhersagt.
Der Trainingsverlust fällt stetig, und der Validierungsverlust sinkt anfänglich und erreicht ein Plateau mit leichten Schwankungen. Es besteht kein klares Overfitting, vielmehr scheint das Modell an seiner Kapazitätsgrenze oder an fehlenden Informationen zu leiden.
Das zweite Modell, das wir getestet haben, ist ein rekurrentes neuronales Netzwerk (RNN). Wir wollen versuchen, ob die Fähigkeit von RNNs, zeitliche Abhängigkeiten zu erfassen, zu besseren Vorhersagen der kurzfristigen Preisbewegungen von QQQ führt.
scripts/06_model_training/rnn.py
Das Modell liefert insgesamt gute Ergebnisse im Vergleich zu einem einfachen Feedforward-Netzwerk. Es kann die kurzfristigen Preisbewegungen für 1, 3 und 5 Minuten relativ genau vorhersagen. Allerdings zeigt es Schwächen bei längeren Zeiträumen von 10 und 15 Minuten. Dies deutet darauf hin, dass das RNN möglicherweise nicht genügend Kapazität besitzt, um komplexere Muster zu erfassen, die für längere Vorhersagehorizonte erforderlich sind.
Nachdem wir Feedforward- und einfache RNN-Modelle getestet haben, sind wir zu Long Short-Term Memory (LSTM) Netzwerken übergegangen. LSTMs sind besonders gut geeignet, langfristige Abhängigkeiten in Zeitreihendaten zu modellieren. Unser Ziel ist es, diese Fähigkeit zu nutzen, um genauere Vorhersagen der kurzfristigen Preisbewegungen von QQQ zu erzielen.
Wir haben mehrere Varianten von LSTM-Modellen getestet, um die bestmögliche Performance zu erreichen. Dabei wurden verschiedene Architekturen und Hyperparameter evaluiert, um eine optimale Balance zwischen Modellkomplexität und Generalisierungsfähigkeit zu finden. Variiert wurden unter anderem:
-
Anzahl der Layers
-
Hidden Size
-
Dropout-Raten
-
Batch Size
-
Learning Rate
-
Sequenzlänge
-
Optimizer
Unten sind die besten Ergebnisse dargestellt.
scripts/06_model_training/lstm.py
Dieses Modell wurde mit einer Sequenzlänge von 20 und einer Hidden Size von 256 trainiert. Die Vorhersagen für 10 und 15 Minuten zeigen deutliches Rauschen, was darauf hinweist, dass das Modell nicht genügend Kapazität besitzt, um längere Abhängigkeiten zuverlässig zu erfassen.
Anschließend haben wir die Modellkapazität erhöht, indem wir die Sequenzlänge auf 50 und die Hidden Size auf 384 gesetzt haben. Dadurch kann das Modell längere Muster erkennen und liefert deutlich bessere Vorhersagen für alle Zeiträume. Oben ist ein Beispiel mit 200 Datenpunkten dargestellt.
Hier wurde dasselbe Modell wie zuvor verwendet, jedoch mit 1000 Datenpunkten trainiert. Durch die größere Datenmenge verbessert sich die Performance weiter: Die Vorhersagen werden glatter und insgesamt präziser, insbesondere bei den längeren Zeiträumen von 10 und 15 Minuten., aber mit 1000 Datenpunkten trainiert. Das Modell zeigt eine noch bessere Performance, da es mehr Daten zum Lernen hat. Die Vorhersagen sind glatter und genauer, insbesondere für die längeren Zeiträume von 10 und 15 Minuten.
- Linear Regression versucht, eine lineare Beziehung zwischen deinen Features X und dem Target y zu finden
scripts/07_deployment/deploy_model.py
scripts/07_deployment/deploy_model.py
- Entry Points:
- Long-only Strategie
- Entry-Entscheidung wird am Ende der aktuellen Minute getroffen.
- Ausführung erfolgt immer am Open der nächsten Minute (Open[i+1]).
- Entry-Bedingung:
- Kombiniertes Signal aus Modellvorhersagen (pred_3m und pred_5m) überschreitet einen definierten Threshold.
- Zusätzlich muss die 3-Minuten-Prognose positiv sein.
- Positionsgröße basiert auf einem festen Cash-Betrag pro Trade.
- Exit Points
- Eine offene Position wird am Open der nächsten Minute geschlossen, wenn eine der folgenden Bedingungen erfüllt ist:
-
Stop-Loss / Take-Profit
- Stop-Loss: −0.4 %
- Take-Profit: +0.7 %
(Prüfung erfolgt auf Basis des Open-Preises der nächsten Minute)
-
Max Hold: Position wird automatisch geschlossen, wenn die maximale Haltedauer erreicht ist.
-
SignalFlip / 3mFlip: nach einer Mindesthaltezeit wird die Position geschlossen, wenn das kombinierte Signal negativ wird (SignalFlip), oder die 3-Minuten-Prognose negativ wird (3mFlip).
-
- Eine offene Position wird am Open der nächsten Minute geschlossen, wenn eine der folgenden Bedingungen erfüllt ist:
scripts/08_backtesting/backtest.py
scripts/08_backtesting/backtest_trade.py
- Overall Performance:
- Total Trades: 58
- Win Rate: 50% (29 Gewinner, 29 Verlierer)
- Total PnL: 1.80
- Final Equity: 100001.80 (Startkapital: 100,000)
scripts/08_backtesting/backtest.py
scripts/08_backtesting/backtest_trade.py
- Overall Performance:
- Total Trades: 4
- Win Rate: 25% (1 Gewinner, 3 Verlierer)
- Total PnL: −35.70
- Final Equity: 99,964.30 (Startkapital: 100,000)




















