Algobot Tagebuch | Releases
Das Logbuch wird von oben nach unten geführt, so dass die aktuellsten Einträge immer oben stehen. Das ganze System ist als Machbarkeitsstudie und als Leidenschaft zu sehen zum Thema Algorithmisches Verständnis des Marktes. Ich dokumentiere hier nur meinen Fortschritt und Erkenntnisse. Es geht dabei gar nicht um die Ergebnisse selbst, sondern sich selbst nur einmal klar zu schreiben und die eigenen Gedanken etwas zu strukturieren. Ich selbst bin hauptberuflich als PO tätig und daher kein Hard-Core-Entwickler. Ich habe aber Spaß daran, die Sachen für mich zum Laufen zu bringen und meine Dev-Skills nicht komplett einrosten zu lassen.
31. Mai 2025
Reihe von Einzeloptimierungen
- Infrastruktur: Automatische Zertifikaterneuerung für alle Domänen
- News-Bereitstellung: Robustheit des Setups ausgebaut
- Algotrader-Website: Codeblöcke korrekt darstellen
30. Mai 2025
News: Youtube-Videos nun auch mit TL;DR, Topic und Source-URL

29. Mai 2025
News mit KI generierten Topics
23. Mai 2025
17. Mai 2025
Neugestaltung des Webauftritts für den ML-Algotrader
Die bisherige Abbildung als WIKI wird damit vollständig ersetzt. Wesentliche Aspekte bei der Umsetzung waren:
- Aufbereitung der bisherigen Contentbasis inkl. Reorganisation, KI-gestützte Bildanalyse und Renaming
- Aufbereitung der Inhalte in einem für KI nutzbaren Format und Zugriff (Markdown)
- Grundstruktur aufbauen mit Blog, Markt-Sentiment (Faktor-Map), News und Tagebuch-Releases
- Releases neu strukturieren und modularisieren, auch wenn der Anzeige-Charakter als eine Tagebuch-Seite bewusst erhalten bleiben soll.
- Implementierung eines Security-Konzepts

15. Mai 2025
Inaktive Strategien können nun auch eingeblendet werden für einen Abgleich
Risk-Mgmt für Titel sind nun ebenfalls wieder einblendbar
13. Mai 2025
Performance-Bilanz auf Staging-Umgebung
Das Live-Konto unterscheidet sich hiervon in der Bilanz, da nicht alle Strategien angewendet worden sind und ein anderes Startvolumen genutzt wurde.

> Ermittle alle Git-Changes ab dem 06.05.2025 und erstelle unter \\docs eine MD-Datei die fachliche Anpassungen und alle neuen Features beschreibt in Deutsch!
Hier das Ergebnis aus dem Agenten-Coding-Assistenten:
Trade-Gruppierung nach Symbol-Option (6. Mai)
- Hinzugefügte Möglichkeit, zwischen zwei Gruppierungsmodi zu wechseln:
- Ursprünglicher Modus: Trades gruppiert nach Symbol + Kommentar (z.B. "EUR/USD:Strategy1")
- Neuer Modus: Trades gruppiert nur nach Symbol (z.B. "EUR/USD")
- Implementierung einer Checkbox mit der Bezeichnung "Nach Symbol gruppieren" in der Benutzeroberfläche
- Benutzereinstellung wird im localStorage gespeichert und bleibt zwischen Sitzungen erhalten
- Zu den Vorteilen gehören vereinfachte Analyse nach Handelssymbol und flexiblere Ansichten
Verbesserte Benachrichtigungen bei Trade-Schließung
- Verbessertes Feedback beim Schließen von Trades mit detaillierten Statusmeldungen
- Hinzugefügte verschiedene Benachrichtigungstypen basierend auf dem Trade-Schließungsstatus:
- Erfolg: Bestätigung mit Deal-ID und Status
- Abgelehnt: Warnung mit Ablehnungsgrund
- Fehler: Detaillierte Fehlerinformationen
- Erhöhter Benachrichtigungstimer für bessere Lesbarkeit
- Verbesserte Fehlerbehandlung mit detaillierteren Fehlermeldungen
Währungscode in Trade-Informationen
- Hinzugefügter Währungscode zu Trade-Informationen für vollständigere Trade-Daten, insb. für das US-Asset-Trading
- Verbessertes Logging für Trade-Schließungsoperationen
- Verbesserte Datenkonsistenz durch Aktualisierung geschlossener Trades nach der Bearbeitung der Trade-Schließung
Verbesserung der Stop-Loss-Berechnung
- Korrigierte Stop-Loss-Berechnungen, um contractSize für genaue monetäre Werte einzubeziehen
- Gewährleistet angemessenes Risikomanagement mit korrekten Finanzberechnungen
Neustrukturierung der News-Komponenten
- Refaktorierte News-Komponenten mit Vue 3 Composables für bessere Code-Organisation
- Implementierte modulare Architektur mit separaten Komponenten für:
- News-Header
- KI-Zusammenfassungsberichte
- News-Toolbar
- Newsfeed-Liste
- Verbesserte Zustandsverwaltung mit dedizierten Composables
Verwaltung des Lesestatus
- Hinzugefügter Lesestatus-Toggle über Kreissymbol im Newsfeed
- Implementierte "Als gelesen markieren"-Funktionalität mit Einklappverhalten
- Verbesserte Layout des News-Item-Headers
- Hinzugefügte Filtermöglichkeit für ungelesene Nachrichten
KI-Zusammenfassungs-Toggle
- Hinzugefügter Wechsel zwischen KI-Zusammenfassungen und Originalinhalt in der News-Ansicht
- Implementierte Zähler für ungelesene Inhalte für bessere Inhaltsverfolgung
- Entfernte Inline-Schriftgröße aus GPT-Zusammenfassung für sauberere Darstellung
- Verbesserte Logik für die Anwendung der Schriftgröße
Scroll-zu-News-Funktionalität
- Hinzugefügte Scroll-zu-News-Funktionalität für einfachere Navigation auf der Briefing-Seite
- Implementierter benutzerdefinierter Button in der PageHeader-Komponente
- Angepasstes Scrollverhalten, um den News-Bereich am Anfang auszurichten
Verbesserungen des responsiven Layouts
- Verbessertes responsives Layout für Strategiebericht-Filter
- Verbesserte Responsivität der News-Komponente
- Verbesserte Responsivität des Newsfeed-Headers mit Bootstrap-Grid-Layout
- Angepasste Filterbreiten und Beschriftungen für verbessertes Layout im Strategiebericht
Theme- und Style-Updates
- Aktualisierte UI-Komponenten zur Verwendung von Theme-Variablen für Konsistenz
- Verbesserte Responsivität in der gesamten Anwendung
- Behobene Schriftgrößenprobleme
- Entferntes ungenutztes Suchfeld und angepasste Sichtbarkeit von Header-Elementen für ein übersichtlicheres Layout
Fehlerbehebungen
- Behobene Schriftgrößenänderungen (10. Mai)
- Behobenes Problem mit contractSize in Stop-Loss-Berechnungen (6. Mai)
- Angepasstes Scrollverhalten für korrekte Ausrichtung des News-Bereichs (10. Mai)
5. Mai 2025
Bookmark und Gelesen-Filter sowie Font-Size-Anpassungen für Mobil-Nutzung
News nun mit Read-State- und Bookmark-Funktion
3. Mai 2025
Youtube-Channels automatisiert abonnieren (UI statt CLI)
Youtube-Video-Transcripts

Damit werden dann schrittweise durch KI über eine Queue die Infos aufbereitet und als News ausgewertet. Es ist praktisch nicht möglich, alle diese News und Kanäle vollständig 1:1 als Video zu schauen. Ich nutze deutlich lieber die Textform und kann diese so auch für die KI nutzbar machen, ebenso für spätere Einzelanalysen und Suchalgorithmen.

Profit-Curves v2
Stopp-Risiko-Positions-Management mit Dynamisierung und Risiko-Pyramiden
- Erweitert das TradingSetting mit konfigurierbaren Parametern für drei Gewinnzonen mit progressiv engeren Stopps
- Verwendet konfigurierbare Faktoren anstelle von hartcodierten Werten
- Implementiert eine neue Methode zur Analyse von Positionen auf Symbol-Ebene
- Wendet progressive Stopp-Anpassungen basierend auf der Gewinnrangfolge an
1. Mai 2025
Profit-Curves
Optimierung des Rate-Limiter sowohl in der API als in der Bridge
Symbolbasierte Positionsanalyse
Aktualisierung der genutzten LLMs
27. April 2025
Faktor-Map nun unter FMP und IG - Setup reaktiviert
Risiko-Management-Modul reaktiviert nach Umstellung
25. April 2025
SSE-Live-Tracking auf Basis von Backend-Prozessen
22. April 2025
Zwischenbilanz Performance (Stage-Umgebung)

