Extrempunkte im Liniendiagramm bestimmen



  • Hallo an Alle.

    Ich will in einem Liniendiagramm siehe Anhang, bestimmte Extrempunkte finden.
    Diese Extrempunkte (rot dargestellt) stelle ich mir vor, mit Hilfe von Parabeln oder kurven zu bestimmen ( blau dargestellt), diese sollen eine Mindestgröße haben, ansonsten wäre ja jeder Wendepunkt ein Extrempunkt.

    Wie könnte ich in einem Datensatz von x/y Koordinaten mathematisch nach einer Parabel oder Kurve suchen, trotz einer gewissen Streuung, wie auf der Abbildung zu sehen ist. Einfach einen Durchschnitt als Glättung zu nehmen funktioniert nicht, da die Streuung unterschiedlich stark auftritt.

    Hat jemand eine Idee, auf anderem Wege diese Extrempunkte zu finden?

    Link zur Abbildung

    http://www.bilder-upload.eu/show.php?file=2b9ad2-1499520197.png



  • Also die erste Ableitung auf 0 setzen. Das gilt ja für alle Kurven.
    Sind diese Kurvenstücke kubische Splines? Dann ist die Ableitung quadratisch d.h. dann noch PQ-Formel anwenden um die x-werte der Extremstellen zu kriegen.



  • Soll das ein Aktienkurs sein und Du möchtest zukünftige Extremstellen vorhersagen? Wenn ja: Vergiss es, das funktioniert nicht. Vergangene Extremstellen kannst Du natürlich entweder entsprechend des Rezeptes von Fricky667 finden oder Du formulierst einfach ein Kriterium, mit dem Du entsprechende Extremstellen direkt in der Ausgangskurve suchst. Die Frage ist da eben, ob Du Extremstellen mit einem gewissen Kriterium in der Ausgangskurve finden möchtest oder ob Du Extremstellen in Deinem Model finden möchtest, das Du irgendwie an den eigentlichen Kurvenverlauf anpasst.

    Wenn das tatsächlich ein Kursverlauf einer Aktie ist, solltest Du folgendes bedenken: Es gibt zwar Leute, die versuchen, aufgrund so eines Kursverlaufs Vorhersagen für die Zukunft zu machen, das ist aber höchst zweifelhaft. Du siehst dann Leute, die willkürlich irgendwelche Geraden in den Kursverlauf einzeichnen oder gucken, wann der Kurs die "200-Tages-Linie" kreuzt. Wenn das ansatzweise funktionieren sollte, dann aber maximal weil es indirekt die Psyche der Anleger in die Betrachtung einbezieht. Es gibt eben Leute, die auf so etwas gucken und dann auf dieser Basis Entscheidungen treffen. Wenn man dann in der Herde ist und deshalb frühzeitig kauft, wenn viele plötzlich meinen, sie müssten die Aktie kaufen, dann ist das so eine selbsterfüllende Prophezeihung. Die basiert aber darauf, dass die Leute alle im Wesentlichen das gleiche im Kurs sehen. Wenn Du jetzt ein ambitioniertes Modell an den Kursverlauf fittest, dann sehen das andere nicht und so ein Phänomen wird nicht auftreten.

    Wenn Du ein Naturwissenschaftler bist, dann weißt Du, dass ein Fit nur dann sinnvoll ist, wenn dahinter auch eine entsprechende Theorie steckt, die die angenommene analytische Form der Kurve rechtfertigt.

    BTW: Die von Dir verlinkte Seite ist nicht glücklich darüber, dass ich einen Adblocker nutze. Ich konnte trotzdem einen Teil des Bildes sehen. Wenn Du irgendwann mal wieder Links zu Bildern postest, dann wäre es vielleicht eine gute Idee, vorher sicherzustellen, dass die genutzte Seite kein Hindernis dieser Art aufweist. Ich werde meinen Adblocker nicht abstellen, um hier eine Frage zu beantworten. Ich vermute, viele andere Nutzer dieses Forums würden das auch eher nicht machen.



  • Gregor schrieb:

    Soll das ein Aktienkurs sein und Du möchtest zukünftige Extremstellen vorhersagen? Wenn ja: Vergiss es, das funktioniert nicht. Vergangene Extremstellen kannst Du natürlich entweder entsprechend des Rezeptes von Fricky667 finden oder Du formulierst einfach ein Kriterium, mit dem Du entsprechende Extremstellen direkt in der Ausgangskurve suchst. Die Frage ist da eben, ob Du Extremstellen mit einem gewissen Kriterium in der Ausgangskurve finden möchtest oder ob Du Extremstellen in Deinem Model finden möchtest, das Du irgendwie an den eigentlichen Kurvenverlauf anpasst.

    Wenn das tatsächlich ein Kursverlauf einer Aktie ist, solltest Du folgendes bedenken: Es gibt zwar Leute, die versuchen, aufgrund so eines Kursverlaufs Vorhersagen für die Zukunft zu machen, das ist aber höchst zweifelhaft. Du siehst dann Leute, die willkürlich irgendwelche Geraden in den Kursverlauf einzeichnen oder gucken, wann der Kurs die "200-Tages-Linie" kreuzt. Wenn das ansatzweise funktionieren sollte, dann aber maximal weil es indirekt die Psyche der Anleger in die Betrachtung einbezieht. Es gibt eben Leute, die auf so etwas gucken und dann auf dieser Basis Entscheidungen treffen. Wenn man dann in der Herde ist und deshalb frühzeitig kauft, wenn viele plötzlich meinen, sie müssten die Aktie kaufen, dann ist das so eine selbsterfüllende Prophezeihung. Die basiert aber darauf, dass die Leute alle im Wesentlichen das gleiche im Kurs sehen. Wenn Du jetzt ein ambitioniertes Modell an den Kursverlauf fittest, dann sehen das andere nicht und so ein Phänomen wird nicht auftreten.

    Wenn Du ein Naturwissenschaftler bist, dann weißt Du, dass ein Fit nur dann sinnvoll ist, wenn dahinter auch eine entsprechende Theorie steckt, die die angenommene analytische Form der Kurve rechtfertigt.

    BTW: Die von Dir verlinkte Seite ist nicht glücklich darüber, dass ich einen Adblocker nutze. Ich konnte trotzdem einen Teil des Bildes sehen. Wenn Du irgendwann mal wieder Links zu Bildern postest, dann wäre es vielleicht eine gute Idee, vorher sicherzustellen, dass die genutzte Seite kein Hindernis dieser Art aufweist. Ich werde meinen Adblocker nicht abstellen, um hier eine Frage zu beantworten. Ich vermute, viele andere Nutzer dieses Forums würden das auch eher nicht machen.

    Hallo Gregor,

    zutreffend erkannt, es handelt sich um einen Devisenkurs.

    Ich will damit nicht die Zukunft vorhersagen, jedoch eine Annahme überprüfen, die mit Psychologie zutun hat. Leider sind meine Kenntnisse in Mathematik ungenügend, jedoch sollte es von der Logik her, kein Problem seien aus einer Datenmenge, Muster herauszusuchen, wie eine Parabel. Hast du vlt eine Vorstellung wie das sonst noch machbar wäre?



  • Erläuter doch mal etwas weitgehender, was Du vor hast. Willst Du nur eine glatte Kurve haben, in der Du gut irgendwelche Extremstellen erkennen kannst? Oder muss die Kurve eine bestimmte analytische Form haben, wenn ja: Welche? Was genau möchtest Du dann mit der Kurve machen?

    Was Du bisher geschrieben hast war sehr technisch auf Deinen bisherigen Ansatz bezogen. Darauf hat Dir Fricky667 genau die richtige Antwort gegeben. Aber wenn Deine Problemstellung eigentlich mehr Freiheitsgrade in der Antwort zulässt, dann musst Du das irgendwie in Deinen Beiträgen klar machen.





  • Mag seien dass ich die frage unverständlich gestellt habe, ich versuchs nochmal.

    Ich will, dass ein Computer Programm nach solchen Extremstellen wie in der Abbildung dargestellt sucht.

    Nun habe ich überlegt woran Ich selbst diese Punkte erkenne, mir erschien ein Vergleich mit einem durchhängendem Seil oder Wölbung als passend, denn Am anfang und Ende sowie Tiefstpunkt sind die Extremstellen. Daher auch die Suche nach einer Parabel/Kurve.

    Ferner kann ich nach einer Kurve mit bestimmter Tiefe suchen, die deutlich größer ist, als die meisten Fraktale (oder auch Streuung wenn man so mag) aus denen der Kurs besteht.

    Der Lösungsansatz von Fricky667, geht in die gewünschte Richtung, da im Grunde ein vorhandener Trend am Extrempunkt gebrochen wird. Dieser kann aus mehreren Fraktalen bestehen die als unbedeutend bewertet werden falls sie in Trendrichtung gerichtet sind.
    Das Problem das ich dabei sehe ist, dass diese Methode zu ungenau ist, ich will die "Tiefe" vorgeben.

    Ansonsten bin ich auch für andere Lösungsformschläge offen wie solche Extremstellen gefunden werden können.



  • Ich weiß nicht, was Du hier mit "Tiefe" meinst, aber ich gehe davon aus, dass Du die hochfrequenten Kursschwankungen herausfiltern möchtest. In dem Fall bietet es sich an, einen Tiefpassfilter anzuwenden, bzw. einfach eine Funktion zu definieren, die an jeder Stelle der Kurve den Mittelwert der Kurve aus einer Umgebung um die Stelle herum annimmt. Die entstehende Funktion sollte nur noch wenige Extremstellen haben, wie Du es gerne hättest.



  • Danke soweit.

    Tiefe bedeutet, siehe in der Abbildung.

    http://www.bilder-upload.eu/show.php?file=a144c3-1499637642.png

    Kannst du mir auch konkret zeigen, wie ich so eine Tiefpass Funktion oder "die an jeder Stelle der Kurve den Mittelwert der Kurve aus einer Umgebung um die Stelle herum annimmt" anwende?
    Meine Fähigkeiten in Mathematik sind sehr begrenzt, ich habe gehofft es gibt bereits eine fertige Funktion für soetwas, wo ich einfach Werte einsetze und die Sache läuft.



  • Wissenshunger schrieb:

    Mag seien dass ich die frage unverständlich gestellt habe, ich versuchs nochmal.

    Ich will, dass ein Computer Programm nach solchen Extremstellen wie in der Abbildung dargestellt sucht.

    Nun habe ich überlegt woran Ich selbst diese Punkte erkenne, mir erschien ein Vergleich mit einem durchhängendem Seil oder Wölbung als passend, denn Am anfang und Ende sowie Tiefstpunkt sind die Extremstellen. Daher auch die Suche nach einer Parabel/Kurve.

    Du kannst es auch ganz einfach haben. Du scannst die Punkte (z.B.) von Punkt 1 bis Punkt n einzeln durch. Wenn du eine Richtungsänderung der Steigung festellst, dann speicherst du den Punkt ab. Bist du damit durch, dann nimmst du die Punkte mit den kleinsten und größten y-Werten (also so viele wie du brauchst, 7 in deinem Bild). Und das sind dann die Extrempunkte.



  • Wissenshunger schrieb:

    Kannst du mir auch konkret zeigen, wie ich so eine Tiefpass Funktion oder "die an jeder Stelle der Kurve den Mittelwert der Kurve aus einer Umgebung um die Stelle herum annimmt" anwende?
    Meine Fähigkeiten in Mathematik sind sehr begrenzt, ich habe gehofft es gibt bereits eine fertige Funktion für soetwas, wo ich einfach Werte einsetze und die Sache läuft.

    Bau Dir etwas in der folgenden Art. k ist Deine Messkurve und geht von 1 bis n, f die geglättete Funktion. Die "Ränder" lasse ich mal weg.

    Pseudocode...

    m = 10 (oder eine andere Konstante)
    DO i = 1+m to n-m
       t = 0
       DO j = i-m to i+m
          t = t + k[j]
       END DO
       t = t / (2*m+1)
       f[i] = t
    END DO
    

Anmelden zum Antworten