Zum Inhalt springen

Bot Trading mit genetischen Algorithmen


PeWi

Empfohlene Beiträge

vor 22 Minuten schrieb Männergruppe Monk:

Du kannst davon ausgehen, dass bei 4-5 Jahren alten Papers da schon Leute dran waren alles ausgetestet und Dinge implememtiert haben. Wenn es dann irgendwie nicht weiterging, wird das seinen Grund gehabt haben und die Karavane zieht weiter. 

Kommt immer drauf an, GEP scheint eine ziemliche Nische zu sein außerhalb eines recht engen rahmens (symbolic expression regression). Das Survey Paper wurde 50 mal zitiert, wenn wir davon ausgehen, dass das ein halbwegs zentrales Paper ist, ist das vergleichsweise wenig. "Deep Learning in Agriculture: A Survey" und ähnliche wurden jeweils 1.000+ mal zitiert. Ich gehe also nicht davon aus, dass das ein Bereich ist in dem jede Ecke schon durchgeforscht ist.
Und selbst im DL sind qualitative Fortschritte ja nicht so mega häufig wie man meinen würde. 99% schwimmt einfach nur im Fahrwasser der Tier1 Arbeitsgruppen.

Aber es kann natürlich gut sein, dass so spezielle Ansätze vom Prinzip her voraussichtlich nicht erfolgversprechend sind, weil die "Philosophie" der Idee sich als wenig zielführend erwiesen hat.

Bearbeitet von Arther
Link zu diesem Kommentar
Auf anderen Seiten teilen

25 minutes ago, Männergruppe Monk said:

Im Trading ist das sehr veraltet, weil die ganzen Investment Banken, Forschungsabteilungen, Trader und andere Wissenschaftler das dann schon 10x durchgekaut haben. Damit findest Du keinen Edge, der Dir hilft, das Tradingspiel zu gewinnen. Ganz einfach.

Das gilt für deine Reinforcement Learning-Geschichten aber auch. Alles, was du als Privatperson an Aufwand stemmen kannst, haben Profis grundsätzlich schon längst gemacht.

Trotzdem wäre ich nicht zu pessimistisch. Profis brauchen Edges, die deutlich weiter nach oben skalierbar sein müssen als das, was Privatleuten genügt. Und gegenüber anderen Privatleuten hast du mit deinem Wissen, deiner Hardware und deinen Tools doch einen kleinen Vorsprung ...  😉

Link zu diesem Kommentar
Auf anderen Seiten teilen

1 hour ago, Arther said:
On 6/27/2021 at 10:44 PM, PeWi said:

Mutationen und Crossovers können leicht an "unpassender Stelle" eines Baumes geschehen, weswegen man zusätzliche Maßnahmen treffen muss, sinnvolle Trennstellen im Baum zu finden.

unpassend bedeutet: Es entstehen Bäume, die syntaktisch inkorrekt sind, oder was ist damit gemeint? Hätte gedacht, das kann man eher relativ leicht abfangen.

Nicht unbedingt syntaktisch unkorrekt. Problem ist eher, dass jede vernünftige Bedingung bereits aus mehreren Knoten besteht.

Nimm beispielsweise ein typisches Pattern für Mean Reversion:

condition = (rsi < 30) and (price < bollinger_lower)

Das sind bereits 7 Knoten. Da geht schon bei kleinen Änderungen innerhalb der 7 Knoten die Mean Reversion-Funktionalität kaputt. Solche Pattern (bzw Building Blocks) möchte man eigentlich weitgehend unverändert behalten und eher "obendrüber" noch die eine oder andere zusätzliche Bedingung anfügen oder wegnehmen.

Deswegen gibt es im klassischen GP Versuche, solche Pattern mit zusätzlichen "Markierungs-Knoten" zu kapseln, die anzeigen, innerhalb derer nur ganz vorsichtig zu verändern. Verlagert die Schwierigkeiten aber auf das neue Problem, automatisiert solche Markierungs-Knoten an passenden Stellen zu erzeugen.

Wenn man bei GEP nur an Chromosen-Grenzen die wilderen Veränderungen vollführt, hat man innerhalb der Chroomosomen automatisch einen geschützen Raum, in dem solche sinnvolle Pattern leichter überleben können.

1 hour ago, Arther said:

Das leuchtet mir nur bedingt ein, Regularisierung / Strafterme sind bei Baum-basierten Verfahren eigentlich üblich. Da wäre interessant, was GP da so besonders macht, dass Regularisierung nicht so gut funktioniert. Fixe Chromosonen/Genanzahl scheint mir eine recht harte Einschränkung zu sein im Vergleich zu z.B. kontinuierlichen Straftermen.

Dazu habe ich bisher noch keine konkreteren Begründungen gelesen.

2 hours ago, Arther said:

Also sprich, wir fangen an mit Ursuppe, alles ist wild, dann nach und nach werden aber Teile immer kohärenter und wenn man beim Menschen angelangt ist, dann wuselt man kaum noch im Genom an sich herum, sondern versucht halt ob nen dritter Arm praktisch wäre oder zwei Daumen pro hand.

Klingt sinnvoll, dazu habe ich aber ebenfalls noch nichts gelesen (oder ich habe es überlesen).

Man könnte mit fortschreitender Generationenzahl die Veränderungsaktivitäten quasi immer weiter aus den unteren Baum-Ebenen zurückziehen und sich zunehmend auf Wurzel nähere Gefilden beschränken.
 

2 hours ago, Arther said:
On 6/28/2021 at 2:43 PM, PeWi said:

buy = price > ema_short + 3*ATR

Das ist dann quasi ein einzelnes Chromoson?

Wie groß ein Chromosom ist, und wieviel es gibt - das sind Hyperparameter, die ebenso kritisch sind wie Hyperparameter bei Deep Learning-Geschichten.

Um zu deiner konkreten Frage zurückzukommen - vermutlich wäre ein Chromosom größer. Da der kodierte Subtree aus einem Chromosom aber beliebig klein werden darf, könnte sowas tatsächlich der "wirkende" Anteil aus einem Chromosom sein, wenn genügend Chromosomen erlaubt sind, oder die Aufgabe nicht allzu komplex ist. (Andernfalls sollten vermutlich Individuen fitter werden, die den Platz im Chromosom auch weitgehend nutzen.)

2 hours ago, Arther said:
On 6/28/2021 at 2:43 PM, PeWi said:

Ich werde wohl vorerst trotz der bekannten Nachteile beim ursprünglichen GP bleiben, weil GEP und seine Abkömmlinge noch aufwendiger sind.

Da muss es doch Implementierungen für geben!

Meine derzeit benutzte Sprache Go ist halt nicht unbedingt der Nabel für maschinelles Lernen. 😉
(Und selbst wenn ich Python nutzen würde: Ob eine GEP-Implementierung so flexibel wäre, dass ich sie in meinen Bot-Geschichten ohne allzu große Verrenkungen integrieren könnte?)

  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt übrigens einige (wenn auch wenige) aktuelle Artikel zum Thema Strongly Typed Genetic Programming und Trading.
(Mal schauen, ob ich die lesen kann.)

(Edit: Auch zur Kombination "gene expression programming" + "trading" gibt es einige Artikel der letzten Jahre.)

stgp.png.c36c54e03ee8288703ba4d0b68ca74d4.png

 

Bearbeitet von PeWi
Ergänzung
Link zu diesem Kommentar
Auf anderen Seiten teilen

7 hours ago, Arther said:

Interessant, wobei Paper1 ja ein anderer Scope ist (HFT) und Paper3 zusammen mit Fuzzy (stark veraltete Technologie afaik).

Ich habe in die Papers noch nicht hineingeschaut; spannend fand ich, dass überhaupt heutzutage noch an GP und Trading geforscht wurde, egal welcher Couleur. 😉

Link zu diesem Kommentar
Auf anderen Seiten teilen

Durchaus zu Recht, imHo, das grundlegende Paradigma ist ja an sich ziemlich cool und vielversprechend. Man darf auch nicht vergessen, auch KNN (Künstliche Neuronale Netze) waren lange Zeit aus der Mode und man benötigte (die Wiederentdeckung von) zwei gute Ideen (hidden layer und backpropagation) + passende technologische Voraussetzungen. Vergleichbare Ergebnisse könnten GP Ansätze sicherlich auch zustande bringen, wenn man gute passende Einschränkungen und Fehlerkorrekturen findet.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 1 Minute schrieb Männergruppe Monk:

da zählt nur die Frage, inwieweit dieses neue Konzept zu verbesserten Resultaten führt

So wie überall anders auch.

"KI" ist ein Buzzword für Journalisten, was willst du sagen? Du implizierst, GP sei nicht "KI", was falsch ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 31 Minuten schrieb Männergruppe Monk:

Es kommt drauf an

Vor allem kommt es drauf an, die Begriffe überhaupt erstmal korrekt verwenden zu können, außer in reinen Aufzählungen um sich in noch mehr Buzzwords zu retten. Dann kann man vielleicht eines Tages auch die eigenen Ergebnisse auch endlich mal korrekt bewerten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

2 hours ago, Männergruppe Monk said:

Aber wenn man sich die Dinge ansieht, um davon zu lernen, ist das natürlich eine coole Sache.

Ich habe es ja auch schon öfters geschrieben, dass das mein Hauptantrieb ist - ich bin nicht mehr der jüngste, da muss man sich schon was suchen, damit die grauen Zellen in Schwung bleiben ... 😉

Link zu diesem Kommentar
Auf anderen Seiten teilen

22 minutes ago, Männergruppe Monk said:

Dann such dir doch was, was in dem Tradingspiel funktioniert. Macht viel mehr Spass, wenn man dann auch die Ergebnisse sieht 🙂

😉

Immerhin habe ich mir inzwischen ein Buch über Deep Reinforcement Learning zugelegt. 🙄

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das 2013 publizierte Paper "Trading Strategy Mining with Gene Expression Programming" enthält ein paar interessante Kniffe:

Der Trainingszeitraum wird in diverse (sich überlappende) Einzelzeiträume aufgeteilt. Auf diesen Einzelzeiträumen werden Strategien mittels GEP trainiert, und die besten 10 jedes Einzelzeitraumes werden in einem Pool gespeichert.

Zum aktuellen Traden werden die vorausgegangenen Tage zu heute mit den gespeicherten Einzelzeiträumen verglichen und die ähnlichsten fünf Intervalle herausgesucht.
(Man bemüht sich also, möglichst ähnliche Situationen zu heute zu finden.)

Zu denen werden die dazugehörigen "besten" Strategien aus dem Pool geholt, und parallel ausgewertet. Die tatsächlichen Aktionen werden dann per Mehrheitsentscheid bestimmt, sofern der Mehrheitsentscheid deutlich ausfällt.
(Man diversifiziert über Strategien.)

 

 

  • Love it 1
  • Thanks 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Bisschen um die Ecke gedacht: Schau doch mal, ob einige Forscher (next level shit: Mitarbeiter von denen) später nach ihren Veröffentlichungen von der Wirtschaft abgeworben wurden. Das wäre ja ein Indiz, dass Big Player ganz interessant fanden, was die gemacht haben.

  • Like 3
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Jahr später...

Ein kleines Update zum Thema "Genetische Programmierung" nach langer Zeit:

Den ursprünglichen Gedanken, nur die elementaren Rechenoperationen vorzugeben und die Individuen selber Indikatoren entdecken bzw erfinden zu lassen, hatte ich schnell wieder aufgegeben. Wenn man bedenkt, wie aufwendig es ist, selbst einen relativ simplen Indikator (wie z.B. einen RSI) mittels elementarer mathematischer Methoden neu zu erfinden, wird schnell klar, dass man für so eine Vorgehensweise riesige Individuenzahlen pro Generation und unheimlich viele Generationen brauchen würde - das wäre mit normaler Hardware absolut chancenlos.

Der spätere, auch hier diskutierte Gedanke, als Basisoperationen fertige TA-Bausteine wie EMA-Kreuzungen, Bollinger, MACD, etc zu verwenden, ist schon eher machbar. Nichtsdestotrotz habe ich nach ersten Anfängen schnell gemerkt, dass auch das noch ein Haufen Arbeit wird, und ich nicht weit kommen werde, wenn ich mich an dem einen oder anderen Abend mal für ein bis zwei Stunden dransetzen kann.

Insofern habe ich das Thema "Genetische Programmierung" notgedrungen seitdem ruhen lassen.


Interessanterweise kann man den zweiten Ansatz (fertige TA-Bausteine zusammensetzen) relativ unaufwendig mit Random Forests kombinieren. Man nimmt die letzten <n> Werte des Preises und diverser Indikatoren und trainiert damit einen Wald.
Was an Random Forests pfiffig ist - man hat eine Gruppe von Bäumen, die alle jeweils nur auf einem zufälligen Teil der Daten trainiert wurden (weniger Overfitting) und lässt sie quasi demokratisch über die aktuellen Daten abstimmen.
Ebenso praktisch ist es, dass sich der Wald unaufwendig mit dem Markt weiterentwickeln kann. Immer wenn im Livebetrieb ein paar neue Preis- und Indikatordaten dazugekommen sind, trainiert man ein paar neue Bäume und schmeißt gleichviel alte Bäume weg. Das verhindert das Vergreisen des Waldes und erlaubt eine ständige (und über mehrere Stellschräubchen steuerbare) Anpassung an den aktuellen Markt.

Der Implementierungsaufwand war überschaubar, d.h. eine erste Rohversion läuft inzwischen; der hauptsächliche Pferdefuß bisher ist der hohe Zeitaufwand pro Backtest durch das regelmäßige Re-Trainieren mittels Erzeugung neuer Bäume. (Zur Trade-Performance kann ich aufgrund des frühen Stadiums noch nichts sagen. Kann natürlich durchaus sein, dass mein Wald - im übertragenden Sinn - keine Bäume ausreißen kann ...  ;))

  • Love it 1
  • Thanks 2
  • Like 1
  • Up 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...

Wichtige Information

Wir haben Cookies auf Deinem Gerät platziert. Das hilft uns diese Webseite zu verbessern. Du kannst die Cookie-Einstellungen anpassen, andernfalls gehen wir davon aus, dass Du damit einverstanden bist, weiterzumachen.