21. April 2025
Performance und Zwischenbilanz nach Umstellung auf IG als Broker
Entwicklungs-Umgebung
GitHub-CoPilot-Agents ist nicht gleichermaßen flexibel und erlaubt nicht diese starken individualisierten Prompts und Rule-Settings, so dass ich das System aktuell nicht mehr benutze. In der Konsequenz ist die Subscription auch wieder gecancelt.
24. März 2025
Economic-Calendar-Updates & News
8. März 2025
Umstellungen auf IG.COM für das Order-Management abgeschlossen
Eine kleine Herausforderung war das doch sehr restriktive Rate-Limit seitens IG.COM zu handeln insb. bei übergreifender Nutzung eines Accounts. Die API-Requests erfolgen ja sowohl seitens der Order-Bridge, als auch in der API für die UI. Die Arbeiten sind nun aber abgeschlossen.
Fetch "IG-History-Trades"
4. März 2025
Erste Anbindungen für IG.COM
- Fetch-Trades (History) mit einem Delta-Abgleich zum letzten Fetch-Zeitpunkt mit Instrument-Mapping zwischen XTB und IG-Epics/Symbolen
- Fetch-Pricehistory (Chartdata) ebenfalls mit einem Delta-Abgleich für historische automatische Berechnungen wie Vola/Risk-Indikatoren.
Es fehlt jetzt als nächster wichtiger Schritt noch das Order-Management, d.h. die Übernahme von Trades inkl. Stopp-Management, Trailing-Stopps, Order-Platzierung, Order-Löschungen. Dies ist der wichtigste Baustein, damit IG hier auch im Algobot-Setup sauber funktionieren kann.
Finale Aufkündigung der xAPI seitens XTB
Vorteile nach einigen Tagen in der Arbeit mit IG:
- Tradingview und IG lassen sich nativ miteinander verbinden und Trades daher auch dort sehen und verändern
- Die Anzahl der handelbaren Titel unterscheidet sich erheblich (ca. 17.000+ vs. 5.300+). Hiermit ist das handelbare Universum nochmals größer als bei KO-Zertifikaten und OTC-Titeln
2. März 2025
Komplette Umstellung und Umzug der Server-Umgebung
Anbindung IG.com
26. Februar 2025
XTB kündigt xAPI-Schnittstelle und verschenkt einen riesigen USP
Diese Meldung habe ich am 18.02. erhalten von XTB und zwingt mich nach aktuellem Stand, mich neu zu orientieren, da der Algobot erfolgreich funktioniert, aber eben auch eine Schnittstelle zum Broker benötigt, um die Portfolio, Trade-Positions-Daten auszulesen und vor allem die Trades platzieren zu können.
Schaut man sich den USP an, den XTB hier leider verschenkt und vor allem mich nach 2 Jahren auch zwingt in kurzer Zeit mich umzustellen, ist es leider sehr schade und ich hoffe noch auf einen konstruktiven Dialog.
Feature und/oder Eigenschaft | xAPI von XTB | API von IG |
Quotes und Nutzungsrechte | Deutlich kleinere Limitierungen, die auch für komplexere Setups wie beim Algobot genutzt werden können (Simultanes Tradings auf Demo-Konten für das Staging)
| - Per-app non-trading requests per minute: 60
|
Endpunkt: News | [http://developers.xstore.pro/documentation/#getNews](http://developers.xstore.pro/documentation/#getNews) | NEIN und muss daher sekundär angebunden werden mit eigenen Kosten |
Endpunkt: Wirtschaftskalender | http://developers.xstore.pro/documentation/#getCalendar | NEIN und muss daher sekundär angebunden werden mit eigenen Kosten |
Performance | Sehr hohe Performance mit <<50ms Antwortzeiten häufig 10ms | Noch nicht final bewertet, aber in ersten Postman-Tests deutlich langsamer |
Nutzung verschiedener Demo-Konten auch über die API | JA | JA |
Streaming-API-Limits | 50 simultaneous connections | 40 concurrent subscriptions |
Letztes Update der API | 08/2017 [http://developers.xstore.pro/api/changelog/2.5.0](http://developers.xstore.pro/api/changelog/2.5.0) | |
Stabilität | In mehr als 2 Jahren keinerlei Performance, Quality-Issues | Noch nicht bewertbar |
Playground | [https://playground.xapi.pro/login](https://playground.xapi.pro/login) | [https://labs.ig.com/sample-apps/api-rest-companion-release/index.html](https://labs.ig.com/sample-apps/api-rest-companion-release/index.html) |
Das Umschreiben ist nach ersten API-Abgleich möglich, zwingt mich aber tatsächlich komplett den Broker zu wechseln. XTB hat neben der API eine Reihe von Vorteilen, die ich jetzt leider aufgeben muss.
PS: Hintergrund ist, dass die xAPI-Schnittstelle zu wenig genutzt wurde! Ich würde es gut finden, hier eher Partnerprogramme auszubauen und Entwickler zu motivieren, Beispiellösung auf Basis der API umzusetzen, statt im KI-Zeitalter Datenschnittstellen zu deaktivieren.
15. Februar 2025
Umstieg von Jetbrains IntelliJ auf VSC
- Debug-Sessions sowohl für Backend, als auch Frontend-Komponenten funktionieren nun inkl. Debug-Console direkt in der IDE
- AI-Agenten-Lösungen wie GitHub-CoPilot-Agents, RooCode, Cline sind ohne Einschränkungen nutzbar, ebenso wie alle Kernfunktionen von GitHub-CoPilot (Completations, Edits, Agents, Diffs)
- GitHub und GitLab-Plugins gehen deutlich weiter als die Alternativen in IntelliJ
- VSC Themes, Product, File-Icon-Themes erlauben eine charmante und weitgehende individualisierte Umgebung
- Nach etwas Eingewöhnung gefallen die Plugin-Alternativen (sftp statt Deployment etc.)
12. Januar 2025
Aufbau eines AI-Risk-Managements

Nur die UI/Frontend-Seite sieht dann im Ergebnis so aus d.h. es wird die Marktsituation (editierbar) und der Risikomodus (editierbar) dargestellt. Als Zusatzinformationen erscheinen die Herleitung und die Volatilitätswerte in den zeitlichen Rahmen 15min, 30min und 60min. Die Anzeigen erfolgen dabei ohne Verzögerung im Frontend und werden aktuell alle 3h aktualisiert.


Ob dieses neue Setup wirklich ein Performance-Boost sein kann, wird sich herausstellen. Auch die Vorhersage-Qualität, die aktuell auf Basis der Faktor-Map, die letzten News und die Volatilitätswerte beruht, wird weiter optimiert werden müssen.
Als Experiment wird vorerst SimD2 auf AI-RiskMgmt umgestellt. Mal schauen ...
Aufbau einer API-Swagger-Dokumentation

30. Dezember 2024
Integration weiterer LLM-Provider in der API-Middleware zur Kostenoptimierung
Der Support ist sowohl aus Leistungs- als auch aus Kosten-Optimierungs-Gesichtspunkten sinnvoll.
Model | Input-Token-Kosten M/Token | Output-Token-Kosten M/Token | Anmerkungen zur Qualität News-Analyse | Anmerkungen zur Chart-Analyse |
Mistral Large 24.11 | 1.8€ | 5.4€ | 4 / 5 | 1 / 5 |
Claude 3.5 Sonnet | 3$ | 15$ | 4 / 5 | 4 / 5 |
Claude 3.5 Haiku | 0.8$ | 4$ | 3 / 5 | 2 / 5 |
GPT-4o-mini | 0.15$ | 0.6$ | 3 / 5 | 1 / 5 |
Gemini 2.0 Exp Flash | 0$ (temporär) | 0$ (temporär) | 5 / 5 | 4 / 5 |
Das Setup wurde daher konsequent von Claude 3.5 Sonnet auf Gemini 2.0 Exp umgestellt. Die aktuell knapp 100€ / Monat sind damit deutlich reduziert.
Automatische Auswertung der Success | Fail - Strategien
# Success PF>=1x & DD<5% & S>=0.06 & HR>20 & P>150 # Fail PF<1x | DD>=5% | S<0.06 | HR<=20Dabei stehen die Abkürzungen für:
- PF - Profit-Faktor
- DD - Drawdown
- S - Sharpe-Ratio
- HR - Hit-Rate
- P - Profit
17. November 2024
Performance-Optimierungen
AI-Predictions (einige Posts zuvor) sind dabei speziell berechnete Indikatoren, die mittels Chartdaten aus verschiedenen Zeitebenen, News und Faktoren-Map eine Ableitung für Short | Long | Wait - Positionierungen generieren. Die Indikatoren arbeiten eher auf der mittelfristigen Ebene im Trading-Sinne d.h. haben eine Verzögerung von 4h bei Trendwechseln auf Wochenebene.

Trade-Statistik mit Tagesauswertung
1. November 2024
Symbolslider mit Last-Strategie-Events
Symbolslider nun auch mit Tages-Abstands-Anzeige und %, Euro-Wertberechnung
12. Oktober 2024
Re-Setup AI-Prediction-Trades

Sum-Up der Absicherungen (Stopp-Level)
Stopp-Wert-Setzung manuell für alle Portfolio-Werte nachziehen

Stopp-Nutzung und automatische Setzung aufgrund der historischen Volatilität
- Symbol
- Timeframe
- CMD d.h. Short oder Long
- High-Volume und Default-Trade-Volume
Die Stoppwerte werden dabei auf Basis von historischen Chartkursdaten und Percentile-Werten berechnet. Eine weitere Dynamisierung mit aktuellsten Kursdaten-Mustern ist denkbar, aber macht die Nutzung eher komplizierter. Die berechneten Werte werden für alle "autoupdate" - Konstellationen d.h. dort wo ich es nicht explizit manuell steuern will, automatisch übernommen und gesetzt. Die Stoppwerte sind damit keine "Bauchwerte" mehr bzw. explorativ ermittelte Werte.

Absolute Stopp-Werte (ergänzend zu den Pip-Werten)

AI-Prediction-Strategie-Updates
3. Oktober 2024
28. September 2024
Entry-Level-Optimierungen durch Profit-Kurven-Betrachtungen
Es sind hierbei nur "Wetten" und Vergangenheitsbetrachtungen, trotzdem zeigen sie eindeutig, dass in Seitwärtsphasen ein justierter Wert einen enormen Unterschied in der Gesamtperformance im Portfolio macht. In diesem Beispiel sind mit einem Entry-Level von 29€ ein Vorsprung von 305€ gegenüber einem einfachen 0€ Entry-Level vorhanden!

21. September 2024
Notifications
Refactorings der Logs und Monitoring-Daten
Die Mirror-Log-Daten können damit nun zuverlässig und korrekt auch die Stopp-Changes und Trade-Stats zeigen.

1. September 2024
Upgrade der Compute-Power auf dem ML-Server
Neues ... | Bisheriges Setup | |
CPU | Intel(R) Xeon(R) E-2286G CPU @ 4.00GHz 12 cores | Intel(R) Xeon(R) CPU E3-1230 v3 @ 3.30GHz 8 cores |
Disk | 2x 1TB SSD | 2x 512GB SSD |
RAM | 64 GB | 32 GB |
Kleinere Korrekturen waren nach dem Upgrade notwendig:
- Abgleich zwischen XTB-Trades und internem Trading-Logbuch war gestört, da der Server auf UTC+0 eingestellt war und durch die 2h-Zeitverschiebung zu fehlerhaften Matches führte bzw. S/L-Positionen nicht automatisch korrigiert werden konnten.
31. August 2024
Erste echte KI basierte Strategie(n)

Dabei wird eine Erklärung erstellt, die manuell im Frontend nachzulesen ist. Entscheidend ist jedoch, dass nun automatische Trades in Long/Short-Richtung für alle relevanten Titel vorgenommen werden. Hierzu wird aktuell im Abstand von 1hx eine KI basierte Markteinschätzung erstellt. Die Analyse dient dann als Grundlage für Trades mit der Option auch in einer Seitwärtsbewegung kein Trade auszuführen.

Nun auch mit Reasoning für alle berechneten Werte:

Stopp-Kurs-Management mit KI
Performance-Statistiken nach Uhrzeit und Wochentag mit Aggregationsebene
Automatisierte Strategie-Metrik-Berechnungen
- Hit-Rate
- NetWin
- Profit-Faktor
- Sharpe-Ratio
- Maximaler Draw-Down

AI-Suggestions für alle Informations-Ebenen: Echtzeit-Trading-Coach
- Aktuelles Portfolio

- Durchgeführte Trades des Tages

- Chartbild
- Aktuelle Strategien

- Kalender-Events und Wirtschaftsdaten
26. August 2024
KI-Daily-Briefing-per-Mail
Sie sind ein KI-Assistent, der mit der Erstellung einer täglichen Handelszusammenfassung und der Generierung von Handelshinweisen beauftragt ist. Ihre Aufgabe besteht aus zwei Hauptteilen: der Analyse der Handelsdaten und der Erstellung von Handelshinweisen basierend auf einer Faktorkarte und einem Ereigniskalender. Verwenden Sie Markdown zur Formatierung, einschließlich Überschriften und Listen. Sie werden mit folgenden Eingabevariablen arbeiten: <TRADE_HISTORY> {{TRADE_HISTORY}} </TRADE_HISTORY> <TRADE_PORTFOLIO> {{TRADE_PORTFOLIO}} </TRADE_PORTFOLIO> <LATEST_FACTOR_MAP> {{LATEST_FACTOR_MAP}} </LATEST_FACTOR_MAP> <CALENDAR_LIST> {{CALENDAR_LIST}} </CALENDAR_LIST> Beachten Sie, dass CMD=0 immer eine Long-Position und CMD=1 eine Short-Position darstellt. Teil 1: Analyse der Handelsdaten 1. Analysieren Sie die Liste der abgeschlossenen Trades (TRADE_HISTORY) und die Liste der noch offenen Trades (TRADE_PORTFOLIO). Beide sind im JSON-Format. 2. Extrahieren Sie folgende Informationen aus jedem Trade: - Datum (verwenden Sie das Feld exit_time) - Symbol - Strategie - Handelsvolumen - Gewinn/Verlust - CMD d.h. die Art der Trades (Long, Short) 3. Berechnen Sie folgende Statistiken für den Tag: - Gesamtzahl der Trades - Gesamtgewinn/-verlust - Anzahl der gewinnbringenden Trades - Anzahl der verlustbringenden Trades - Gewinnquote (Prozentsatz der gewinnbringenden Trades) - Am häufigsten gehandeltes Symbol - Am häufigsten verwendete Strategie 4. Erstellen Sie eine Zusammenfassung im folgenden Format:markdown ## Tägliche Handelszusammenfassung
25. August 2024
Sharpe-Ratio, Sortino-Ratio, Max-Drawdown und Perf/Y
Max Margin-Level-Berechnungen und Statistiken
Dynamisches Nachladen von Nachrichten
Multi-Performance-Analyse
Manuelle Setzung von Trailing-Stopps und Initial-Stopps

23. August 2024
Trade-Darstellungen nun gruppiert nach Symbol
Delta-Abgleich vom P1-Konto zu anderen Simulationskonten

Abgeschlossen Trades auf der Briefing-Seite

News nun mit verschiedenen Quellen insb. Stockstreet, Handelsblatt, Bernecker
- Zugriff über Smartphone auf relevante Nachrichten-Quellen
- Faktor-Map nutzt die neuen verfügbaren Informationen zur Berechnung des aktuellen Markt-Score-Wertes
- Tageszusammenfassungen berücksichtigen ebenfalls die neuen Nachrichten-Formate
- Fun-Fact: Die Daily-Summary die als Mails versendet wird, berücksichtigt ebenfalls diese neuen Informationsquellen

Kalender-Darstellungen nun mit deutlicher Hervorhebung der tagesaktuellen "Ereignisse"
Langfuse-Integration ausgebaut
N8N-Workflows auf Langfuse und Bot-API umgestellt
- Zusammenfassung der relevanten Inhalte der Nachricht
- Klassifikation des Mailinhalts
- Relevanz-Score-Berechnung
- Für alle Trading-relevanten-Inhalte Übernahme der Inhalte auch in den Algobot-Nachrichten-Stream

Gesamtarchitektur v3
Performance-Optimierungen
Wechsel des Kontos führt nicht mehr zu einem Top-Scrolling
3. August 2024
Systematische Prompt-Optimierungen
> You are tasked with comparing and analyzing different outputs from various prompt libraries. Your goal is to create a step-by-step analysis and provide an overall evaluation, optimizing for accuracy, semantic proximity to the original information, and clarity. > > Here are the prompt outputs to analyze: > > <prompt\_outputs> > {{PROMPT\_OUTPUTS}} > </prompt\_outputs> > > Follow these steps to complete the task: > > 1\. Analyze each output version separately. For each version: > > a. Assess the accuracy of the information presented > b. Evaluate how closely the output maintains the semantic meaning of the original information > c. Judge the clarity and coherence of the output > > 2\. For each aspect (accuracy, semantic proximity, clarity), use a scale of 1-10, where 1 is the lowest and 10 is the highest. > 3\. After analyzing each version, compare them to identify strengths and weaknesses. > 4\. Create an overall scoring system that combines the individual scores for accuracy, semantic proximity, and clarity. You may weight these factors if you believe some are more important than others. > 5\. Provide a final evaluation that summarizes your findings and explains your reasoning for the scores given. > 6\. Present your analysis and evaluation in the following format: > > <analysis> > \[Your step-by-step analysis for each output version\] > </analysis> > > <scoring\_system> > \[Explanation of your scoring system, including any weighting of factors\] > </scoring\_system> > > <final\_evaluation> > \[Your overall evaluation and reasoning\] > </final\_evaluation> > > <overall\_score> > \[The final numerical score based on your evaluation\] > </overall\_score> > > Remember to justify your reasoning throughout the analysis and provide clear explanations for your scores. Be objective and thorough in your evaluation.
Umstellung von GPT-4o auf Claude 3.5 Sonnet
Faktor-Map mit Timeline
Die ersten 5 Datenpunkte liegen jetzt bereits vor inkl. von gestern Abend (wird immer täglich automatisch berechnet). Die Betrachtung ist "nachlaufend" d.h. dient ausschließlich der Primärtrend-Betrachtung. Ob und wie hier eine Verzahnung mit dem Trading-Setup erfolgen kann, ist noch offen.

Hinweis: Screenshot am 23.08. nochmals aktualisiert, da hier dann mehr Datenpunkte vorlagen.
Nested-Accordion-Darstellungen für die News
Tabellen-Optimierung auf Basis von Media-Breakpoints

Darstellung der Erfolgswahrscheinlichkeiten deaktivierbar
LLM-Qualitätssicherung
- conciseness
- hallucination
- relevance

Langfuse-Prompt-Verwaltung

Alle relevanten Prompts sind nun direkt in Langfuse verwaltet, versioniert und mit dem Tracing auch verbunden.

Langfuse
31. Juli 2024
Faktor-Map
Die Trades auf einer Simulations-Stage sollen in Kürze darauf ausgerichtet gefiltert werden und so prüfen, ob dieser Vorfilter nützt oder schadet.

17. Juli 2024
16. Juli 2024
Stageview
Die Stageview ist dabei persistent zwischen allen Ansichten umgesetzt, so dass die Einstellung bei Anpassungen App-weit gilt.

Trading-Statistiken zwischen den Stages
Kalender-Ansicht mit farblichen Kodierungen
Performance-Statistiken nun mit Heatmaps
Kalender-Ansicht ohne Konfigurationen
Chart-Ansichten mit Konto-Wechsel für alle angezeigten Charts
6. Juli 2024
Optimierung Codebasis
- Mittels Continum.DEV und GPT4o sind weite Teile des Codes nun optimiert, modularisiert und resilienter im Detail
- Konsolidierung der OrderHandler-Initialisierung
- Verbesserte Verwaltung von OrderHandler-Instanzen
- Market-Graph-Komponente in Sub-Komponenten aufgeteilt und eine bessere Namensgebung verwendet
Stopp-Optimierungen auf Code und Indikatorenbasis
- Alle Stoppkurse wurden per Stichprüfung manuell optimiert d.h. die vStopp (SAR)-Indikator ist neu justiert auf größeren Zeiteinheiten
- SimD1 und SimD2 werden bei vStops nun ebenfalls berücksichtigt
Charts mit Trading-Annotationen
Symbol-Slider in Position und Verhalten optimiert

# Algobot-Releases - August 2024
Das Logbuch wird von oben nach unten geführt, so dass die aktuellsten Einträge immer oben stehen. Das ganze System ist ausschließlich (vorerst) für meine private Nutzung. Ich dokumentiere hier nur meinen Fortschritt und Erkenntnisse. Es geht dabei gar nicht um die Ergebnisse selbst, sondern sich selbst nur einmal klar zu schreiben und die eigenen Gedanken etwas zu strukturieren. Ich selbst bin hauptberuflich als PO tätig und daher kein Hard-Core-Entwickler. Ich habe aber Spaß daran, die Sachen für mich zum Laufen zu bringen und meine Dev-Skills nicht komplett einrosten zu lassen.
30. Juni 2024
Detail-Chart-Konfiguration
- Ein/Ausblenden der Transaktionsliste zum aktuellen Titel/Markt unterhalb des Chats
- Ein/Ausblenden der Transaktionen direkt im Chat
- Ein/Ausblenden der Wirtschaftstermine direkt im Chart
- Ein/Ausblenden der Deadzones d.h. der berechneten volatilen Seitwärtsphasen
- Umschalten zwischen verschiedenen Zeiteinheiten
- Weitere Chartzeiträume zur Auswahl insb. wenn größere Zeiteinheiten wie Tage gewählt werden

Automatische Wiederholung von Trades in bestimmten Fehlerfällen
- E:4 - Not enough money
- E:1 - Request has a pending state
- E:4 - Market closed
- E:4 - FIX - Other
Die Informationen werden auch im Monitoring angezeigt und können nun einfach gesucht werden.

Die Aktivierung eines möglichen Re-Try-Mechanismus wird nicht global eingeführt, sondern wird bewusst nur für bestimmte Strategien aktivierbar gemacht. Der aktuelle Status wird auch im Frontend angezeigt als letzte Spalte:

Differenzierte Strategie-Sicht zwischen Trading und Investment
Detail-Optimierungen
- Bot-Monitor hat eine verbesserte Detail-Suche, so dass auch gezielt nach Datum, Fehlermeldungen, States gefiltert werden kann
- Wochen-Modus im Business-Kalender nun als Default und optimierte Schriftgrößen-Darstellung
- JSON-Log-Ausgaben optimiert
- Chart-%-Veränderungen nun mit korrektem Verhalten auch an Wochenenden und gleichwertig zwischen Slider und Chart-Market-Anzeigen
- Schriftgrößen im News-Bereich harmonisiert
- Updates to Velzon: 4.1.0 von 2.2.0
- equityFX statt equity für die korrekte Anzeige bei nicht CFD-Titeln
24. Juni 2024
Aktualisierung des Architekturbilds
- + OpenAI-Assistants
- + Langfuse-Monitoring
- + SimD1, SimD2-Mirror-Accounts
- + Mobile | Desktop-Usage
- + Trailing-Stopp-Level
Harmonisierung der Strategien
Tradingkonto (P1) und Investmentkonto (P2)
Besonders gefallen tut mir aber auch die Möglichkeit auf den ETF-Sparplänen Adhoc-Investments mit fester Größe vorzunehmen, ebenso wie automatisierte Umsetzungen von ETF-Investments, wenn auf das definierte Zielkonto eine Einzahlung von außen vorgenommen wird. Dies erlaubt mir die Einzahlung von außen mit automatischem Kauf nach Geldeingang und ist extrem flexibel.

Short-Long-Einstellung pro Strategie

Performance-Boost in der App
vStops umgestellt auf vStop-MTF
20. Mai 2024
Nachrichten-Auswertung nun auf GPT4o
24. Januar 2024
Umstellung von Prompt-Wrangler auf GPT-Assistants
Tracing und Cost-Tracking sowie LLM-Monitoring über Langfuse
Bot-Settings
Strategien können ausgeblendet werden
31. Oktober 2023
Pivot-Points in einem Langfrist-Chart

27. Oktober 2023
Transaktionsstatistiken
Es wird eine 100% Skala verwendet für den Vergleich zwischen den verschiedenen Stages. Die effektiven Nominalwerte werden nur als Beschriftung angezeigt.

vStops reaktiviert
26. Oktober 2023
Strategie-Ansicht nun abhängig von der Displaygröße entweder als Grid oder Tabelle
Startseite optimiert auf die Kerninformationen
- Kalendereinträge werden nur mit Impact >3 angezeigt. Die Gesamtansicht muss unter Kalender eingesehen werden
- Deadzones sind in die Navigation verschoben
- News werden begrenzt auf 4 Einträge pro Symbol (Spalte)
7. Oktober 2023
Optimierungen insb. für Responsive-Anzeigen
KI-Bot für Website und WIKI mit Option dies auch für den Algotrader einzusetzen
3. Oktober 2023
Einführung einer Toggle-History
Einführung eines Backtest-Protokolls
Optimierung der Strategie-Parameter inkl. Protokollierung
Chart und Transaktionslisten-Darstellung von Strategie-Einstellungen
1. Oktober 2023
Echtzeit-Realtime-Chartbilder
Darstellung von Trading-Positionen optimiert insb. um Haltedauer und Aktivitäten zu optimieren
- Wechsel zwischen den Stage-Umgebungen direkt im Chart möglich
- Refresh der Ansicht über eigenen Refresh-Button
- Darstellung der Kauf/Verkaufszeitpunkte optimiert mit heller Beschriftung bei erfolgreichen Trades und dunkler Schritt bei Fails
- Noch offene Positionen werden zusätzlich dargestellt
- Ausstiegspunkte werden je nach Profit in der Kreis-Darstellung optimiert
- Auswahl-Positionen für die gewünschten Zeiträume sind jetzt ebenfalls in eine Dropbox verschoben, damit die Darstellung auf dem Handy besser funktioniert.

Im Learning sind ALLE News-Trading-Events mit "schließen" aller vorherigen Positionen deaktiviert. Diese sind im Chart mit "Calendar-Stop" im Label sichtbar und zeigen allein hier im Silber-Chart sehr viele unnötige vorzeitige Positions-Schließungen.

24. September 2023
Trading-Modus: Mirror-Only-Modus zusätzlich möglich
Spezifische Deaktivierung von Trailing und BES für Trading-Strategien
Die Einstellung ist pro Trading-Strategie möglich. Gewinne werden dabei uneingeschränkt laufen gelassen.
Fehlermails bei Failed-Trading-Positions
17. September 2023
Trading-Modus: ALL-OFF
Deaktiviere Trading und schließe Position bei volatilen Marktphasen getrieben durch anstehende Wirtschaftsnachrichten
Kursbewegende Nachrichten mit starkem Überraschungspotential (Minus-Performance) deaktivieren
INSERT INTO calendar_toggles (regEx, country, toggle_deactivate_new_trades, toggle_deactivate_high_volume_trades, toggle_close_all_positions_before, toggle_actiontime_minutes_window_after, toggle_actiontime_minutes_window_before) select t.title, t.country, 1, 0, 1, 0, 0 from (select c.country, c.title, round(sum(t.profit), 2) as sum_profit, count(*) as cnt from calendar c left join `xtb-trades` t on (t.entry_time >= date_sub(c.timestamp, INTERVAL 15 MINUTE) and t.entry_time <= date_add(c.timestamp, INTERVAL 60 MINUTE)) or (t.exit_time >= date_sub(c.timestamp, INTERVAL 15 MINUTE) and t.exit_time <= date_add(c.timestamp, INTERVAL 60 MINUTE)) where t.refID = 'D1' and t.profit <> 0 group by c.country, c.title order by sum_profit desc ) t where t.sum_profit<-500In der Oberfläche können diese dann automatisiert im Kalender eingesehen werden, hier am Beispiel von FED-Interest-Rate-Decision.

Nach der Prompt-Optimierung ist vor der Prompt-Optimierung

Da ich Prompt-Wrangler für die Versionierung und Pflege der Prompts nutze, kann ich ohne Eigenentwicklung relativ gut die Ausführungszeiten als Percentile, die Cache-Rates als auch die Gesamtkosten sehr gut überwachen. Hier als Snapshot:

Strategie-Auswertungen mit Fokus-Zeitraum und -7d Auswertung
Chart-Anzeigen mit Sub-Titles
27. August 2023
Prompt-Optimierungen
- Aktuell werden praktisch irrelevante % Tagesentwicklungen nicht mehr als relevante Nachrichten ausgegeben
Ideen für die Anpassungen und Entwicklung im News-Bereich:
- Nachrichten sind manchmal komplementär, manchmal durch die Aktualisierung der Infos bereits überholt. Das aktuelle Modell bildet dies noch nicht ab, so dass die Informationen zeitlich linear interpretiert werden müssten. Als Workarround werden nur Nachrichten des selben Tages verwendet.
- Die News sind aktuell unabhängig vom Algobot-Setup d.h. die News-Interpretation beeinflusst das Trading nicht. Idee wäre es aber die News-Interpretation in Richtung steigender und fallender Märkte zu nutzen, um Trading-Signale in die geeignete Richtung zu filtern.

4. Juni 2023
Nutzung von Prompt-Versionierungen

Hier nochmals zum Nutzen, der sich sehr schnell nochmals bestätigt hat in der praktischen Anwendung:
- Automatische saubere Versionierung für alle genutzten Prompts, womit Prompts als Teil der Entwicklung verstanden werden.
- Die aktuelle Version ist dabei über die Major-Version ansprechbar, z.B. ki-algobot/llm-news-sumup@3.X.X greift immer die letzte 3.x Version. Die Versionierung erfolgt teilweise automatisch, wenn Kernaspekte verändert wurden, z.B. Typen oder Parameter-Settings
- GPTx.x Anfragen werden über das System geleitet und auch beantwortet, womit ein durchgängiges Logging entsteht inkl. RAW-Data, Laufzeit und Kostenbetrachtungen für Auswertungen
- Durch die Nutzung von Parametern für Prompts, die dann über die API selbst übergeben werden können, kann sauber die Assistant-Anweisungen von den User-Daten getrennt werden.
- Wenn das System einmal eingebunden ist, kann praktisch instant fachlich die Logik angepasst werden, was mehr als sinnvoll ist
- Das System benutzt Caching, so dass exakt gleiche Anfragen nicht "teuer" über die GPT-API gesendet werden

Prompt-Optimierungen und Erkenntnisse
Prompt News-Aggregation
- Die Nutzung von JSON-Schemen ist möglich, um die Struktur der JSON-Ausgabe zu validieren. Ein JSON-Schema ist eine leistungsstarke Methode zur Beschreibung des Formats und der Datenvalidierung für JSON-Daten. Jedoch ist es wichtig zu beachten, dass die Definition eines JSON-Schemas außerhalb der Fähigkeiten von GPT-3 oder GPT-4 liegt, da es sich um ein maschinelles Lernmodell für natürliche Sprache und nicht um ein Datenvalidierungs- oder Schematisierungstool handelt. Die Erstellung von JSON-Schemas würde typischerweise von einem Entwickler oder Datenarchitekten durchgeführt werden.
- Sprache: Im Prompt wird nun spezifisch angegeben, dass die Sprache Deutsch ist. Prompt 2 gibt keine bestimmte Sprache an.
- Bei sehr kurzen Informationen: Im Prompt wird angegeben, dass auch bei sehr kurzen Informationen Details übernommen werden sollen. Dies ist eine zusätzliche Anforderung, die im Prompt 2 nicht genannt wird.
- Wichtig: Vermeide leere Teaser-Elemente: Prompt 1 hat eine spezifische Anforderung, leere Teaser-Elemente zu vermeiden ("symbol": { "teaser": \[\] }). Die Alternative: Vor der Rückgabe der JSON-Ausgabe prüfe ob eine technische Kürzung der Struktur möglich ist: Diese Anforderung ist spezifisch für Prompt 2 und erfordert eine Überprüfung und mögliche Reduzierung der JSON-Struktur vor der Rückgabe hat weniger gut funktioniert.
Prompt News-Tageszusammenfassung
- "Wichtig: Nutze NICHT die Eingangs-JSON-Struktur!". Diese Anforderung legt nahe, dass der Benutzer die ursprüngliche JSON-Struktur nicht in der Ausgabe sehen möchte. Diese Anforderung ist hier hilfreich, um Fehlinterpretationen zu vermeiden!
Weitere Punkte zur Berücksichtigung
21. Mai 2023
D3-Charts-Links
Prompt-Weiterentwicklungen
Trailing-Stopp-Berechnungen: Markierung der relevanten Höchstmarken
14. Mai 2023
Datengetriebene Optimierung BES

Darüber hinaus habe ich eine Berechnungslogik gefunden, die für das Setzen eines BES verwendet werden kann.
Kernfrage ist immer, ob der BES wirklich größere Gewinne oder nur größere Verluste vermieden hat. Dies lässt sich aus dem Bauch kaum entscheiden.
Dabei werden Positionen gesucht, die zunächst über den BES laufen, dann unter 0 und damit ausgestoppt würden und danach wieder über den BES laufen. Da D1, D2 aktuell aber einen BES von 25€ hatten, kann aktuell keine sinnvolle Optimierung auf Daten durchgeführt werden über 25€. Ich muss jetzt zunächst die kommenden Wochen Daten sammeln und es dann schrittweise anpassen.
Für D1, D2 wurden die Break-Even-Stopp-Schwelle angepasst auf 70€. Damit sind dann sinnvolle Messungen möglich, ohne den BES für die Konten komplett zu deaktivieren. Da der Trailing-Stopp sehr hoch gesetzt wurde, würde es die Performance-Statistiken der Strategien sonst beeinflussen. Die berechneten Nach-Stopps greifen aktuell noch nicht überall und sind daher noch unzuverlässig.
Datengetriebene Optimierung MinProfit-Schwellwert fürs Mirroring

Hintergrund der Überlegung ist, dass ich Verlusttrades durch Anpassung des Schwellwertes vermeiden kann und dessen finaler Profit aufsummiert werden kann, auf der anderen Seite führt das Anheben des Schwellwertes zu einer Verzögerung des Einstiegs und damit eine Reduktion des Gewinns für alle Positionen. Der Schwellwert für diese Betrachtung liegt auf der D1 bei 5€. Die Schwellwerte sind daher vereinheitlicht.
13. Mai 2023
Datenaggregation aller Trade-Verläufe aus den Log-Daten
Profit-Prognose für die Trailing-Stopps durch Percentile-Analysen und Scatter-Charts
Weitere Datenoptimierungen werden wahrscheinlich aber notwendig sein.
Der Profit-Forecast beruht auf der Annahme, dass ich bei einer sortierten Liste der Trades nach dem maximalen erreichten Profit im Zeitverlauf (desc) die Indexposition multiplizieren kann mit dem jeweiligen eigenen erreichten Profit, da mind. der aktuelle Profitwert bei gesetzten Trailing-Stopp erreicht werden würde (+-). Beginnt die Liste daher bei 155€ und wird dann mit 150€ fortgesetzt, so kann die obersten Position nur sich selbst zum Erfolg machen d.h. 155x1. Die zweite Position aber bereits 150x2 etc. Da die Verteilung der Trades jedoch nicht linear ist, ist die einmalige Berechnung hierfür sinnvoll und der Peak leicht ermittelbar.

12. Mai 2023
Datengetriebene Optimierung der Strategie-Parameter
Erste Erkenntnisse:
- Performance-Unterschiede sind massiv mit Anpassungen diese Parameter. Die Optimierung hierzu Bedarf aber etwas mehr Zeit und Betrachtungen.

Auswertungs-Script für die nachträgliche Analyse der Profit-Situationen

1. Mai 2023
News-Aggregation automatisiert inkl. Kostenoptimierung bei Nutzung von GPT-4
Der Datenabruf erfolgt dabei weitgehend parallelisiert, so dass der Abruf gleichzeitig zwischen KI-Aufbereitungen und bereits gespeicherten Inhalten erfolgen können. Die Antworten der KI werden dann automatisiert in der UI nachgezogen und dargestellt.
Die 8192-Token-Beschränkungen vom GPT-4-Modell über die API wird dabei automatisch eingehalten. Für spätere Nach-Analysen oder z.B. Wochenauswertungen werden alle KI-Antworten zwischengespeichert. Auch die Prompt-Strukturen liegen versioniert vor.

Trading-Log und Mirror-Trading-Log

Deadzones werden separat ausgewiesen inkl. aktuellen Konten-Settings
23. April 2023
Strategie-Grid-Filter für Aktivierungsstatus
Briefing: Mit Wirtschaftskalender auf der Startseite
Deadzone-Management für Seitwärtsbewegungen
Die Deadzones können vorerst nicht manuell verändert werden, da das Kernprinzip der vollständigen Automatisierung beibehalten werden soll. Die Zonen werden im Chartbild transparent mit rötlichem Balken dargestellt, um die Zonenerkennung optisch nachvollziehen zu können.
8. April 2023
Logo eingeführt
BES/Trailing-Stops werden dargestellt für offene Positionen
Dupliziere Trade
Automatische News-Aggregation durch chatGPT 3.5 (noch) weiter optimiert

26. März 2023
Break-Even-Stopp & Trailing-Stopp
Die Umsetzung ist ein Learning aus den sehr scharfen Bewegungen Anfang dieser Woche, wo große Gewinnpositionen durch die Geschwindigkeit der Bewegung nicht gesichert worden sind und sogar noch zu kleineren Verlusten am Anfang der Woche führten.
Optimierung der Chart-Darstellungen für Stopps, News und Entries/Exits
Offene Positionen nun auch im Chartbild
Chartdarstellungen nun gruppiert
AUS200 als neues Symbol aktiviert
19. März 2023
Boxplot-Charts überarbeitet

chatGPT-Auswertungen deutlich optimiert
16. März 2023
chat-GPT Einbindung für die Verdichtung der Nachrichten
Die jetzige Version ist noch stark eingeschränkt, da nur 4,097 Token verwendet werden können, was die Anzahl der verarbeiteten News stark einschränkt. Es wird aber sichtbar, dass eine sehr schöne Zusammenfassung direkt an den Chartbildern ergänzt werden kann. Im Kommentar wird die Entwicklungsidee dargestellt.
Das GPT-Modell-4 zeigt Ihr mit manuellem Test mit der GPT-4-Plus-Variante noch deutlich Potential. Ich stehe auf der Warteliste und hoffe auf eine baldige Freischaltung.

12. März 2023
Daily-Briefing mit Wechsel auf die verschiedenen Trading-Konten
Trade-Schließung nun direkt aus der App
Kalender-Setups nun direkt auch schreibend möglich
Strategie-Setups nun mit Wunsch-Zeitraum und ebenfalls schreibender Option
Performance-Graphen nun für alle Trading-Konten umschaltbar
[](/assets/2023-03-performance-graphen-trading-konten.png)
6. März 2023
4. März 2023
Strategie-Filter nach verschiedenen Symbolen und Kriterien
Statistiken weiter ausgebaut
Neue Strategien live genommen
28. Februar 2023
Strategie-Reports und Statistiken

26. Februar 2023
Strategie-Grid-Board

"Noised"-Stoppkurs - Level

Das Setup soll Exits wie diese verhindern, wo praktisch alle Chancen gleichzeitig geschlossen werden und Folge-Bewegungen dabei nach unten praktisch vollständig nicht mitgenommen werden können.

25. Februar 2023
Calendar/News-Bot-Setup (lesend)
Portfolio-Performance mit % Entwicklungen
Daily-Briefing-Setup inkl. Newsfeed

Wirklich gut geworden für meine Anwendungszwecke ist dabei auch der News-Bereich. Alle XTB-News werden damit direkt zugänglich inkl. Videos und Bildern:

Mobile-Support
Chart-Detail-Ansicht aller Bot-"Symbole"/Märkte
<b-row> <b-col xl="12"> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'US100', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'US30', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'US500', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'US2000', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'DE30', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'UK100', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'EU50', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'HKComp', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'AUS200', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'EURUSD', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'GOLD', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'SILVER', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'OIL.WTI', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> <MarketGraph :config="{ params: { account: DEFAULT_ACCOUNT, symbol: 'BITCOIN', period: DEFAULT_TF, days: DEFAULT_DAYS }, chartheight: DEFAULT_CHARTHEIGHT }"/> </b-col> </b-row>

16. Februar 2023
Portfolio-Performance
Transaktionsansicht
Chart-Detail-Ansicht (Entwurf)

Das grundsätzliche Setup mit Navigation, Theming, AXIOS-Datenanbindung mit Node.JS-Backend stehen somit ebenfalls, so dass ich für mich sehr schön die Backend-Datenbereitstellung pflegen und einbinden kann. Dabei habe ich nach etwas Herumprobieren auch die XTB-Broker-Einbindung über Websockets realisieren können, neben der nativen Einbindung der MariaDB.
Darkmode & Mobile-Support

1. Februar 2023
Erste technische POC-Basisversion für das neue Design
Vorteile der neuen Lösung:
- Deutlich bessere technische Ausbaufähigkeit und Wartbarkeit der Lösung
- Modernes responsive Design mit Nutzbarkeit auch Mobil unterwegs (aktuell nur eingeschränkt)

14. Januar 2023
Kalender-Stopp-Kennzeichnungen und Mirror-Trading
Manuelles Copy-Trading von der UI aus
In Einzelfällen kann es aber Sinn machen sowohl auf D1 als auch aus D2-Konten eine manuelle Spiegelung der Position vorzunehmen. Dies ist nun möglich inkl. umfangreichen formatierten JSON-Logging, die dann in der UI als JSON-Tree angezeigt wird. Da das System nur für mich ist, sollte das technische Logging unproblematisch sein.

Optimierungen für Mobile-Nutzung
8. Januar 2023
Kurs-Delta-Analyse nach Wirtschaftsnachrichten (Kursreaktionsmuster)
Hier ist bereits zwischen 14:30 und 15:30 eine hohe Volatilität zu sehen gewesen mit Schwankungen in einer Range von bis zu 515 Punkten. Dies zerreißt so meine Standard-Stopp-Strategie. Um 15:30 wird in der 15min-Kerze dann nochmals 0.6% bzw. 243 Punkten nachgegeben, um dann endgültig eine Entscheidung nach oben zu nehmen.
Damit wäre in diesem Fall es günstig gewesen aus dem Markt fernzubleiben mit der Meldung der Arbeitslosen-Statistik und für min. 60min keinen Einstiegspunkten zu folgen auf dem P-Konto. Erst danach dürfen Signale wieder ausgewertet werden, auch auf Basis noch nicht ausgestoppter Positionen auf D1, die dann im Plus sein sollten.
Im Realkonto hatte ich den Indikator leider nicht aktiviert zur Deaktivierung des Tradings und habe damit den Handelstag in Summe negativ abgeschlossen.

Nachdem ein Indikator/Kalender-Event ausgewählt worden ist, erscheint ein neuer zusätzlicher Bericht mit Startzeitpunkt des Veröffentlichungsdatums. Damit können nachträglich systematisch die Kursreaktionsmuster geprüft werden und das bisherige Setup optimiert werden.

Mittels der ausgegebenen Tick Size (hier 0.1 für US500) in der Headline der Detailansicht kann durch Multiplikation zu den Punkte-Veränderungen der notwendige Stopp-Value geprüft werden.
Ich hoffe ich kann so systematisch die relevanten Wirtschaftsnachrichten mit einem besonderen Trading schalten. Theoretisch kann auch auf die eigentlichen Nachrichten reagiert werden. Hier erscheinen mir die Sonderbedingungen für die Interpretation zu vielfältig, dass ich es zum jetzigen Zeitpunkt automatisieren möchte.
7. Januar 2023
Kalender-Events lassen sich nun direkt in der UI schalten
Statistiktabelle mit Sortierung und Optimierungen Darstellung
Strategie-Toggle-Empfehlungen direkt in der Anzeige

Die Berechnungen erfolgen immer automatisch auf Basis der D2-Ergebnisse der letzten 14 Tage. Die Empfehlungen verschieben sich dabei automatisch, wenn Strategien sich im Markt anders verhalten. Das Aktivierung erfolgt dennoch manuell, da der Erfolg der Trading-Woche daran hängen kann.
Strategie-Toggles können nun manuell direkt in der UI gesetzt werden
Manuell geschlossene Positionen auf P-Konto werden im Mirror-Trading nicht nochmals eröffnet
Statistik-Ansicht-Optimierungen
Auto-Scrolling für alle Tabellen
2. Januar 2023
Chart-Daten automatisch aktualisieren für alle Positionen
1. Januar 2023
Automatische Stopp-Berechnung
- Stoppkurse orientieren sich auf historischen Daten
- Stoppkurse sind auf Timeframes optimiert
- Stopps für Long & Short werden unterschieden


SELECT `st`.`symbol` AS `symbol`, `p`.`tf` AS `timeframe`, `s`.`stoppOffset` AS `curr_stop`, round(`p`.`90er_percentile_high` * `sy`.`tickSize`, 1) AS `rec_stop_long`, -1*round(`p`.`90er_percentile_low` * `sy`.`tickSize`, 1) AS `rec_stop_short`, `p`.`50er_percentile_high` AS `50p_high`, `p`.`80er_percentile_high` AS `80er_high`, `p`.`90er_percentile_high` AS `90er_high`, `p`.`50er_percentile_low` AS `50er_low`, `p`.`80er_percentile_low` AS `80er_low`, `p`.`90er_percentile_low` AS `90er_low`, round(`st`.min_high,1) AS `min_high`, round(`st`.max_high,1) AS `max_high`, round(`st`.avg_high,1) AS `avg_high`, round(`st`.std_high,1) AS `std_high`, round(`st`.min_low,1) AS `min_low`, round(`st`.max_low,1) AS `max_low`, round(`st`.avg_low,1) AS `avg_low`, round(`st`.std_low,1) AS `std_low` FROM ((( (SELECT `c`.`symbol` AS `symbol`, `c`.`tf` AS `tf`, percentile_disc(0.5) within GROUP (ORDER BY round(`c`.`high`, 0) asc) OVER (PARTITION BY `c`.`symbol`,`c`.`tf`) AS `50er_percentile_high`, percentile_disc(0.8) within GROUP (ORDER BY round(`c`.`high`, 0) asc) OVER (PARTITION BY `c`.`symbol`,`c`.`tf`) AS `80er_percentile_high`, percentile_disc(0.97) within GROUP (ORDER BY round(`c`.`high`, 0) asc) OVER (PARTITION BY `c`.`symbol`,`c`.`tf`) AS `90er_percentile_high`, percentile_disc(0.5) within GROUP (ORDER BY round(`c`.`low`, 0) desc) OVER (PARTITION BY `c`.`symbol`,`c`.`tf`) AS `50er_percentile_low`, percentile_disc(0.8) within GROUP (ORDER BY round(`c`.`low`, 0) desc) OVER (PARTITION BY `c`.`symbol`,`c`.`tf`) AS `80er_percentile_low`, percentile_disc(0.97) within GROUP (ORDER BY round(`c`.`low`, 0) desc) OVER (PARTITION BY `c`.`symbol`,`c`.`tf`) AS `90er_percentile_low` FROM `chartdata` `c`) `p` JOIN (SELECT `chartdata`.`symbol` AS `symbol`, min(`chartdata`.`high`) AS `min_high`, max(`chartdata`.`high`) AS `max_high`, avg(`chartdata`.`high`) AS `avg_high`, std(`chartdata`.`high`) AS std_high, min(`chartdata`.`low`) AS `min_low`, max(`chartdata`.`low`) AS `max_low`, avg(`chartdata`.`low`) AS `avg_low`, std(`chartdata`.`low`) AS std_low FROM `chartdata` GROUP BY `chartdata`.`symbol`) `st`) JOIN `symbol-setups` `s`) JOIN `symbols` `sy`) WHERE `p`.`symbol` = `st`.`symbol` AND `p`.`symbol` = `s`.`symbol` AND `p`.`symbol` = `sy`.`symbol` AND `p`.`tf` = `s`.`stoppOffSet_targetTF` GROUP BY `p`.`symbol`,`p`.`tf`,`p`.`50er_percentile_high`,`p`.`80er_percentile_high`,`p`.`90er_percentile_high`,`p`.`50er_percentile_low`,`p`.`80er_percentile_low`,`p`.`90er_percentile_low`,`s`.`stoppOffset`
30. Dezember 2022
Automatisches Stock-Screening für P2-Konto
Die Positionen werden aktuell nur mit Minimalgrößen von jeweils 1x Position aufgebaut für den Anfang. Spätere Anpassungen sind aber wahrscheinlich.
Die Positionen werden auf dem D1/D2-Konto jeweils nicht aktiviert, da hier ausschließlich im Sinne eines "Sparplans" gearbeitet werden soll. Es werden jeweils nur Positionen "dazu" aufgebaut.

Timeframe anpassbar
Wirtschaftsindikatoren mit optionaler Erklärung bei Mouse-Over
Detail-Informationen für hinterlegte News-Trading-Einstellungen

29. Dezember 2022
Darstellungen im Dashboard optimiert
Produktionskonto für Aktien-Investments/Trades separat eröffnet
Praxis-Lauf

Trades, die im D1-Konto erfolgt sind auf Basis des bisherigen Performance-Verhaltens der Strategie über Aktivierungs-Flags. Diese werden am Wochenende geschaltet.

Und am Ende des Produktions-Konto mit "Mirror-Trading" auf dem D2-Konto. Damit werden nur Positionen übernommen, die mind. 10€ im Plus gelaufen sind. Dadurch geht natürlich auch Performance verloren, Miss-Trades werden aber ebenso reduziert.

28. Dezember 2022
Strategie-Setup
- Komplett-Trading auf D2
- Auf Basis D2-Statistiken Aktivierung von D1-Setups
- Auf Produktion wird das Mirror-Trading auf Basis der D2-Trades aktiviert
Statistik-Boards

Die Aktivierung & Deaktivierung von Strategien muss weiterhin über das Backend erfolgen und kann noch nicht über das FE direkt eingegeben werden.
25. Dezember 2022
Copy-Trading
Dies hat zwei Vorteile:
- Es wird zunächst abgewartet, welche Positionen wirklich ins Plus laufen
- Es wird nicht mehr zwingend eine wöchentliche Justierung der Strategie-Toggles benötigt, da zunächst alle Strategien laufen und die "erfolgreichen" werden kopiert.
Die Kernbedingungen für die Übernahme sind konkret:
- Keine Kalender-Einträge mit vorgegebenen Einschränkungen z.B. zur Deaktivierung von Trades etc. Die Tabelle wird dabei auf Basis von definierten Filtern gegen die vorhandenen Kalender-Einträge verglichen.

... im Vergleich zu den Kalender-Einträgen für die Wirtschaftsdaten:

- Trades auf dem Konto müssen grundsätzlich ins Plus gelaufen sein mit einem minimalen Profit-Zielwert z.B. 10€ zum Zeitpunkt der Prüfung (aktuell Prüfung alle 5min, evtl. später erst alle 15min). Der genaue Wert muss noch in der Praxis justiert werden.
- Positionen aus der Simulation haben maximal 60m Zeit ins Plus zu laufen. Danach gilt die Position als irrelevant für eine "Übernahme"
Weitere Besonderheiten:
- Alle Aktivitäten werden "mitgeloggt", so dass das Copy-Trading-Setup ein eigenes Monitoring zur Nachvollziehbarkeit besitzt insb. da nicht jede Aktivität sofort zu einem neuen Trade führt.
- Um die Nachvollziehbarkeit und spätere Zeichen-Objekte anlegen zu können, wird ein "source\_account" und "source\_xtb\_orderID" an der Trade-Tabelle mitgeführt. Damit sind neue Positionen auf Basis von Copy-Trading referenzierbar und sogar im Chart zeichenbar d.h. woher die Position "ursprünglich" erstellt worden ist und mit welchem Zeitversatz und hoffentlich Vorteil die Position dann auch übernommen worden ist.
- Trotz des Systems kann eine Position jederzeit drehen und dennoch ins Minus laufen. Die ursprünglichen Stopp-Loss-Werte werden daher übernommen und auch die automatischen Stopp-Moves (vstops) sind auch für die Copy-Trades gültig und werden aktiviert.
- Grundsätzlich sollten alle wahrscheinlich "profitablen" Handelsstrategien genutzt werden. Mittels dem Copy-Trading können dann ohne weiteres die relevanten Positionen übernommen werden. Die wöchentliche Feinjustierung der Aktivierungen und Mid-/Highvolume-Strategien entfällt wahrscheinlich erstmal.
- Das Setup geht davon aus, dass jedes XTB-Konto als Trading-Quelle dienen kann. Damit ist es auch möglich zunächst D2 für alle Trading-Signale zu verwenden, D1 auf Basis von Wochenergebnisse zu justieren und die Produktion P1 dann auf D1 zu setzen. Ich starte aber erstmal mit D2 direkt.
22. Dezember 2022
Kalender-Anzeige mit anstehenden Wirtschaftsdaten und Forecast/Current-Werten

Es sind folgende Toggles vorgesehen pro Kalendereintrag. Es kann damit im Vorfeld von anstehenden Handels-Events eine Feinjustierung des Tradings vorgenommen werden ohne manuell einzugreifen. Das Ziel ist tatsächlich keinerlei manuelle Anpassungen oder Aktionen in der Ziel-Ausbaustufe zu haben. Es soll nur noch um Feinjustierung gehen.
- toggle\_deactivate\_new\_trades
- toggle\_deactivate\_high\_volume\_trades
- toggle\_refresh\_stopploss
System heute extrem erfolgreich


Hier auch nochmals als Zahlenwerte:

Um den Erfolg zu sehen hier nochmals als Beispiel der US2000-Chart. Es sind die Strategie-Einstiege und Ausstiege, Stoppkurse und Ergebnisse zu sehen. Das System hat dabei sowohl die komplette Short-Welle als auch bereits erste Long-Positionen am Wendepunkt eingegangen.

System-Trennung zwischen Bridge und App
Verknüpfung zwischen App-Dashboard und Statistiken
21. Dezember 2022
Auto-Strategie-Justierung per Script
UPDATE `strategy-toggle` s LEFT JOIN (SELECT SUM(v.norm_profit) as sum_profit, AVG(v.norm_profit) AS avg_profit, MIN(strategy) AS strategy, MIN(symbol) AS symbol FROM strategy_results_view v WHERE v.`TYPE`='D2' AND v.exit_time>="2022-12-18" GROUP BY strategy, symbol) jt ON s.strategy=jt.strategy AND s.symbol=jt.symbol SET s.activate_p1= CASE WHEN jt.avg_profit > 50 OR s.strategy='vstop' THEN 1 ELSE 0 END, s.activate_high_volume= CASE WHEN jt.sum_profit > 100 THEN 1 ELSE 0 ENDFür den Vergleich wird dabei nicht das 1:1 Volumen verwendet, sondern eine normalisierte Profit-Variante. Dies dient dem Abgleich, wenn auch auf einem Demokonto zunächst nur die normale Volume-Positionierung verwendet worden ist. Dies ist dann aber nicht vergleichbar mit den anderen Strategien die vielleicht schon auf High-Volume laufen.
Daten-Synchronisation zwischen XTB und TradingView
-- update xtb-trade-comments with help of original tradingview-trades UPDATE `xtb-trades` xt JOIN (SELECT CONCAT(strategy, ": ", symbol, ": ", timeframe, "m") AS COMMENT, `create`, `symbol`, `strategy`, `account`, `xtb_orderid`, `cmd`, `timeframe` FROM `trades`) t ON (xt.comment='[S/L]' OR xt.comment IS NULL OR xt.comment='' or xt.xtb_orderid='') AND xt.symbol=t.symbol AND TIMESTAMPDIFF(SECOND, t.`create`, xt.entry_time) BETWEEN -10 AND 10 AND t.strategy<>'vstop' AND t.account=xt.account SET xt.comment = t.comment, xt.strategy = t.strategy, xt.xtb_orderid= t.xtb_orderid, xt.cmd = t.cmd, xt.manual_stop = CASE WHEN xt.manual_stop THEN 1 ELSE 0 END;
20. Dezember 2022
Box-Plot-Diagramme eingeführt

Quelle: Chat-GPT :)
> Ein Boxplot, auch als Box-and-Whisker-Diagramm bezeichnet, ist ein Diagramm, das verwendet wird, um die Verteilung von Daten zu visualisieren. Es besteht aus einer Box, die die obere und untere Quartile des Datensatzes darstellt, sowie Linien, die als "Whisker" bezeichnet werden, die die Spannweite der Daten darstellen. > > Hier ist eine Anleitung, wie Sie ein Boxplot-Diagramm lesen können: > > 1. Die Box selbst repräsentiert den Bereich, in dem die Hälfte der Daten liegt. Der obere Rand der Box gibt das obere Quartil an, während der untere Rand das untere Quartil darstellt. Die Linie in der Mitte der Box wird als Median bezeichnet und gibt den Wert an, der genau in der Mitte des Datensatzes liegt. > 2. Die Linien, die als "Whisker" bezeichnet werden, zeigen die Spannweite der restlichen Daten an. Sie reichen von dem niedrigsten Wert, der nicht als Ausreißer gilt, bis zum höchsten Wert, der nicht als Ausreißer gilt. > 3. Ausreißer werden als einzelne Punkte dargestellt und liegen außerhalb der Whisker. Sie können verwendet werden, um extreme Werte im Datensatz zu identifizieren. > 4. Vergleichen Sie die Boxplots verschiedener Gruppen, um Unterschiede in der Verteilung der Daten zu erkennen. Wenn die Boxen unterschiedlich breit sind, kann dies darauf hinweisen, dass die Daten in einer Gruppe stärker verbreitet sind als in einer anderen. Wenn die Boxen unterschiedlich hoch sind, kann dies darauf hinweisen, dass die Werte in einer Gruppe im Durchschnitt höher oder niedriger sind als in einer anderen.
18. Dezember 2022
Umstellung der Entwicklungsumgebung
Ich habe zuvor HandsOn mit UltraEdit gearbeitet, was auch bereits Code-Folding, SSH und Deployment-Features mitbringt.
12. Dezember 2022
Automatisch nachlaufende Stopps (vStopps) über Volatilitäts-Indikatoren
Annotations endlich direkt im Chart mit den Strategie-Details zu den Einstiegszeitpunkten

$data .= '{ note: { label: "'.($trade->cmd==0?'long':'short').',vol:' . $trade->trade_volume .($trade->calculated_profit<>0?', '.number_format($trade->calculated_profit,1).'€':''). '", title: "' . $trade->strategy. '", fontSize: 9, wrap: 300 }, connector: { end: "dot", type: "line", lineType : "vertical", endScale: 10 }, color: ["' . ($trade->calculated_profit> 0 ? 'green' : ($trade->calculated_profit< 0 ?'red':'black')) . '"], x: x(parseDate("' . $trade->create . '")), y: y(' . $trade->price . '), dy: ' . ($trade->cmd == 0 ? 85 : -35) . ', dx: ' . ($trade->cmd == 0 ? $distance+20: $distance) . ' }, ';
10. Dezember 2022
Erste Tests von neuen automatischen Stopp-Modellen
- Trailing-Stopps sind gut um bei schwankenden Märkten hier schnell ins Plus zu laufen. Sie verhindern bei einem normalen Setup aber wirkliche Gewinne
- Manuelle Trading-Setups sollten vermieden werden
- Trading-Größe ist unter Umständen den Marktgegebenheiten/Volatilität anzupassen
- Einführung von neuen vStopp-Alerts
- Nutzung ausschließlich von normalen Initial-Stopps
- Alle Trading-Setups sind auf Mid-Chance-Volume umgestellt
- Versuch keine manuellen Trades durchzuführen, da diese und letzte Woche empfindlich schlecht dadurch gelaufen sind