Jump to content

Deep Reinforcement Learning


Empfohlene Beiträge

On 10/19/2020 at 2:51 PM, skunk said:

Die KI wird dann anfangen ihre Entscheidung so zu optimieren, dass ein möglichst hoher Reward dabei raus kommt. Als Entwickler muss ich der KI lediglich sagen welche Indikatoren ich als Input für Sinnvoll halte, wie viele Neuronen ich vernetzen möchte und auf wie vielen Ebenen ich diese Neuronen anordnen möchte. Am Ende noch eine Reward Funktion und den Rest erlernt die KI dann selbstständig.

Ein nicht uninteressantes Paper zu dem Thema: "Using Reinforcement Learning in the Algorithmic Trading Problem"
https://link.springer.com/article/10.1134/S1064226919120131

Da kriegt man dann auch mit, dass das ganze doch noch ein Stück komplizierter ist, als das deine obige Beschreibung vermuten lässt. 😉

Edit: Da ist auch ein Link zu einem Github-Repo dabei:
https://github.com/ThibautTheate/An-Application-of-Deep-Reinforcement-Learning-to-Algorithmic-Trading
Klasse, falls man das nachstellen möchte, aber auch einfach zum Schmökern interessant.

bearbeitet von PeWi
Link zum Beitrag
Auf anderen Seiten teilen
On 10/24/2020 at 10:46 PM, PeWi said:

Edit: Da ist auch ein Link zu einem Github-Repo dabei:
https://github.com/ThibautTheate/An-Application-of-Deep-Reinforcement-Learning-to-Algorithmic-Trading
Klasse, falls man das nachstellen möchte, aber auch einfach zum Schmökern interessant.

Nachtrag: Ich habe endlich meine vor zwei Jahren für neuronale Netze gekaufte Grafikkarte eingeweiht 😉, um obiges selber nachvollziehen zu können.
Hat - trotz anderer Python-Version - nahezu auf Anhieb funktioniert.
Mal schauen, wie aufwendig es ist, dem Programm BTC als eine der Aktien unterzuschieben ... 😜

 

bearbeitet von PeWi
  • Thanks 1
  • Like 1
Link zum Beitrag
Auf anderen Seiten teilen
1 hour ago, skunk said:

Habe ich das richtig verstanden. Du hast dich gerade freiwillig gemeldet um mir bzw uns zu zeigen wie das geht?

😜

1 hour ago, skunk said:

Was muss ich installieren um mitmachen zu dürfen?

Wenn du mit Grafikkarten-Unterstützung mitmachen willst, was sich aus Geschwindigkeitsgründen empfiehlt, dann musst du erst das ganze Cuda- und cuDNN-Gedöns installieren. Vorausgesetzt, du hast eine NVidia-Karte, AMD geht meines Wissens nicht.

1)

Das Python-Programm nutzt PyTorch als NN-Basis, deswegen habe ich als erstes Cuda in der Version 10.1 Update2 installieren müssen:

https://developer.nvidia.com/cuda-10.1-download-archive-update2

Wenn man sein OS auswählt, werden Guides angezeigt, die bei meinem Linux out-of-the-box funktioniert haben. Vermutlich wird das bei Windows ähnlich sein.

2)

Danach muss man noch cuDNN, den "Treiber" für die neuronalen Netze, herunterladen und installieren, wozu man einen Developer-Account bei NVidia haben bzw anlegen muss (ich habe bei den notwendigen persönlichen Angaben frei phantasiert).
Die cuDNN-Version muss zur Cuda-Version passen, ich habe 8.04 genommen.

Wenn ich mich recht erinnere - das war eine sehr späte nächtliche Sitzung - haben die beiden Installationen eine ganze Weile gedauert, v.a. Cuda hat dann einen Haufen vor sich hin kompiliert.

 

Zum obigen Deep Reinforcement Learning-Projekt:

3)

Wer noch kein 64Bit-Python hat, sollte das zuerst noch installieren, idealerweise in der vom Projekt erwünschten Version 3.7.4.
Ich habe auf meinem Linux-PC 3.6.9 drauf, damit ging es auch.

