Bitcoin

Irgendwie komm’ ich hier nicht hinterher, da ist noch eine Antwort pending, aber kurz:

Ich hab’ das nur schnell und planlos hingepfuscht, was man schon daran erkennt, dass ich nichtmal genau wußte, welche Daten dahinter liegen. Hab’ einfach das aus einem Sample übernommen, weil ich mich nicht noch mit Datenquellen und Loadern befassen wollte. Aber IIRC waren das schon >4MB CSV, also nicht sooo wenige…

Und was die Messgrößen angeht: Ich hab’ (natürlich) auch (noch?) nicht reingeschaut, was er da eigentlich berechnet. Ich wollte nur mal schauen, ob man da ~„grundsätzlich irgenwdas machen könnte“. Und naiv (von meinen damaligen Experimenten ausgehend) dachte ich dann: „Ich erstell’ einfach zufällige Regeln mit zufälligen Indikatoren … was gibt’s denn da so … Indicator, all known implementing classes :astonished:… äh…ja, gut, dann wackel’ ich halt nur an den numerischen Werten rum, aus dem, was in dem Beispiel vorkam“.

(Bei den Experimenten damals hatte ich das aber auch klar trennbar gemacht: 1. Einmal eine „strukturelle“ Optimierung mit dem GA, wo ein „guter Term“ mit „passablen Regeln/Bedingungen“ rauskommt, und 2. das rein numerische Rumwackeln an den Zahlen, die da drin vorkommen, was dann (bei fester Term-Struktur) mit einem beliebigen Apache MultivariateOptimizer gemacht werden konnte).

Aber … schon die Frage, was man als Optimierungkriterium für den Genetischen Algo nimmt, könnte ja interessant sein: TotalProfitCriterion - joa, klingt gut, nehm’wer das halt mal. Etwas anderes wäre vielleicht sinnvoller…

Wie gesagt: Das ist nur schnell hingehackt. Aber… vielleicht schau’ ich da nochmal genauer.

(Ich werde ohne Arbeit reich werden! Und wenn ich dafür die nächsten Jahre Tag und Nacht arbei… … ach, vergesst’s :crazy_face: )

Nur damit ich das richtig verstehe, DU hast den TradingAllele geschrieben?
Oh wow…

Indikatoren koennte man in verschiedene Kategorien einteilen, Trend, Momentum usw.
Jeder Indikator bezieht meist auf einen Zeitraum und hat einen „lag“, man kann dieselben Indikatoren (oder mit aehnlichen/angepassten Bedingungen) auf verschiedene Zeiraeume anwenden, analysieren und dann die Ergebnisse vergleichen.

Als Beispiel waere da zB. RSI overbought condition, diese wird sich eventuell in hoere Zeitraeume (zB. zuerst auf 30, dann 60 und 120 Minuten) durchpropagiert, bis der Markt wieder umdreht oder seitwaerts geht und „abkuehlt“.

Verschiedene Assets verhalten sich da sehr unterschiedlich, BTC zB. kann extrem stark trenden (macht er gerade jetzt wieder) und diese overbought condition/trend kann sehr lange anhalten (Tage Wochen), auch nimmt man andere Filter fuer overbought und oversold (oft sieht man bei BTC 90/10 anstatt 70/30 wie zB. beim SP500).

Sorry, das geübte Auge sieht natürlich schnell, dass da noch ein , c.getVolume() fehlt, deshalb konnten einige Indikatoren auch nicht funktionieren…

Bis morgen!

zu den Testdaten, hab mir das mal angesehen und markiert mit dem lila Viereck

Sieht jetzt nicht wirklich typisch/represaentativ aus, starker uptrend, das erklaert wohl auch warum es so schwierig besser abzuschneiden mit scalping als einfach auf long zu gehen.

Bitcoin wird wohl in Richtung 50k $ marschieren, macht euch auf den Weltuntergang gefasst. :joy:

Und Danke @ Mr Musk, mein Portfolio entwickelt sich gut. :wink:

Ja, ich könnte mir vorstellen, dass man da (allgemein) periodische Daten reinpackt, z.B. mit 7 oder 12 BoxPlots, in denen man (irgendwie „normalsiert“ - vielleicht einfach „als Prozent“…) die aggregierten Verläufe von 100 Wochen/Jahren reinpackt, und man dann z.B. sieht „Mittwochs geht’s runter, Donnerstags schwankt es stark“ oder so.

Einige der in diesem Artikel verlinkten Libs hatte ich schonmal gesehen, u.A. weil ich ja bei meinem (inzwischen auch privaten) Data - Libraries für Datenverarbeitung etwas gebastelt habe, was zumindest verwandt dazu ist - wenn auch nicht mit dem erklärten Ziel, „was zu machen, was so einfach ist, wie ein dataframe“.

Allgemein bietet Python zwar viel, aber das einfache Prototyping erkauft man sich halt mit anderen Dingen - und mir ist der Preis etwas zu hoch. (Subjektiv: Wackelige Versionen/Kompatibilitäten (bzw. wenig „Stabilität“ in diesem Sinne), die fehlende Typsicherheit, und wenn ich die Signaturen von einigen scipy/numpy-Funktionen sehe, rollen sich mir die Fußägel hoch).

