checkAd

    TSLA long/short -- faultcode's Savitzky-Golay-Kalman-Oscillator (SGKO) (Seite 5)

    eröffnet am 30.04.23 23:54:54 von
    neuester Beitrag 04.01.24 21:36:00 von
    Beiträge: 60
    ID: 1.368.663
    Aufrufe heute: 0
    Gesamt: 6.428
    Aktive User: 0

    ISIN: US88160R1014 · WKN: A1CX3T · Symbol: TL0
    164,04
     
    EUR
    -0,65 %
    -1,08 EUR
    Letzter Kurs 31.05.24 Tradegate

    Werte aus der Branche Fahrzeugindustrie

    WertpapierKursPerf. %
    10,100+19,53
    34,80+16,00
    0,5994+14,48
    41,25+10,59
    7,3600+9,52
    WertpapierKursPerf. %
    2,4800-7,46
    12,900-9,15
    15,740-9,70
    0,5400-10,00
    20,010-30,40

    Beitrag zu dieser Diskussion schreiben

     Durchsuchen
    • 1
    • 5
    • 6

    Begriffe und/oder Benutzer

     

    Top-Postings

     Ja Nein
      Avatar
      schrieb am 10.05.23 18:51:38
      Beitrag Nr. 20 ()
      18:34
      Long $TSLA at Close!



      der war's:
      ...
      LONG_ALPHA_BETA= 1
      ...


      OK, der Chart ist nun 1.45 Jahre lang, weil 1 Jahr nur so rund 252 Handelstage hat und nicht 365! :laugh:

      Ich ändere das bei Gelegenheit wieder zurück auf 0.75 Jahre.

      <Yahoo Finance baut ständig an ihren API's, auch im Vergleich USA <=> Europa, herum>
      Tesla | 168,74 $
      Avatar
      schrieb am 10.05.23 00:27:41
      Beitrag Nr. 19 ()
      Moment mal!

      Den Savitzky-Golay-Filter (Polynom-Regression) habe ich gedropped, nur um wieder Filter einzuführen, die bei
      fortschreitenden Handelstagen wieder alte Kurvenwerte verschieben?

      --> im Prinzip ja

      Siehe den alpha-beta-Filter, der ja immer mit beim ersten (Open)-Preis startet! Daher sieht dessen Kurve bei den alten Tagen auch immer etwas anders aus am nächsten Handelstag:

      erst so z.B.:



      und nur einen Tag später so:




      (Ich habe nun diese bislang 2/3 Jahre an Chart-Daten auf 1 Jahr erhöht, um allen Filter bei den derzeitigen Parametern "genügend" Zeit zum Einschwingen bis zum aktuellen Open-Kurs zu geben.)

      Die Idee hier ist halt:
      - nicht jeden Tag einmal die Kurse von X vergangenen Jahren einzulesen und gegebenenfalls in einem Plot-Hardcopy abzulegen (OK, ich könnte dazu wieder auf die letzten 2/3 Jahre zwecks besserer Lesbarkeit kürzen)
      - und v.a. keine eigene, lokale Kurs-Datenbank einzuführen (--> viel mehr Probleme als Nutzen) so wie ganz offensichtlich oft in der Finanzfolklore:




      Denn eigentlich sollte da noch "nichts" sein:


      <pandas_ta hat für die EMA-Werte 0..48 eben not a number (nan) und erst der 50ste Wert ist ein ordentlicher mit 153.843>


      Letztendlich hat man dieses Problem aber sehr oft. Siehe z.B. den populären (simple) Exponential Moving Average (EMA): s(i) = alpha*x(i) + (1 - alpha)*s(i-1) (0 < alpha <= 1.0) (Roberts, 1959 formulation) mit z.B. Smoothing constant alpha = Smoothing|2.00 (z.B.) / (1 + Days) und bei einem EMA mit 50 Days dann auszurechnen mit:

      alpha = 2.00 / (1 + 50) = 0.0392156863....


      https://www.tradingview.com/support/solutions/43000592270-ex…
      https://www.investopedia.com/terms/e/ema.asp
      https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc431…

      Mit anderen Worten: diese "50" sind eher "fake", da es in Wahrheit auf das alpha ankommt!


      Und der EMA ist eben ein IIR-Tiefpass-Filter (https://en.wikipedia.org/wiki/Exponential_smoothing#Basic_ex…) mit (meistens) theoretisch unendlich lang laufenden Impuls- bzw. Sprungantworten:



      => rein theoretisch erreicht der Ausgang so eines Filters nie den Wert einer Sprung-Funktion! :eek:

      Praktisch geht diese Differenz halt irgendwann im Rundungs- und Quantisierungsrauschen unter.

      Nur darüber spricht fast niemand, weil eben immer angenommen wird (nicht zu unrecht), daß das Rauschen in den Wertpapier-Kursen ungleich größer ist!
      Tesla | 169,15 $
      Avatar
      schrieb am 09.05.23 19:03:31
      Beitrag Nr. 18 ()
      Antwort auf Beitrag Nr.: 73.810.228 von faultcode am 08.05.23 20:35:17
      Zitat von faultcode:
      OK, heute das erste Long-Signal (korrekterweise). Raus aus Shorts zum Close heute hin (nach den Regeln) und alle Signale beachten (kann Morgen schon wieder vorbei sein mit "Long"...):

      so ist es:

      18:44
      Leaving a sideways market.
      Short $TSLA!
      Waiting for first long signal.


      Tesla | 167,34 $
      Avatar
      schrieb am 08.05.23 20:35:17
      Beitrag Nr. 17 ()
      Beta 2023-05-08
      OK, heute das erste Long-Signal (korrekterweise). Raus aus Shorts zum Close heute hin (nach den Regeln) und alle Signale beachten (kann Morgen schon wieder vorbei sein mit "Long"...):



      Oder halt in einem mutmaßlichen Seitwärtsmarkt nichts machen, aber alte Trades abschließen (mit kürzerem Zeithorizont).

      Vermutlich werde ich noch eine Zeit lang an diesem Programm arbeiten.

      Die korrekte Initialisierung (der Flags), egal wo sich der Markt bei Programmstart gerade befindet, ist noch ein Problem, um die Sache wirklich robust für alle Lebenslagen zu machen. Am Wochenende war ja kein Handel für einen ersten Härtefall.

      Da gibt es ja verschiedene Konzepte bei (Quasi-)Echtzeitsystemen. Ich lasse das Programm 24/7 durchlaufen (23 x 1h-sleep bis 18:00:00h dt. Zeit + 1h Toleranz) und nicht handelstäglich vom OS (Ubuntu 22.04.2 LTS) starten. Außer bei OS-Start, wo es automatisch mitstarten soll. Also zeigen mir Flags in einer Log-Datei an, wo das Programm gerade steht:
      2023-05-08 19:44:54.076894 flags:
      SHORT_FLAG = 0
      LONG_FLAG = 1
      FIRST_EMAIL_AVTIVATION = 0
      LONG_WMA = 0
      LONG_SSF = 0
      LONG_ALPHA_BETA= 1
      SHORT_WMA = 0
      SHORT_SSF = 0
      SHORT_ALPHA_BETA = 0


      Immerhin muss ich null Änderungen für Python3-Code auf Ubuntu vornehmen (da hatte ich schon andere Fälle mit Windows <=> Ubuntu).

      Ein Nachteil bei Finanz-Programmen ist der Wunsch oder sogar Zwang zum Backtesten. Das ursprüngliche (und flexible) Programm hat mit dem 24/7-Email-Alert-Programm (*) praktisch nichts mehr zu tun. Ich muss also 2 Programme pflegen. Bei erfolgreichen Änderungen bei einem Programm kann es also beim mitunter notwendigen Ideen-Übertrag auf das andere Programm auch wieder Probleme geben.

      (*) ich benutze dafür den einfachen smtplib — SMTP protocol client (https://docs.python.org/3/library/smtplib.html) von einem Yahoo-Email-Konto auf ein anderes (ohne Chart-attachment bei Alarm z.Z.).
      Dienste wie Google etc. sehen solche App-Login's nicht mehr gerne. Das war früher alles viel einfacher. Heutzutage wollen dich die Internet-Giganten in ihre Ökosysteme in ihren Clouds pressen -- und ich unterstelle: unter dem Vorwand der "IT-Sicherheit".
      Yahoo-Email erlaubt noch ein spezifisches App-Password: https://de.hilfe.yahoo.com/kb/SLN15241.html. Mal sehen, wie lange noch:

      "...Bei einigen älteren E-Mail-Apps von Drittanbietern..." :rolleyes:
      Tesla | 171,03 $
      1 Antwort
      Avatar
      schrieb am 04.05.23 15:13:59
      Beitrag Nr. 16 ()
      Antwort auf Beitrag Nr.: 73.786.092 von faultcode am 04.05.23 14:56:36
      Zitat von faultcode: ...
      Als Plan:
      • jeder neue Indikator muss dieses Set in irgendeiner Form übertreffen, um berücksichtigt zu werden (ein paar habe ich noch vor anzutesten)
      ...

      zum Beispiel John Ehlers' Laguerre Filter (*):



      => dieser Filter neigt zum Über- bzw. Unterschwingen im Vergleich zum WMA45d bei Standard-Parameter Gamma = 0.8. Daran vorsichtig zu drehen (0.70 <= Gamma <= 0.85) brachte aus meiner Sicht keine Verbesserung


      (*) und wie immer gilt: Vorsicht bei Angaben im Internet (oder Veröffentlichungen aller Art eigentlich; selbst das berühmte Kalman-Original-Papier von 1960 z.B. wies Fehler auf...), selbst bei vermeintlich korrekten Quellen: http://www.davenewberg.com/Trading/TS_Code/Ehlers_Indicators…: dort sieht man z.B. (mMn) leicht einen Formel-Fehler:

      FIlt=(L0+2*L1+2*L1+L3)/6; --> korrekt: FIlt=(L0+2*L1+2*L2+L3)/6;
      Tesla | 147,60 €

      Trading Spotlight

      Anzeige
      East Africa Metals
      0,1390EUR +11,20 %
      East Africa Metals: Geht jetzt der Kurs durch die Decke? mehr zur Aktie »
      Avatar
      schrieb am 04.05.23 14:56:36
      Beitrag Nr. 15 ()
      3 Basis-(Benchmark)-Indikatoren
      ich mache nun einen Gedankensprung und komme gleich auf mein (vorläufiges) Basis-Set an Indikatoren nach einigen Experimenten und meinen Erfahrungen:

      1. WMA (Weighted Moving Average) mit Fensterbreite 45 (Handelstage), statt meiner üblichen 50. WMA ist mMn "besser" als der sonst in dieser Hinsicht übliche EMA (Exponential Moving Average), zumindest bei $TSLA. Jede neue Indikator muss diesen Basis-Indikator als Benchmark übertreffen ohne übertriebenes Backtesting

      2. alpha-beta-Filter mit α = 0.05, β = 0.0009

      3. John Ehlers’ Super Smoother filter (SSF) mit Fensterbreite 65d (a 2-pole Butterworth filter combined with a 2-bar SMA that suppresses the Nyquist frequency => coef1=(1-b1+a1*a1)/4; (*))
      http://www.davenewberg.com/Trading/TS_Code/Ehlers_Indicators… (*)
      https://de.wikipedia.org/wiki/Butterworth-Filter
      https://www.tradingview.com/script/vBLM3kxr-Ehler-s-Super-Sm… (**)





      Alle drei Filter lassen sich auch ganz einfach und zuverlässig zu Fuss rekursiv programmieren. Denn was nutzt das beste Python-Fremd-Modul, wenn es in Runtime XY nicht läuft? Für den WMA und SSF nehme ich vorerst aber das pandas_ta-Modul: https://pypi.org/project/pandas-ta/#description

      Diese Parameter (45d, 65d, α = 0.0500, β = 0.00090) sind ein bischen hand-optimiert auf die großen Umschwünge ab Sommer 2022 bis März 2023.

      WMA und Super Smoother brauchen Einschwingzeit (**). Manchmal werden dabei ab Tag 1 Surrogat-Werte (zweifelhafter Natur) genommen, was ich (hier) nicht mache. Nur der alpha-beta-Filter läuft sofort "richtig" los. Daher sind (meine) Indikatoren-Zeiträume auch nie so ganz 1:1 vergleichbar. Der Bereinigungsaufwand ist mir einfach zu hoch.


      Als Plan:
      • jeder neue Indikator muss dieses Set in irgendeiner Form übertreffen, um berücksichtigt zu werden (ein paar habe ich noch vor anzutesten)
      • Parameter-Fitting habe ich nicht vor zu machen, d.h. obige Parameter sollen durchgezogen werden (laufend perfektes Fitting hatte ich schon mit dem Savitzky-Golay-Filter :rolleyes: )
      • das Volumen, obwohl mMn sehr wichtig, will ich auch weglassen. Dafür habe ich meine bewährten VaP-Charts
      • eigene Parameter-Adaptionen lasse ich weg, v.a. eigene vola-orientierte, es sei denn, sie sind (Standard-)Teil eines Indikators, wie z.B. beim "Fractal Adaptive Moving Average", "Kaufman Adaptive Moving Average", usw.

      => bei der $TSLA-Vola kann ich keine zuverlässige Regel aufstellen, so iSv: Vola runter => Kurse rauf, Vola rauf => Kurse runter, Vola über Schwellwert XY => dann passiert das und das, usw:




      => schon mal aufgefallen? Die durchschnittliche Vola bei $TSLA geht laufend zurück. Nun bei 0.395 (Varianz), vor ein paar Wochen noch bei 0.407 (jeweils für das letzte laufende Jahr)

      => wer vor einem Jahr oder so die falschen Langzeit-Puts kaufte, hat möglicherweise schon entsprechend Geld verloren, obwohl er in Tendenz richtig lag
      Tesla | 148,16 €
      5 Antworten
      Avatar
      schrieb am 03.05.23 13:06:19
      Beitrag Nr. 14 ()
      Antwort auf Beitrag Nr.: 73.776.528 von faultcode am 03.05.23 12:46:57
      der Kampf gegen die Slippage (5)
      Zitat von faultcode: ...
      Denn ich also Normalo kann nicht Signale handeln kurz nachdem sie entstanden sind (und das ist auch nicht meine Absicht). Würde also ein Signal an der Nasdaq nach dem Closing Cross (--> https://nasdaqtrader.com/Trader.aspx?id=OpenClose) erzeugt werden, ist so ein Aktienkurs aus der "Finanzfolklore" für mich nur vermutlich weit in den Afterhours verfügbar (wenn überhaupt). ...

      und so sieht das dann in der Realität bei mir auch aus. Überall ungenaue Kurse, mal mehr, mal weniger (im pandas.DataFrame):




      Nein, ich werde mir kein Preis-Abo zulegen. Gary Black guckt jeden Tag in sein Bloomberg-Terminal und ist auch nicht schlauer:


      https://www.bloomberg.com/news/videos/2023-03-02/gary-black-…
      Tesla | 145,72 €
      Avatar
      schrieb am 03.05.23 12:46:57
      Beitrag Nr. 13 ()
      der Kampf gegen die Slippage (4)
      mir ist ein älteres Interview von 2017 mit einem japanischen Quant-Trader eingefallen (Buy side, kein HFT oder Market maker): https://www.wallstreet-online.de/diskussion/1256297-121-130/…
      ("Bringt hohe Sophistication etwas am Aktienmarkt? -> Bisher nicht (3e): Quant-Interview")

      Hier findet man sogar noch den Original-Artikel:

      January 2017
      Artificial Intelligence: The new frontier for hedge funds
      http://www.eurekahedge.com/NewsAndEvents/News/1614/Artificia…

      ...und darin finde ich Aussagen zu Problemen, die ich auf meinem Weg bislang auch hatte, aber auch mögliche Lösungen, wie hier die derzeit wichtigste für mich:

      Mit dem Modell wird zweimal am Tag in Japan gehandelt, bei Markteröffnung und Marktschluss,...


      Gestern Abend nämlich ist mir auch diese Idee gekommen, die schlechte open to open-Vola bei $TSLA hin oder her -- und es sieht bislang, vermutlich dank der Intraday-Reversion-to-Mean bei $TSLA, gar nicht so schlecht aus wie befürchtet.

      Denn ich also Normalo kann nicht Signale handeln kurz nachdem sie entstanden sind (und das ist auch nicht meine Absicht). Würde also ein Signal an der Nasdaq nach dem Closing Cross (--> https://nasdaqtrader.com/Trader.aspx?id=OpenClose) erzeugt werden, ist so ein Aktienkurs aus der "Finanzfolklore" für mich nur vermutlich weit in den Afterhours verfügbar (wenn überhaupt).

      Mein Algo, bzw. ich selber, kann also keine market-on-close (MOC)-Order am selben Tag mehr erfolgreich abgeben, wenn mein schnödes Algo-Trading-Skript erst um 23:00h deutscher Zeit oder so den Close-Price bei Yahoo Finance auslesen kann.


      Und damit entfällt für mich auch (bislang oder wieder) irgendein Nutzen aus den daily High und Low-Kursen: denn ich weiß ja erst nach offiziellem Handelsschluss, wann diese High- und Low-Kurse überhaupt entstanden sind.

      Aber abgesehen von Störungen weiß ich, wann Open und wann High (ungefähr) erzeugt werden und ich kann entsprechende Aufträge (in Deutschland) halbwegs in der Nähe des nächsten Open bzw. Close abgeben

      => also bin ich nun bei einem (sehr einfachen) All signals based on open prices --> all trades at close prices of same day-Modell (vorerst) gelandet:
      • "all trades at close prices of same day" wenn möglich (und opportun) um z.B. 21:50h deutscher Zeit ausführen, auch wenn Leute wie Renaissance Technologies in den letzten 15 Minuten den Kurs bei $TSLA ab und zu, aber massiv bewegen:

      Tesla | 145,72 €
      1 Antwort
      Avatar
      schrieb am 02.05.23 21:52:06
      Beitrag Nr. 12 ()
      Antwort auf Beitrag Nr.: 73.762.749 von faultcode am 01.05.23 00:32:01
      TSLA intraday: Reversion to mean?
      Zitat von faultcode: ...
      ohlc4 = (Open + High + Low + Close) / 4 (daily) = daily "typical price" (damit "vernichte" ich Informationen (mMn) nur teilweise, glätte aber auch schon mal ein bischen vor)

      --> nein:

      2022-01-03 - 2023-05-01
      Vola daily open to open = 64.90
      Vola daily close to close = 64.39
      Vola daily ohlc4 to ohlc4 = 64.53
      Vola daily hlc3 to hlc3 = 64.48
      Vola daily ukf(ohlc4) to ukf(ohlc4) = 65.05
      Vola daily kf(ohlc4) to kf(ohlc4) = 77.72
      Vola daily ukf(close) to ukf(close) = 64.74


      (kf = (linearer) Kalman filter
      ukf = (nicht-lin.) unscented Kalman filter)

      => and the winner ist: daily close to close-prices! :eek:

      Ja, ist nicht viel, aber immerhin. Und natürlich kann sich sowas - bei diesen knappen Abständen - auch immer im Laufe der Zeit verschieben. Und ja, eine schnöde Vola (mit numpy.std) (= Standardabweichung) mag hier nicht der Weisheit letzter Schluss sein, aber trotzdem.

      Und ja, UKF-filtern bringt was im Gegensatz zu KF-filtern (mit denselben Q=0.004-, R=0.400-Parametern für System- und Messrauschen als Annahme, was sich im Laufe meiner Experimente als ganz OK gezeigt hat).
      Aber was wäre damit am Ende gewonnen?

      ukf(close) to ukf(close) = 64.74

      ist trotzdem so gesehen schlechter als:

      close to close = 64.39

      Also nehme ich für Weiteres nur noch $TSLA-close-to-close-Kurse und beerdige hiermit das (nette) Kalman-Experiment (ich hab ja was dabei gelernt...). Das heißt, so ganz wird es (vermutlich) nicht sein, denn den verwandten (und uralten) alpha-beta-Filter behalte ich (fürs Erste) und auf den wäre ich ohne den Kalman-Filter nicht gekommen. Ich kann mich nicht erinnern, daß ich von dem zuvor schon hörte (und wenn doch, ich es wieder vergaß).

      Wobei ich den als eine Art Moving Average missbrauche und nicht als Zustandsschätzer:

      The a-b filter is called suboptimal. But don't interpret that to mean it performs poorly. On the contrary, the a-b filter can be a highly effective smoother.
      http://www.pennelynn.com/Documents/CUJ/HTML/93HTML/199301CC.…


      Ansonsten zur X-X-Vola:
      • ich erkläre mir das so, daß Anleger (Mensch + Maschine) bei $TSLA beim Open etwas "unkontrolliert" auf die News der Vorabends reagieren und sich das im Laufe des Handeltages bis zum Close wieder legt (--> Reversion to mean).

      Es kann aber natürlich auch sein, daß z.B. beim S&P 500 das mit der open to open- und close to close-Vola eh schon so ist. Ist mir an dieser Stelle aber egal.
      Tesla | 159,74 $
      Avatar
      schrieb am 01.05.23 19:04:45
      Beitrag Nr. 11 ()
      Antwort auf Beitrag Nr.: 73.764.972 von faultcode am 01.05.23 17:45:19
      Backtesting und Smoothers: keine gute Kombination
      dem aufmerksamen Leser wird vielleicht aufgefallen sein, daß z.B. die letzte rote vertikale Linie (mit Shortsignal vom 2023-04-03) nicht mehr am Platz ist, sondern kurz vorher: :eek:

      --> das ist eben der Natur einer Optimierung mit einem Glätter in Fensterbreite wie dem Savitzky-Golay-Filter: der älteste ohlc4-Preis ("typical") ist heute aus dem Fenster rausgerutscht und dafür neu ein ohlc4-Preis vom 1.5. hereingekommen, über den zusammen mit 49-Altpreisen ein neues Polynom über die neue Menge von 50 ohlc4-Preisen gebildet wird -- während der Kalman-Filter einmal (pro Tag) seinen Ausgangswert berechnet und für immer ablegt:

      neu von heute:




      alt vom 28.4.2023:




      Schaut man in den Kalender, dann ist Stand heute das Short-Signal vom Montag, 2023-04-03, auf Freitag, 2023-03-31, um einen Handelstag vorgerutscht:



      Und das ist sehr schlecht, weil es zeigt, daß so ein Smoother wie der Savitzky-Golay-Filter in einer Seitwärtsbewegung bei $TSLA viel zu wilde Ausschläge machen kann, so daß nicht nur ältere Long-/Short-Signale laufend verschoben werden in der Rückschau, hier z.B. bis eben zum entscheidenden 2023-04-03, sondern auch Signale nur vorübergehend gebildet werden können: :eek:




      => also wieder zurück ans Reißbrett und statt dem Savitzky-Golay-Filter (gleich welcher Art) wieder ein nichtlinearer Kalman-Filter wie dem UKF: https://www.wallstreet-online.de/diskussion/1291475-1-10/rou…
      Tesla | 161,33 $
      • 1
      • 5
      • 6
       DurchsuchenBeitrag schreiben


      Investoren beobachten auch:

      WertpapierPerf. %
      -1,96
      +0,35
      +1,40
      +0,04
      +0,03
      -1,23
      -1,71
      -0,20
      +0,61
      +1,59
      TSLA long/short -- faultcode's Savitzky-Golay-Kalman-Oscillator (SGKO)