4)

Dann ein virtuelles Environment anlegen:

Windows:  python -m venv .env
Linux:  python3 -m venv .env

Ggfs muss unter Linux zuvor das Paket für virtuelle Umgebungen noch installiert werden:
sudo pip3 install virtualenv

Aktiviert wird die virtuelle Umgebung mit

Windows:  .env\Scripts\activate.bat
Linux:  source .env/bin/activate

Diese virtuelle Umgebung enthält eine recht alte Version des Python-Paketmanagers pip, weshalb man den zuerst updaten muss:

pip install --upgrade pip

5)

Als nächstes kopiert man sich das Projekt von Github runter. Wer die Git-Tools installiert hat, macht

git clone https://github.com/ThibautTheate/An-Application-of-Deep-Reinforcement-Learning-to-Algorithmic-Trading.git

die anderen wählen auf Github "download zip" aus und entpacken das im Projektverzeichnis.

6)

Anschließend muss man die zusätzlichen Python-Bibliotheken installieren, was üblicherweise einfach mit

pip install -r requirements.txt

funktionieren würde - hier ist aber eine Kleinigkeit in der Datei   requirements.txt   zu korrigieren; die Zeile

pytorch

muss man in

torch

abändern, weil der Downloadname für PyTorch nur "torch" ist; und wer so wie ich nicht die verlangte Python-Version 3.7.4 hat, muss noch die Versionsangabe auskommentieren:

Aus   python==3.7.4   muss man dann   #python==3.7.4   machen.

7)

Noch ein letzter Stolperstein - die Bibliothek torch ist die CPU-only Version. Wer die NVidia/Cuda/cuDNN-Version möchte, muss    torch    erst wieder deinstallieren

pip3 uninstall torch

und die Cuda-Version installieren:

pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

8.)

Noch ein allerletzter Stolperstein - man muss im Projektverzeichnis noch ein Unterverzeichnis Figures anlegen, sonst stürzt das Python-Programm ab, wenn es seine Ergebnisse abspeichern möchte.

 

Fertig

 

Dann kann man die Geschichte endlich starten, z.B: für Apple:

python main.py -strategy TDQN -stock Apple

Bei mir (Cuda mit Geforce GTX 1060) hat das etwa um die fünf Minuten gedauert. Ohne Cuda wird es wohl mindestens um den Faktor 10 längern dauern, eher mehr?

bearbeitet von PeWi
Tippfehler
  • Love it 2
  • Like 1
Link zum Beitrag
Auf anderen Seiten teilen
13 hours ago, PeWi said:

7)

Noch ein letzter Stolperstein - die Bibliothek torch ist die CPU-only Version. Wer die NVidia/Cuda/cuDNN-Version möchte, muss    torch    erst wieder deinstallieren

pip3 uninstall torch

und die Cuda-Version installieren:

pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

Nachträge:

Obigen Befehl hatte ich nach schnellem Googlen aus dem Internet übernommen. Vermutlich kann man sich die Vision- und Audio-Geschichten sparen und nur die Kernbibliothek installieren:

pip install torch==1.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html


In meiner langen Anleitung kam vielleicht nicht gut raus, dass man alles auch ohne NVidia-Karte machen kann. (Notfalls muss man das Python-Programm dann halt über Nacht laufen lassen.) Für diesen Fall auf die Installation von Cuda und cuDNN verzichten und die CPU only-Version von PyTorch nehmen. Mehr Änderungen sollten es nicht sein.


Warum die NN-Geschichten AMD-Karten nicht unterstützen, kann ich nicht genau sagen. Mit OpenCL gäbe es einen universalen Standard, der unter der Haube CPUs und GPUs verschiedener Hersteller nutzen kann. Ich bilde mir ein, mal gelesen zu haben, dass Cuda als hersteller-spezifische Schicht merklich performanter wäre als das allgemeinere OpenCL, weswegen die großen NN-Libs wie TensorFlow und PyTorch nur auf Cuda setzen würden.

Link zum Beitrag
Auf anderen Seiten teilen
vor 1 Stunde schrieb PeWi:

Notfalls muss man das Python-Programm dann halt über Nacht laufen lassen

ganz so schlimm ists auf CPU auch wieder nicht... bei mir waren es knapp ne Stunde auf der CPU (laptop ist schon bissle älter) 

und danke ! habs jetzt nur mal laufen lassen, aber noch nicht den Source angeschaut, was das wirklich gemacht wird...  bzw. wie
das Ergebnis zu interpretieren ist.

Link zum Beitrag
Auf anderen Seiten teilen
2 hours ago, ¯\_(ツ)_/¯ said:

und danke !

Einen doppelten Dank zurück!

Zum einen, dass ich mir gestern Abend nicht umsonst die halbe Stunde genommen habe, alles noch mal nachzuvollziehen und niederzuschreiben, sondern dass die Anleitung tatsächlich genutzt wurde ... 😜

Und zum zweiten, dass anscheinend keine großen Böcke in meiner Anleitung sind, sonst hättest du die sicher angemerkt.

bearbeitet von PeWi
Reihenfolge getauscht
Link zum Beitrag
Auf anderen Seiten teilen

So, es waren nur punktuelle Anpassungen notwendig, um dem Programm Bitcoin unterzuschieben.

Das größere Problem war es, passende historische Werte aufzutreiben. Ich habe nach ein bisschen Suchen immerhin vollständige Daten ab dem 28.11.2014 gefunden. Bei weiter zurückreichenden Daten fehlte das Volumen, insofern konnte ich die nicht nehmen.

Damit ist das Verhältnis Trainingsdaten zu Testdaten deutlich schlechter, bei den Aktien lernt das Programm an Tagesdaten aus 6 Jahren (2012 bis 2017 incl.) und testet über die zwei Jahre 2018 u. 2019. Beim BTC sind es somit nur drei Jahre Daten zum Lernen.

Dennoch - das Ergebnis:

(.env) pewi@pewili:~/PycharmProjects/drl_thibaut$ python main.py -strategy TDQN -stock BTC
checking for file 'Data/BTC_2012-1-1_2018-1-1.csv'
loading data from file 'Data/BTC_2012-1-1_2018-1-1.csv'

checking for file 'Data/BTC_2018-1-1_2020-1-1.csv'
loading data from file 'Data/BTC_2018-1-1_2020-1-1.csv'

Training progression (hardware selected => cuda:0):
100%|███████████████████████████████████████████████████████████████| 50/50 [07:47<00:00,  9.34s/it]
╒═══════════════════════════╤══════════╕
│   Performance Indicator   │   TDQN   │
╞═══════════════════════════╪══════════╡
│    Profit & Loss (P&L)    │ 29560584 │
├───────────────────────────┼──────────┤
│     Annualized Return     │  90.93%  │
├───────────────────────────┼──────────┤
│   Annualized Volatility   │  56.05%  │
├───────────────────────────┼──────────┤
│       Sharpe Ratio        │  2.543   │
├───────────────────────────┼──────────┤
│       Sortino Ratio       │  3.940   │
├───────────────────────────┼──────────┤
│     Maximum Drawdown      │  12.00%  │
├───────────────────────────┼──────────┤
│ Maximum Drawdown Duration │  2 days  │
├───────────────────────────┼──────────┤
│       Profitability       │  54.64%  │
├───────────────────────────┼──────────┤
│ Ratio Average Profit/Loss │  14.334  │
├───────────────────────────┼──────────┤
│         Skewness          │  1.082   │
╘═══════════════════════════╧══════════╛
checking for file 'Data/BTC_2018-1-1_2020-1-1.csv'
loading data from file 'Data/BTC_2018-1-1_2020-1-1.csv'