Was ich halt immer toll finde, ist was „visuell-interaktives“. Z.B. hatte ich kürzlich meine „TimeSeries“ mit meinem Flow-based-programming-Ding (was nicht privat ist…) verwurstet, um z.B. mal schauen zu können, was passiert, wenn man bei einer „verrauschten“ Time Series das Rauschen stärker oder ein MovingAverage breiter macht, indem man einfach an den JSpinnern zieht:

Ich finde, damit bekommt man ein viel besseres Gefühl dafür, was ein bestimmter Operator (im Datenfluss, der in der „Overview“ zu sehen ist) für Auswirkungen auf das Endergebnis hat…

Das Rote ist übrigens das Ergebnis der Berechnung von „perceptually important points“ (websuche), was anscheinend oft für „Pattern Recognition in Time Series“ verwendet wird. (Wenn man die einfach „runterimplementiert“, wie sie im Paper stehen, kann das Berechnen von 100 PIPs bei 100000 Datenpunkten schonmal 30 Sekunden dauern. Wenn man’s „richtig“ macht, sind’s dann halt nur 100 Millisekunden. D.h. das kann man auch interaktiv machen…).

Ja, das „TradingAllele“ wäre eben ein „atomarer Building Block einer Regel“. Die ganzen Begriffe/Beispiele, die du da benennst, kann ich so halt erstmal nicht einordnen. Ich hatte jetzt im wesentlichen das gegebene Beispiel verwendet. Dabei hatte ich schon ~„ein paar, wenige“ weitere Formen unterstützt, so dass die Regeln am Ende sowas sein könnten wie

CrossedUp(shortSma(12), longSma(34)) OR CrossedDown(rsi(56))
CrossedUp(rsi(23)) OR CrossedUp(shortSma(45), longSma(123)
CrossedDown(rsi(23)) OR CrossedDown(shortSma(45), longSma(123)
...

Aber die „Schwierigkeit“ (oder das, wo man die ganze Arbeit reinstecken könnte) wäre eben, dort sinnvoll andere Indikatoren zu erlauben. (Noch schwieriger wäre, nicht nur OR sondern auch AND und NOT zu erlauben, aber das kriegt man hin).

Ein Ziel könnte halt sein, dass man versucht, „gute“ Regeln zu finden, ohne zu viel Aufwand und Domänenwissen reinstecken zu müssen. Im Sinne von: „Generier’ mir mal 10 Regeln, die ‚gut‘ sind, und ich schau mir die dann in einem zweiten Schritt, als ‚Validierung‘, an, und beurteile (als Mensch) ob sie ‚sinnvoll‘ sind oder eine Mischung aus Glückstreffern und Overfitting“.

Du weißt ja sicher auch nicht, was die 100 Indicator-Implementierungen machen. Vielleicht wäre eine davon „gut“, um eine Entscheidung zu treffen? Na, lass’ halt einen Computer rausfinden, ob sie „gut“ ist. Ob sie „sinnvoll“ ist, bleibt dann immernoch dir überlassen :wink:

Könnt ihr mir vielleicht kurz etwas erklären? Ich habe gerade eine Denkblockade.

Also ich habe den VWAP berechnet und berechne die Distanz zum aktuellen Kurs so:

ClosePriceIndicator closePrice = new ClosePriceIndicator(series);

VWAPIndicator vwapIndicator = new VWAPIndicator(series, series.getBarCount());
double cp = closePrice.getValue(499).doubleValue();
double ci = (vwapIndicator.getValue(499).doubleValue() - cp) / (cp * 0.01) * 100.0;

a.vwap = (float) ci;

Wenn a.vwap < 0 ist (der VWAP liegt unter dem aktuellen Kurs), was gilt dann? Wenn a.vwap > 0 ist (der VWAP liegt über dem aktuellen Kurs), was gilt dann? Wenn a.vwap 0 nach oben hin passiert, was sollte man dann tun (VWAP kreuzt den Kurs nach oben)? Wenn a.vwap 0 nach unten hin passiert, was sollte man dann tun (VWAP kreuzt den Kurs nach unten)? Danke!

Ja so ziemlich genau das Art war das , ich finde leider die alten screenshots nicht mehr und den Code müsste ich wohl neu schreiben, Python und so :wink:

Interessanterweise (oder auch nicht wenn man das schon wusste) hingen die Ergebnisse davon ab, welchen Zeitraum ich wählte (die genauen weiss ich leider nicht mehr), aber es schien stark davon abzuhaengen, was sonst so am Markt los war (Panik vs Gier vs. Optimismus vs Langeweile). Ich meine in der „Optimismus“ Phase war es oft so, dass Montags/Dienstags fuer den SP500 die Preise am niedrigsten waren ueber die ganze Woche. Auch schienen die Bewegungen der Futures „ueber Nacht“ in dieser Phase meist positiv zu sein, nennt sich „buy at close, sell at open“, dieser Effekt wird dem Gamma/Vanna/Charm „Optionszeug“ zugeschrieben.

Ja da gibt es das eine oder andere Problem, wenn dann native Systemlibraries dazu kommen, gucke ich mit meinem Mac schon mal bloed aus der Waesche, aber es war bis jetzt kein Showstopper dabei, dafuer der eine oder andere Hack/Workaround.

Mir macht Python Spass (das hat mich selber ueberrascht), habe da aber auch ganz niedrige Ansprüche an meinem Code: „funktionierts?“

Der Riesenvorteil ist dann man sehr schnell Datenanalyse betreiben kann ohne ein richtiger (Python) Entwickler zu sein, pandas, numpy, matplotlib oder plotly, jupiter notebooks usw., da scheint sich sehr viel getan zu haben in den letzten 5 Jahren (Das sieht deinen Screenshots schon sehr ähnlich).

Mit pandas/numpy kann das ganze sogar sehr schnell sein wenn man die Logik „vektorisieren“ kann, zB. boolsche Ausdruecke eignen sich sehr gut dafür.

Mein Eindruck ist dass sogar die „ganz grossen“ Python zur Analyse oder Backtesting nutzten, und falls man etwas findet/bestätigt wird dass dann anders umgesetzt.
Aber ich hab auch gehört das im der Finanzwelt meist Excel verwendet wird, auch bei grossen Firmen.

Danke fuer den Tipp!
Ich stolpere so von einem „rabbit hole“ ins nächste, Mathe ist nicht meine Stärke lol, in meiner Naivität dachte ich sowas wie Peak Detection sollte ja nicht allzu kompliziert sein… finde dann viele Sammlungen wie zB hier von wegen wie hier, ein paar dutzend Stackoverflow Themen später, finde ich mich dann auf Topographic prominence - Wikipedia wieder :nerd_face:

Ich in schwer beeindruckt, dachte zuerst dass die TA lib mit genetischen Algos kommt bis dann der Groschen gefallen ist.
Die Begrifflichkeiten sind echt schräg, ich verstehe ja noch wenn etwas „traditionell“ benahmt wird („hit the bid“, „lift the offer“ usw.), allerdings habe ich oft den Eindruck dass man das mit Absicht gemacht hat um normale Menschen abzuschrecken.

Sehr interessant!
Es ist sehr ueblich mehrere Signale zu kombinieren um Rauschen (bzw. bewusste Manipulation/false positives) zu reduzieren. Ich bin ja nicht gut in Mathe wie gesagt, aber so wie ich das verstehe, wenn es mehrere verschiedene Indikatoren gibt die mit dem Markt korrelieren, müssten diese Indikatoren auch miteinander korrelieren was die Signale betrifft.

Das ist der Traum von vielen, speziell SW Entwickler sind erstaunlich weit verbreitet als Trader, ich selber hab die Erfahrung gemacht das fuer mich so ganz ohne Domänenwissen es nicht gut läuft weil ich keine echte Möglichkeit hatte zur Interpretation der sog. „Price Action“, waren alles nur Linien/Wellen :man_shrugging: Mit dem bisschen Verständnis das ich mir angeeignet habe fühle ich mich aber weniger verloren und bilde mir ein etwas vorsichtiger geworden zu sein.

Auf jeden fall bin ich bescheidener geworden was mich, meine Fähigkeiten und mein Kopfkino betrifft, man darf nicht vergessen das zB. JPM, Goldman Sachs etc. sehr viele, sehr gute, extrem hochbezahlte Physiker/Entwickler/Magier („Quants“) haben und auch soviel Geld und Einfluss dass im Vergleich dazu meine Meinung total irrelevant ist. Das sind jetzt nur die ganz grossen, da gibt es aber auch sehr viele Hedge Fonds und andere Firmen die da mitmischen mit jeweils ein paar hundert Millionen US Dollar.

Was ich so mitbekomme, viele Algos hören irgendwann auf profitabel zu sein, da liegt entweder daran dass sie nur in bestimmten 'Phasen" profitabel sind, oder dass jemand anderes darauf gekommen ist, dass es da etwas zu holen gibt.

Hehe ne ich kenne nur ein paar und von noch wenigeren die Implementierung, weil ich die mal selbst Implementiert habe (Tradingview zB. kann man mit Pinescript programmieren, schrecklich aber funzt).

Ein altes Sprichwort aus dem Bereich ist übrigens „You want to be right or you want to make money?“.

Ich trade selber (bis jetzt?) nur manuell.

Am VWAP selber, also der orangen Linie, mache ich keine neuen Positionen auf, schliesse meist longs oder shorts dort.
VWAP kann man als den „Durchschnittspreis“ sehen, also der „faire“ Preis.
Beim Traden willst du „unfaire“ Preise um einzusteigen, der Markt sollte diese wieder in einen fairen Bereich bewegen, dann steigst du wieder aus, mal so ganz simpel erklärt.
Bei mean reversion „spielt man von den Rändern zur Mitte“

Nochmal der Chart mit dem VWAP
Imgur

Also wichtig dass der Markt keinen starken Trend hat (wie in der letzten Session in diesem Chart), du willst ja „mean reversion“ spielen, deswegen in den roten Bereichen auf short und in den grünen Bereichen auf long, in beiden Fällen beim VWAP die Position schliessen.
Diese roten und grünen Bereiche sind quadratische (oder kubische?) Standardabweichungen.

Den Code fuer den Tradingview Indikator findest du hier: Ubuntu Pastebin

Das interessante ist wie die Standardabweichung berechnet wird:
dev = sqrt(max(v2sum/volumesum - myvwap*myvwap, 0))

Diesen Wert dann mit Faktoren (+/- 1.28, 2.01, 2.51, 3.09, 4.01) multiplizieren, dann sind diese Bänder im Chart, also deine Einstiegspunkte.
Sag bescheid wenn dir diese Formel nicht helfen, mein Python Code scheint komplexer als Pinescript (wird von Tradingview verwendet).

Hier doch nochmal der aktuelle BTCUSD chart mit VWAP und den Bändern

Passt gerade gut um zu zeigen wie Märkte zwischen Balance und Trend wechseln:
Nachdem grossen Move nach oben (mit viel! Volumen dahinter) kühlt der Markt ab und geht „seitwärts“, da funktionieren Mean Reversion Strategien recht gut weil ping pong zwischen „oben“ und „unten“ gespielt wird.

Man erklärt sich diesen Wechsel u.a. damit, dass nach einem grossen Move eine „Korrektur“ nötig ist.
Entweder korrigiert der Preis und geht wieder nach unten, das wäre die „correction in price“. Wenn der Preis länger seitwärts geht nennt sich das „correction in time“ und die Chancen steigen dass es nochmals nach oben geht („another leg up“).
Das ist erstmal direkt nicht zu Profit umzusetzen, kann aber helfen bei der Interpretation der Price Action.

Nebenbei, wenn man weder trend noch balance erkennt oder sonst wie keine gute Idee hat wohin es geht, kann man auch nicht traden :wink:
Manchmal sieht man es eben nicht was da gerade so los ist, kein Geld riskieren ist auch eine Position.

Wird wohl grob so ausgesehen haben: http://javagl.de/BoxPlots.gif ?

1 „Gefällt mir“

Ich muss mich noch mal bei Dir bedanken, ich habe damit für einen Großteil der Positionen innerhalb von 24h mindestens 10% gemacht. Es ist hilfreich, die Einstiegspunkte zu finden, und ein paar Minuten später geht der Preis nach oben, und ich muss auch nicht immer den Chart beobachten. Ich trade auch manuell, aber habe eine paar „Bulk-Funktionen“ geschrieben, und setze inzwischen auch auf „krasse“ Außenseiter wie BTT oder Waves.

So… jetzt muss ich aber mal versuchen, im eingeschneiten NRW zum Einkaufen zu laufen (RL-Shice). :blush:

Heute handle ich nicht mehr, weil das, laut 24-Stunden-Indikator, alles verdächtig nach unten geht:

image

(das soll ungefähr ein repräsentativer Schnitt sein) und von Short lasse ich lieber die Flossen.

So ähnlich, aber weniger sexy, also ohne Animation.

Frage: Hat jemand das mal gelesen: https://ieeexplore.ieee.org/document/8442069 ? Ich gehöre ja nicht zu dem kleinen Kreis derjenigen Personen, die Zugriff darauf haben. Konkret hätte ich zwei pragmatische Fragen, funktioniert das, und könnte man das in Java umsetzen?

Bei sowas stelle ich mir dann immer Fragen, die im ersten Moment etwas abstrakt wirken, bei denen aber hoffentlich ein (vages) Ziel erkennbar ist: Ist das etwas, was man aus den Daten ableiten kann und will? Wenn ja: Wie müßte die Visualisierung und Interaktion gestaltet, sein, damit man leicht die richtigen/wichtigen Erkenntnisse gewinnen und Schlüsse ziehen könnte? In diesem Fall (sehr high-level - es gibt da eben viele Details, in die man in stundenlangen Meetings reinzoomen könnte) : So eine Visualisierung wie in http://javagl.de/BoxPlots.gif , wo man aber eben natürlich nicht die (den künstlich generierten Daten zugrunde liegenden) „frequency“ und „noiseSize“ interaktiv verändern kann, sondern irgendeine Kalender-Ansicht (einen „Datums/Zeitstrahl“) hat, wo man sich mit der Maus eine „Scheibe“ rausschneiden kann, die in der Visualisierung zusammengefasst wird. Diese Visualisierung wäre eben: „Zeige mir die wöchentlichen Daten, aggregiert (d.h. als 7 BoxPlots), aus den Wochen 2019/KW1 bis 2019/KW40 (und ich will den Zeitraum interaktiv verändern können, um zu sehen, wie sich damit die BoxPlots verändern)“.

Das ganze hätte dann aber natürlich noch alle möglichen Meta-Ebenen. Z.B.: „Ich will eine Visualisierung, mit der ich die in dieser Form aggregierten Daten für Zeitraum X und Zeitraum Y leicht vergleichen kann (um zu sehen, ob das eine ‚optimistische‘ oder ‚langweilige‘ Phase war). Und ich will auf einen BoxPlot draufklicken, um eine Übersicht zu bekommen, von allen Daten, die in diesem BoxPlot zusammengefasst wurden. Und ich will sehen, wo dieser Ausreißer herkommt (und dann schauen, ob an diesem Tag vielleicht Powell irgendeine Rede gehalten hat)“. („overview first, zoom+filter, details on demand, brushing+linking“, yadda yadda…)

Hmja… Ich würde nicht abstreiten, dass meine „Zurückhaltung“ in diesem Gebiet ein bißchen subjektiv-unfundiert ist (im Sinne von: „Ich kann das nicht so gut, ich mag keine ungetypten Sprachen, ich bin Java-Fan…“ etc.). Teile meiner Skepsis sind aber auch mit „Beobachtungen“ begründet (sicher nicht vollkommen objektiv, aber zumindest begründet).

Die gehen grob in diese Richtung: Leute sind keine „richtigen“ Entwickler, aber machen halt mal was mit Python. Da werden dann 10 Zeilen keras/numpy-Code von irgendeinem Blog kopiert, ein bißchen an den Parametern rumgewackelt, und ein Plot erstellt, der schick aussieht. Die Leute haben aber nicht mal den Hauch eines Ansatzes einer Ahnung, was da passiert. Weder high-level-methodisch („Ich packe mal diese Daten in ein Histogramm, weil ich das schöner finde, als einen Scatterplot“), noch low-level-methodisch („Ich verwende mal LSTM und UMAP, weil das die neuesten Verfahren sind“), noch in bezug auf etwas, was ich mit einer „Nachhaltigkeit der Ergebnisse“ zusammenfassen würde („Mit diesem Code und diesen Parametern kommen für diesen Datensatz schöne Ergebnisse raus“).

Oder flapsig: „Was ist ein ‚Senior Data Scientist‘?“ - „Jemand, der Python verwendet und älter als 25 ist“.

Ja, meine Linksammlung wird auch immer größer. Ich kann mir vorstellen, dass es zum Thema „Peak Detection“ tausende verschiedene Definitionen und Algorithmen gibt. Eine Schwierigkeit könnte eben sein, das Konzept eines „Peaks“ in einer Form zu beschreiben, die Domänen- und Datenunabhängig sinnvoll ist.

Die auf der Seite aufgelisteten sehen (beim schnellen drüberscrollen) ja ~„meistens recht ähnlich“ aus (machmal ein Punkt mehr oder weniger, ja, OK), aber schon die Frage, ob nur „Hochpunkte“ oder auch „Tiefpunkte“ als „Peaks“ gelten sollen, scheint nicht genau klar zu sein.

Das coole an den „Perceptually Important Points“ finde ich halt, dass man sagen kann: „Nähere mit diese Kurve mit X Punkten an, und zwar so gut wie möglich“. D.h. man mogelt sich um die Definition von „Peak“ herum, und bricht sie runter: „Ein Punkt ist ‚wichtig‘, wenn er weit von der bisherigen Annäherung weg liegt“. (Edit: Sowas wie ‚Rauschen‘ spielt dabei auch keine Rolle: Ob man 10000 „glatte“ Punkte oder 10000 „verrauschte“ Punkte auf 10 Punkte runterkondensiert, macht keinen Unterschied: Wichtig ist, was am größten ist)

Angewendet auf die Daten aus dem Artikel sieht es, wenn man die Anzahl der PIP-Punkte schrittweise erhöht, dann so aus: http://javagl.de/Pips.gif . Ich finde, dass da jeder Schritt irgendwie „sinnvoll“ aussieht (auch wenn er z.B. den „Peak“ am mittleren Punkt der W-Form (in der rechten Hälfte) erst sehr spät mit dazunimmt - es gibt eben „wichtigeres“…)

Ich kenne die Begriffe zwar nicht, aber es scheint, als wären da an vielen Stellen (vielleicht als Kapitulation vor dem Versuch, dem ganzen einen sinnvollen Namen zu geben) oft die Namen der Erfinder/Entwickler verwendet worden. Am besten noch abgekürzt. StevanovicUstalanovCriterion+ ClarkKennedyCriterion = SUCKCriterion

Um Statistik hab’ ich auch meistens einen Bogen gemacht. Ist so un-untuitiv. In diesem Sinne bin ich mir bei der Annahme nicht sicher. (Vielleicht habe ich sie auch falsch verstanden, aber) aus „Bisher sind X und Y immer gemeinsam aufgetreten“ kann man eben nicht direkt schließen dass X und Y „immer“ gemeinsam auftreten (oder überhaupt irgendein Zusammenhang besteht). Es ist kompliziert…

Nun, in dem was ich da mal gemacht habe (eben ein schmalspur-Paper), war das ein Ziel, das eben wie üblich schön in den „Laber-Sections“ (Motivation/Discussion) rausgekehrt wurde: Wir haben Daten und ein automatisches Verfahren zum Regeln-Generieren. Aber die Regeln sind in einer (einfachen!) Sprache formuliert, so, dass ein Experte sie sich ansehen und verstehen und mit Domänenwissen validieren kann. Ich denke, dass das sinnvoll sein könnte.

Und… dass GoldmanSachs & Co Millionen in sowas stecken, und man da als einzelner kaum dagegen anstinken kann, ist klar. Aber… nun, keine „Firma“ hat eine „Idee“. Einzelne Menschen haben Ideen

(Gut, diese Idee könnte auch sein: „Lass’ uns einen Hedgefond gründen, und eine Firma finanzieren, die eine App namens ‚RobinHood‘ rausbringt, die jeder (kostenlos!) benutzen kann, deren Nutzungsdaten wir dann aber verwenden, können, um ohne echten Aufwand unseren Profit zu vervielfachen“ - und damit kann man sich natürlich um die Notwendigkeit, etwas zu analysieren, geschickt drumrummogeln - aber die Möglichkeit hat ein einzelner natürlich nicht…)

Sowas in dieser Art war meine BoxPlot den ich vor Monaten mal machte, natürlich nicht interaktiv.
Ich dachte vielleicht gibt es da offensichtliche Muster, naja…
Hab den Code wiedergefunden!
Daten sind von SP500 Futures vom 26.05.2019 bis zum 06.10.2020

https://i.imgur.com/CdgYfRd.png

  • Daily Return: % vom close der vorherigen session bis zum Schluss dieser Session
  • ETH Return percent: % vom close the letzten session bis zum öffnen der nächsten Session, Future traden 23 Stunden 5 Tage die Woche, d.h. auch wenn der Markt (NYSE, NASDAQ) geschlossen ist, die Futures werden auch nachts gehandelt (ETH= „electronic“ trading hours, das Gegenteil ist RTH=regular trading hours)
  • intra day return percent: % von eröffnen des Markets bis zum Schluss (also RTH session return %, in diesem Falle 09:30 - 16:00 US East)
    die anderen beiden sind die min/max % (meine ich, ist ein weilchen her).

Interessanterweise, ist bei so einem langen Zeitraum der Durchschnitt nahe 0, über noch längere Zeiträume jedoch sollten die ETH % aber „free money“ sein (nicht mein chart), „Buy at close, sell at open“ ist bei mir „ETH Return percent“ benannt.

buyatclose1
Ja, geil oder?
Money for nothing, chicks for free…

Ah Moment mal… wie sah das 2020 aus?


Hm… „short at close, buy back at the open“?
Woher weiss ich wann ich was mache?

Wenn ja: Wie müßte die Visualisierung und Interaktion gestaltet, sein, damit man leicht die richtigen/wichtigen Erkenntnisse gewinnen und Schlüsse ziehen könnte?

Das ist eine sehr schwierige Frage, ich weiss die Antwort nicht. Jedesmal wenn ich da so „rum-analysiere“ habe ich danach mehr Fragen/Verwirrung als vorher.

Wenn ich das manuell mache, ist fuer mich der Chart vom SP500 ist IMO nur ein paar Puzzleteilchen, ich selber sehe mir noch den NASDAQ100 und den Russell2000 dazu an, und den VIX (sollte umgeehrt zum SP500 sein, sollte…), dann noch was die US Treasury Bonds machen (sollten eigentlich immer invers zum SP500 sein, sollten…), dann den Dollar Index (DXY), ja der sollte auch umgekehrt sein, dann noch Gold weil das sollte invers zum Dollar sein usw.

Mein Eindruck ist, dass die „Stimmung am Markt“ alles ausmacht, zB. Panik und dann viele Hedgefonds die Pleite gehen, so viele dass das einen Dominoeffekt haben kann und den Markt zusätzlich abstürzen lässt und noch mehr Panik verbreitet, das war der März 2020 und Februar 2018, bestimmt gibt es da noch mehr Beispiele.

In einem normalen Markt, also „Bull“ Modus sagt man „escalator up, elevator down“, also hoch geht es in Stufen (manchmal kann man sich eine verzehrte Sinuskurve vorstellen/erkennen), runter dagegen dann plötzlich & schnell, aber der Preis stabilisiert sich recht schnell oder macht gar das berühmte V.
In so einem Markt werden negative Neuigkeiten/Wirtschaftszahlen mal gerne ignoriert und es geht trotzdem nach oben.

Im „Bear“ Modus dagegen geht es sehr steil sehr weit nach unten, wird manchmal „Kapitulation“ genannt weil Käufer genau das machen, aufgeben.
Da gab es mal ein Paper zu „Liquidity Cascades - he Coordinated Risk ofUncoordinated Market Participants“.

Interessanterweise gibt es die größten Rallies in einem Bear Market (!!!), so ganz entgegen was man so annehmen würden, irgendwo hab ich mal eine Tabelle gesehen, 2008/2009 gab es den einen oder anderen Tag mit +10%, das hat natürlich nicht lange gehalten, tut den Shorts weh (squeezed) und den longs auch ausser die sind schnell genug und lassen nix über Nacht offen.

Ich hab dann auch versucht nachzuvollziehen was die Quants mit dem Gamma Index, Vanna, Charm etc. meinen aber das hab ich dann ganz schnell wieder aufgegeben, einerseits reichen meine Mathekenntnisse schlicht nicht und ich komme nichtmal an die notwendigen Daten ohne viel zu bezahlen.

Ja da kommt ganz schnell viel zusammen, zB. „quad witching“ zu jedem Quartalsende, also das Futures, Aktien Optionen, ETF Optionen und Index Optionen auslaufen, da machen die ganz grossen Fonds recht viel, das gibt es nochmal etwas kleiner am 3. Freitag und zum Monatsende, aber manchmal passiert da auch nix.

Ende Januar ist jedenfalls etwas passiert, und Anfang Februar auch (grüner Pfeil)

https://i.imgur.com/LdUZTeK.png

Oft ist es so, dass wenn es dramatisch aussieht und so als ob es gaaaanz sicher noch weiter nach unten geht, dass dann der Markt gerne mal um 180 Grad dreht, das ist IME dann ein Zeichen dass die Bullen doch noch die Kontrolle haben, aber grosse Fonds (zB. zum Quartals-/Monatsende) da ein paar hundert Milliarden umschichten mussten.
Das Problem ist natürlich dass man erst danach sicher ist.

Ging mir ganz genauso, aber als Spielprojekt habe ich mich mal überwunden.

:smiley:

Ich hab mal angefangen mich da einzulesen, witzigerweise sind fast alle Beispiel auf H&S ausgelegt lol
„Overfitting“ kann ein echtes Problem werden so wie ich das sehe, bin aber noch nicht tief drinnen wie gesagt und PIP scheint wirklich sehr vielversprechend!

Hier noch ein Chart/Beispiel fuer Dinge, die ich mittlerweile optisch/manuell recht gut erkennen/einschätzen kann, aber das in Code umzusetzten scheint mir nicht so einfach zu fallen:

https://i.imgur.com/XnXahr9.png

Beim grünen Pfeil, der untere, dünne Teil dieses Bar ist recht lang, das Volumen ist relativ hoch fuer dieseTages-/Nachtzeit, sieht sehr nach „Abstossung“ (rejection) aus, dazu kommt dass der Preis kurz aus den VWAP Baender „rausgefallen“ ist, das sind alles oft Zeichen dafür das der Preis wohl umdreht (reversal), wenn die Bullen noch die Kontrolle haben. Das der Preis danach ueber VWAP gekommen ist in der RTH Session deutet auch auf die Käufer Stärke zeigen.

Mittlerweile hab ich den Code fuer „relatives Volumen“ (also wie steht da jetztige Volumen zum Durchschnittsvolumen um diese Uhrzeit in den letzten N Tagen?), VWAP hab ich auch, aber das alles zusammensetzen dauert noch, und dann gibt es da noch soooooo viele andere Metriken/Signale (NASDAQ, VIX, Treasuries usw.).

Ja, das ist bei Indikatoren und Chart Patterns oft so, je nachdem was man zur Analyse nimmt, „Market Profile“ zB. hat seine eigene Terminologie.

Hehehe… Robinhood verkauft den kompletten „Orderflow“, also wieviel von was wie gehandelt wurde, wo die stops sind usw., das sog. „front running“ ist bei „high frequency tradern“ üblich, da geht es um Microsekunden, also bevor die Buy Order vom Robinhood user ausgeführt wird ganz schnell den Preis anheben und so.

Edit:

Fast vergessen: Das Cryptos so abgehen (und noch nicht aufhören) sehe ich und andere als Zeichen fuer grossen Appetit auf Risiko (Risk Appetite), also bullish, genauer gesagt sehe ich den SP500 etc. gerade in einer „Euphorie Phase“ oder „Gier Phase“, das merkt man u.a. auch daran wie sehr viele Leute die sonst nicht auf den Markt/Cryptos schauen das nun doch machen.
Das kann böse enden fuer viele in ein paar Tagen/Wochen, wann weiss man nicht, aber IME wird es deutlich wenn der Markt ein „zu hoch“ gefunden hat.

“When the shoeshine boy is giving you stock tips, it’s time to sell”

Kurz vor dem letzten BTC Crash 2018 haben Kellner Tipps gegeben welche Cryptos man kaufen sollte um Millionär zu werden, ist bald wieder soweit IMO. Ähnlich mit Dingen wie GME und was sonst gerade gepumpt wurde.

Nah, offensichtlich gibt’s die nicht (d.h. wenn’s sie gibt, sind sie offensichtlich nicht offensichtlich :smiley: ). Mittwochs scheint’s tendenziell ruhiger zuzugehen, aber mehr… erkenn’ ich da jetzt erstmal nicht. Und es dümpelt halt alles schon arg nahe bei der 0.0 rum, d.h. selbst wenn man da jetzt irgendwo ein auffälliges „+0.5%“ sehen würde, wäre es schwer, da direkt Geld damit zu machen…

Der Vergleich von >20 Jahren und einem Jahr hinkt ein bißchen. Wenn ich das richtig sehe, sieht man in dem Chart ziemlich genau den 11. September und den Lehmann-Crash, und ich bin sicher, dass man - wenn man diese einzelnen Jahres-Scheibchen da rausschneiden würde - dort einen ähnlichen Verlauf sehen würde, wie 2020. Das ~„alle Indizes langfristig im Schnitt tendenziell steigen“ ist ja recht bekannt.

(Hatte ich eigentlich mal erwähnt, dass ich bisher nur einmal in meinem Leben ein (für meine Verhältnisse, damals) „größeres“ Paket aus mehrere Aktien an einem Tag gekauft habe? Ja. Das war am 10. September 2001. Solche schlauen Sprüche wie „Buy at close, sell at open“ haben keine Chance gegen meinen ultimativen Tipp: „Don’t buy one day before a fucking terrorist attack“ :roll_eyes: )

An sich deckt sich das ja damit: Tendenziell geht’s meistens hoch, aber dann kommt halt irgendwas unvorhergesehenes (und das ist meistens was schlechtes). Nun weiß ich nicht, ob „Bull“ und „Bear“ mehr als die intuitiven Bedeutungen haben, als „rauf“ und „runter“, aber … das klingt erstmal wie eine Binsenweisheit: Wenn’s rauf geht, geht’s nicht kontinuierlich rauf, sondern in einem +10/-3/+6/-2/+8…-Muster. Wieder nur eine Frage der Skala die man anwendet - und die Frage, ob etwas eine „Bear Market Rally“ ist, oder ein „Bull Market Beginning“ kann man ja leider auch immer erst nachher beantworten…

Und… was? Es wurde viel verkauft, und es ging runter… aber dann auch wieder hoch… (also, nichts woraus ich jetzt was ableiten könnte…)

Overfitting … wird vielleicht in diesem Kontext anders verwendet: PIP ist so gesehen („natürlich“ empfindlich für Ausreißer (d.h. kurze, extreme Spikes). Oft will man das nicht, aber da kann man ja die Karten mischen, wie man will: In einem der oberen Screenshots hatte ich das PIP ja auch nach einem MovingAverage angewendet.

Zu der Analyse kann ich jetzt auch erstmal nur: "Aha :face_with_raised_eyebrow: " sagen. Wenn ich raten sollte, würde ich sagen, dass der Verlauf an diesem Tag halt …

Candle

(+Zittern, natürlich) war, und dann würde ich das als das sehen, was für Laien manchmal hochtrabend eine „technische Gegenbewegung“ genannt wird: Hey, der Preis fällt, lass’ma kaufen. Einen plausiblen Grund, das auf die Bänder zurückzuführen, erkenne ich erstmal nicht.

Das ganze in Code gießen - nun, das VWAP scheint ja „relativ einfach“ zu berechnen zu sein, und die Bedingung „minPrice < vwap“ ist auch einfach, aber die ganze Infrastruktur, die solche libs wie ta4j aufbauen, dient eben dazu, das ganze generisch kreuz und quer verschalten zu können. Und um da was vernünftiges zu machen, müßte man ein besseres Gefühl haben, was da alles verschaltet werden können soll. Ich hatte ja nur ganz akademisch im luftleeren Raum mit TimeSeries<T,U> rumgespielt, und da eine TimeSeries<Time,Price> drin zu sehen, oder auch eine TimeSeries<Day, Candle> ist recht einfach. Aber für sowas wie das VWAP braucht man halt noch eine TimeSeries<Time,Volume>. Und was könnte man noch alles brauchen? TimeSeries<Day,List<SpeechOfImportantPolitician>>? :crazy_face:

Hmja, ich kann mir (wenn auch technisch sehr distanziert) vorstellen, dass diese Daten sehr direkt in bares Geld umgesetzt werden können. „Ah, 100 Leute vollen jeweils 100 Aktien der Firma X? Na, da kaufen wir halt auch mal ein paar davon… eine Mikrosekunde vorher natürlich, und nur solage der Preis dadurch nicht über die Grenze steigt, die sie für den Kauf festgelegt haben“. Das ist natürlich vollkommen legal. Aber wie so oft, wenn man betonen muss, dass etwas „legal“ ist: Man könnte mal überlegen, ob es legal sein sollte :roll_eyes:

Hmnaja… Dass die normalen Märkte etwas „überhitzt“ zu sein scheinen (z.B. DAX-Rekord) macht mich auch etwas skeptisch. Aber bei Bitcoin sehe ich das etwas anders. Natürlich „könnte“ es morgen wieder abstürzen. Aber wenn Musk mal kurz 1.5 Miliarden da reinpackt, ist es nicht verwunderlich, dass mehr Schuhputzer davon was mitbekommen, und ich denke, dass das ein Effekt ist, der sich genausogut noch eine ganze Weile selbst verstärken könnte. Jetzt haben sogar die Erzfeinde (pun ein bißchen intended) JPM und GS gesagt, dass sie vielleicht Bitcoin-Fonds aufsetzen. Und solange da massiv Geld reinfließt, und Cryptos nicht komplett verboten werden (wie das jetzt wohl in Indien passieren soll), ist da noch Luft nach oben.
Vermutlich.
Wissen müßt’ man’s halt.

GME ist ja anscheinend durch. Im Moment versuchen einige einen „silversqueeze“. Einen kurzen „Silver to da moon“-Hype hatten wir vor ~12 Jahren schonmal, aber … diesmal ist das wesentlich breiter (auch durch die Reddit-Aufmerksamkeit). In diesem Sinne: :gorilla: :rocket: :gem: HODL! :smiley:

Ich versuche mein Glück gerade mit Python, siehe bitte das Parallelthema. :smiley:

Und haben wir nicht sogar einen Senior Data Scientist hier? (Einen dezenten Wink mit dem Zaunpfahl in Richtung Landei geben)