╒═══════════════════════════╤══════════╕
│   Performance Indicator   │   TDQN   │
╞═══════════════════════════╪══════════╡
│    Profit & Loss (P&L)    │  -30799  │
├───────────────────────────┼──────────┤
│     Annualized Return     │  9.58%   │
├───────────────────────────┼──────────┤
│   Annualized Volatility   │  57.88%  │
├───────────────────────────┼──────────┤
│       Sharpe Ratio        │  0.126   │
├───────────────────────────┼──────────┤
│       Sortino Ratio       │  0.185   │
├───────────────────────────┼──────────┤
│     Maximum Drawdown      │  68.43%  │
├───────────────────────────┼──────────┤
│ Maximum Drawdown Duration │ 676 days │
├───────────────────────────┼──────────┤
│       Profitability       │  40.38%  │
├───────────────────────────┼──────────┤
│ Ratio Average Profit/Loss │  1.360   │
├───────────────────────────┼──────────┤
│         Skewness          │  1.301   │
╘═══════════════════════════╧══════════╛

 

Ein paar ausgewählte Grafiken dazu. Zuerst der Fortschritt über die Zahl der Durchläufe (BTC_TrainingTestingPerformance.png). Man sieht schön, wie ca. ab Runde 25 das Overfitting startet - das Shape Ratio der Trainingsdaten steigt weiter, während das Sharpe Ratio der Testdaten (2018 bis 2020) wieder fällt. Man sollte also die Zahl der "Episodes" auf ca. 22 bis 25 begrenzen.

Passend dazu der Verlauf von Preis und Accountvermögen (BTC_Rendering.png). Aufgrund des Overfittings kommt der Agent mit den neuen Daten ab 2018 absolut nicht zurecht. Der Verlauf des Vermögens ist quasi ein einziger Drawdown.

(Ich mach nachher mal einen neuen Test mit 'nem Splitzeitpunkt 1.1.2019, damit das Verhältnis Trainings- und Testdaten ausgewogener ist und suche auch eine günstige Zahl an Episoden raus, damit man das Potential dieser Methode ein bisschen besser sehen kann.)

 

 

BTC_TrainingTestingPerformance.png

BTC_Rendering.png

bearbeitet von PeWi
Tippfehler
Link zum Beitrag
Auf anderen Seiten teilen

Es gibt inzwischen ziemlich komplexe Ansätze, um das ewige Problem "buy low - sell high" etwas in den Griff zu kriegen.

Einer davon ist der Rückgriff auf maschinelles Lernen, das sich in diverse Untergruppen aufteilt. In diesem Thread soll es - ausgelöst durch ein Paper - um Deep Reinforcement Learning gehen.

https://link.springer.com/article/10.1134/S1064226919120131

In diesem Paper wird ein in der Sprache Python realisierter Ansatz vorgestellt, einen "Agenten" selbständig traden lernen zu lassen. Da die Sourcen zum Projekt auf Github gestellt wurden, kann man das Projekt runterladen und selber nachvollziehen.

https://github.com/ThibautTheate/An-Application-of-Deep-Reinforcement-Learning-to-Algorithmic-Trading

Eine Anleitung, was bis zur Lauffähigkeit alles gemacht werden muss, steht in einem der nachfolgenden Posts.

  • Thanks 1
  • Like 1
  • Up 1
Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Minuten schrieb PeWi:

Es gibt inzwischen ziemlich komplexe Ansätze, um das ewige Problem "buy low - sell high" etwas in den Griff zu kriegen.

Einer davon ist der Rückgriff auf maschinelles Lernen, das sich in diverse Untergruppen aufteilt. In diesem Thread soll es - ausgelöst durch ein Paper - um Deep Reinforcement Learning gehen.

https://link.springer.com/article/10.1134/S1064226919120131

In diesem Paper wird ein in der Sprache Python realisierter Ansatz vorgestellt, einen "Agenten" selbständig traden lernen zu lassen. Da die Sourcen zum Projekt auf Github gestellt wurden, kann man das Projekt runterladen und selber nachvollziehen.

https://github.com/ThibautTheate/An-Application-of-Deep-Reinforcement-Learning-to-Algorithmic-Trading

Eine Anleitung, was bis zur Lauffähigkeit alles gemacht werden muss, steht in einem der nachfolgenden Posts.

Ja, wie bereits in anderen Post erwähnt arbeite ich genau an sowas. Das wird die Art zu traden verändern, weil das System seine Policies selber finden soll.

Die Ergebnisse sind sehr vielversprechend. Ich warte mit Spannung auf die neue Nvidia 3090, weil die hat die Power, die man braucht. Das dauert alles sehr lange.

Dein Artikel gibts hier umsonst :

https://arxiv.org/ftp/arxiv/papers/2002/2002.11523.pdf

Das Python Programm ist sehr schlecht, da gibt es besseres.

 

Aber um den ersten Schritt zu machen, man braucht Preisdaten. Lösung : StrategyQuant hat ein Programm, dass einem erlaubt, alle Preisdaten von Binance runterzuladen. Die Bezahlversion bringt nichts. BItte beachten, man kann nicht einfach Preisdaten von irgendwoher nehmen, die Qualität muss sehr gut sehr. Weil Shit in, Shit Out.

 

 

 

Link zum Beitrag
Auf anderen Seiten teilen
Am 31.10.2020 um 10:02 schrieb PeWi:

Nachträge:

Obigen Befehl hatte ich nach schnellem Googlen aus dem Internet übernommen. Vermutlich kann man sich die Vision- und Audio-Geschichten sparen und nur die Kernbibliothek installieren:

pip install torch==1.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html


In meiner langen Anleitung kam vielleicht nicht gut raus, dass man alles auch ohne NVidia-Karte machen kann. (Notfalls muss man das Python-Programm dann halt über Nacht laufen lassen.) Für diesen Fall auf die Installation von Cuda und cuDNN verzichten und die CPU only-Version von PyTorch nehmen. Mehr Änderungen sollten es nicht sein.


Warum die NN-Geschichten AMD-Karten nicht unterstützen, kann ich nicht genau sagen. Mit OpenCL gäbe es einen universalen Standard, der unter der Haube CPUs und GPUs verschiedener Hersteller nutzen kann. Ich bilde mir ein, mal gelesen zu haben, dass Cuda als hersteller-spezifische Schicht merklich performanter wäre als das allgemeinere OpenCL, weswegen die großen NN-Libs wie TensorFlow und PyTorch nur auf Cuda setzen würden.

OpenCL macht nur Sinn, wenn die neue Generation kommt FPGA based coProzessing. Das wird dann für DL Sinn. Davor sollte man bei Cuda bleiben, jedoch ist hier der ganze Nachteil, dass man die Speicher von mehreren Karten nicht nutzen kann.

Link zum Beitrag
Auf anderen Seiten teilen
24 minutes ago, Männergruppe Monk said:

Dein Artikel gibts hier umsonst :

https://arxiv.org/ftp/arxiv/papers/2002/2002.11523.pdf

Das ist aber ein anderer Artikel - macht aber nix, mehr Input ist immer besser.
(BTW: Den ursprünglichen Artikel konnte ich zumindest am 24.10. über den Springer-Link ohne weiteres umsonst herunterladen. Jetzt nicht mehr.)

24 minutes ago, Männergruppe Monk said:

Das Python Programm ist sehr schlecht

Das habe ich auch schon festgestellt. 😉

Das Paper weckt anfangs hohe Erwartungen und schrumpft dann in der Realisierung auf das Minimum zusammen. 😉

Aber: Es ist der Source dabei. Damit hat man zumindest einen Startpunkt, mit DRL anzufangen ...

P.S.: Danke @Amsifür deine ultraschnelle Reaktion!

bearbeitet von PeWi
Link zum Beitrag
Auf anderen Seiten teilen
vor 12 Minuten schrieb PeWi:

Das ist aber ein anderer Artikel - macht aber nix, mehr Input ist immer besser.
(BTW: Den ursprünglichen Artikel konnte ich zumindest am 24.10. über den Springer-Link ohne weiteres umsonst herunterladen. Jetzt nicht mehr.)

Das habe ich auch schon festgestellt. 😉

Das Paper weckt anfangs hohe Erwartungen und schrumpft dann in der Realisierung auf das Minimum zusammen. 😉

P.S.: Danke @Amsifür deine ultraschnelle Reaktion!

Es ist egal, es gibt wesentlich bessere zum Thema.

Zuallererst, ich halte DL für Trading überbewertet, es wird bei Coins aus unterschiedlichen Gründen nicht unbedingt funktionieren, das ist jetzt schon abzusehen. Aber man kann dem Computer Risiko Verständnis beibringen, das finde ich interessant. Also besteht die Möglichkeit, den perfekten Traden zu simulieren 🙂

Zweitens, ein Problem, es gibt es viele Unterschiedliche Netze und Interaktionen mit dem Environment, das sollte man immer beachten und ausprobieren. Genau dieses ausprobieren kostet Zeit und Resourcen, es ist daher empfehlenswert, einen Graphischen Editor zu nehmen, wo man seine Netze einfach mal zusammen clickt, ausprobiert und testet. Einfach mal irgendwelche Software nehmen, reicht nicht.

Ich empfehle mit etwas einfacheren anzufangen. Poker oder Blackjack, das ist wesentlich einfacher für den Anfang, die Thematik zu verstehen. Ohne Thematisches Verständnis wird man nicht weit kommen. 

 

P.S: Wenn Du Deine Daten Dir mal genau ansiehst, Max Drawdown 68%, was meinst Du, sollte man sowas zum Trading einsetzen ?

bearbeitet von Männergruppe Monk
Link zum Beitrag
Auf anderen Seiten teilen
7 minutes ago, Männergruppe Monk said:

Wenn Du Deine Daten Dir mal genau ansiehst, Max Drawdown 68%, was meinst Du, sollte man sowas zum Trading einsetzen ?

Natürlich nicht. Wie auch die Charts nachdrücklich zeigen, tradet dieser Agent ziemlich grauenhaft. 😉

Es ging bisher ausdrücklich nur darum, überhaupt mal einen Fuß in die Tür zu bekommen, und einem lauffähigen DRL-Programm BTC unterzujubeln. Damit kann man dann eine Weile spielen und herumbasteln. Und wenn man dann ein bisschen Ahnung erworben hat, kann man sich mit deinen besseren Geschichten beschäftigen.

Und ich möchte erst mal ein bisschen in das Thema hineinschnuppern, auf einem Level, den ich noch bewältigen kann. 😉
"Dein" Paper ist sicherlich qualitativ besser, aber es hilft mir (nach erstem Lesen) auf meinem momentanen Kenntnisstand kein Stück weiter.

Link zum Beitrag
Auf anderen Seiten teilen
2 hours ago, PeWi said:

Das größere Problem war es, passende historische Werte aufzutreiben. Ich habe nach ein bisschen Suchen immerhin vollständige Daten ab dem 28.11.2014 gefunden. Bei weiter zurückreichenden Daten fehlte das Volumen, insofern konnte ich die nicht nehmen.

Damit ist das Verhältnis Trainingsdaten zu Testdaten deutlich schlechter, bei den Aktien lernt das Programm an Tagesdaten aus 6 Jahren (2012 bis 2017 incl.) und testet über die zwei Jahre 2018 u. 2019. Beim BTC sind es somit nur drei Jahre Daten zum Lernen.

Um dem Problem mit den wenigeren Daten Herr zu werden, habe ich dem Programm testweise mal 4h-Daten vorgesetzt. Die habe ich ab Mitte Februar 2015, womit ich dem Programm fast dreimal so viele Daten vorsetzen kann als bei den ursprünglichen Aktien-Tageskursen ab 2012. Das dürfte auch die Probleme mit dem Overfitting ein bisschen reduzieren.

2 hours ago, PeWi said:

(Ich mach nachher mal einen neuen Test mit 'nem Splitzeitpunkt 1.1.2019, damit das Verhältnis Trainings- und Testdaten ausgewogener ist und suche auch eine günstige Zahl an Episoden raus, damit man das Potential dieser Methode ein bisschen besser sehen kann.)

Es wird ein bisschen besser, aber der Drawdown liegt immer noch bei fast 60%. Und - man merkt, dass die Ergebnisse ziemlich streuen, wenn man die Läufe wiederholt. Ich hatte bei wiederholten Läufen - bei gleichen Parametern - Werte von ca. 3% bis 45% bei "Annualized Return".  Wenig verwunderlich, sowohl bei den (v.a. anfänglichen) Entscheidungen des Agenten als auch bei der Erzeugung der Anfangsgewichte des Netzes spielt der Zufall eine große Rolle. Dass sich das vernünftig ausmittelt, dazu hatten wir bei den bisherigen Tageskerzen vermutlich viel zu wenig Daten. Mal schauen, ob das jetzt mit 4h-Kerzen besser wird?

Link zum Beitrag
Auf anderen Seiten teilen

Das hört sich alles unheimlich interessant an. 👍

Leider habe ich nicht die nötige Zeit, da jetzt tiefer einzusteigen. Obwohl es "schon juckt".
Vielleicht ist Ende nächstes Jahr das aktuelle Projekt abgeschlossen und ich kann nachziehen.

@PeWi also nicht gleich entmutigen lassen. Ich z.B. bin "nur" Mitleser. 

Vielleicht noch ein Gedanke. Wenn man nach Analyse usw. einsteigt und an Markt tätig wird, greift man auch in das System ein. Es kommt also zur Rückkopplung. (Vielleicht auch gleich mit einplanen. 😉)

Axiom

 

Link zum Beitrag
Auf anderen Seiten teilen
54 minutes ago, PeWi said:

Um dem Problem mit den wenigeren Daten Herr zu werden, habe ich dem Programm testweise mal 4h-Daten vorgesetzt. Die habe ich ab Mitte Februar 2015, womit ich dem Programm fast dreimal so viele Daten vorsetzen kann als bei den ursprünglichen Aktien-Tageskursen ab 2012. Das dürfte auch die Probleme mit dem Overfitting ein bisschen reduzieren.

Okay, das mit dem Overfitting hat sich mit den 4h-Daten tatsächlich entschärft - siehe Bild 1

Allerdings tappt er jetzt in die Buy-and-Hold-Falle, d.h. er tradet praktisch nicht mehr, sondern kauft anfangs und hält nur noch, weswegen die Kapitalkurve schlicht dem Preis folgt - siehe Bild 2. (Was man dagegen macht, weiß ich noch nicht und muss erst ein bisschen recherchieren.)

Edit: 2 Möglichkeiten auf die Schnelle gefunden:
- zusätzlich positiven Reward geben, wenn bei fallendem Preis keine Coins im Besitz sind
- Reward senken, je länger die Coins im Besitz bleiben

Noch eine (aufwendigere) Möglichkeit wäre, immer das jeweilige Sharpe Ratio mitzuführen und bei Verbesserung/Verschlechterung den Reward zu erhöhen/zu senken.

 

BTC_TrainingTestingPerformance.png

BTC_Rendering.png

bearbeitet von PeWi
Link zum Beitrag
Auf anderen Seiten teilen
vor 1 Minute schrieb PeWi:

Okay, das mit dem Overfitting hat sich mit den 4h-Daten tatsächlich entschärft - siehe Bild 1

Allerdings tappt er jetzt in die Buy-and-Hold-Falle, d.h. er tradet praktisch nicht mehr, sondern kauft anfangs und hält nur noch, weswegen die Kapitalkurve schlicht dem Preis folgt - siehe Bild 2. (Was man dagegen macht, weiß ich noch nicht und muss erst ein bisschen recherchieren.)

 

KI sagt damit, das Hodler die beste Strategie ist. 👍 👍😉
Hat sich in der "rauen Wirklichkeit" im Laufe der "Evolution" auch so bewährt.

Schau mal, dass Du das System so trimmen kannst, dass es die Oberwellen ausnutzt.

Axiom

Link zum Beitrag
Auf anderen Seiten teilen
53 minutes ago, Axiom0815 said:

KI sagt damit, das Hodler die beste Strategie ist. 👍 👍😉
Hat sich in der "rauen Wirklichkeit" im Laufe der "Evolution" auch so bewährt.

Soso.

Bei wievielen Coins von den mehreren Tausend hat sich diese Strategie nochmal so toll bewährt?
Scheint doch wohl eher eine ausgesprochene Minderheiten-Strategie zu sein ... 😜

Deswegen hat man ja das Traden erfunden - damit man auch bei den anderen Coins den einen oder anderen Gewinn erzielen kann. 😉

Link zum Beitrag
Auf anderen Seiten teilen
vor 5 Minuten schrieb PeWi:

Soso.

Bei wievielen Coins von den mehreren Tausend hat sich diese Strategie nochmal so toll bewährt?
Scheint doch wohl eher eine ausgesprochene Minderheiten-Strategie zu sein ... 😜

Deswegen hat man ja das Traden erfunden - damit man auch bei den anderen Coins den einen oder anderen Gewinn erzielen kann. 😉

Du weißt doch 😉, bei einen Bitcoin-Maximalist gibt es nur einen wahren Coin. 😂

Also, wünsche Dir weiterhin viel Erfolg und tauche wieder in die schweigende Mitleserschaft ab.

Axiom

Link zum Beitrag
Auf anderen Seiten teilen
vor 3 Stunden schrieb PeWi:

Natürlich nicht. Wie auch die Charts nachdrücklich zeigen, tradet dieser Agent ziemlich grauenhaft. 😉

Es ging bisher ausdrücklich nur darum, überhaupt mal einen Fuß in die Tür zu bekommen, und einem lauffähigen DRL-Programm BTC unterzujubeln. Damit kann man dann eine Weile spielen und herumbasteln. Und wenn man dann ein bisschen Ahnung erworben hat, kann man sich mit deinen besseren Geschichten beschäftigen.

Und ich möchte erst mal ein bisschen in das Thema hineinschnuppern, auf einem Level, den ich noch bewältigen kann. 😉
"Dein" Paper ist sicherlich qualitativ besser, aber es hilft mir (nach erstem Lesen) auf meinem momentanen Kenntnisstand kein Stück weiter.

Nein, das hilft Dir gar nicht. Schau Dir die Videos bei Matlab an, dann verstehst Du wesentlich mehr, besonders was RL angeht.

Danach, nimm Blackjack und bau das nach. Da gibt es sogar fertige Software in Python.

Ansonsten, Du wirst mit einfachen Tharp Algos wesentlich bessere Trading Ergebnisse in Cryptos erzielen.

Link zum Beitrag
Auf anderen Seiten teilen
vor 2 Stunden schrieb Axiom0815:

Das hört sich alles unheimlich interessant an. 👍

Leider habe ich nicht die nötige Zeit, da jetzt tiefer einzusteigen. Obwohl es "schon juckt".
Vielleicht ist Ende nächstes Jahr das aktuelle Projekt abgeschlossen und ich kann nachziehen.

@PeWi also nicht gleich entmutigen lassen. Ich z.B. bin "nur" Mitleser. 

Vielleicht noch ein Gedanke. Wenn man nach Analyse usw. einsteigt und an Markt tätig wird, greift man auch in das System ein. Es kommt also zur Rückkopplung. (Vielleicht auch gleich mit einplanen. 😉)

Axiom

 

Es wird bei Cryptos nicht funktionieren, aber zum lernen ist das sehr geeignet, weil viel Preisdaten. 

Link zum Beitrag
Auf anderen Seiten teilen
10 minutes ago, Männergruppe Monk said:

Ansonsten, Du wirst mit einfachen Tharp Algos wesentlich bessere Trading Ergebnisse in Cryptos erzielen.

Mit Tharp habe ich mich nach den Empfehlungen deiner vorhergehenden Inkarnation eine ganze Weile beschäftigt.
Jetzt ist Deep Learning interessant und dran.

13 minutes ago, Männergruppe Monk said:

Schau Dir die Videos bei Matlab an, dann verstehst Du wesentlich mehr, besonders was RL angeht.

Videos nerven meistens, ich lese viel lieber. Hast du da Tipps für gute Bücher, Paper oder Webseiten?

Link zum Beitrag
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...

Wichtige Information

Wir speichern Cookies auf Ihrem Gerät, um diese Seite besser zu machen. Sie können Ihre Cookie-Einstellungen anpassen, ansonsten gehen wir davon aus, dass Sie damit einverstanden sind. In unseren Datenschutzerklärungen finden sie weitere Informationen.