Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Little update for your pull request #3

Closed
wants to merge 3 commits into from
Closed

Little update for your pull request #3

wants to merge 3 commits into from

Conversation

Nirus2000
Copy link

@Nirus2000 Nirus2000 commented Oct 15, 2022

  1. Press SHIFT + mouse button 1 for drawing.
    1.1. SHIFT + mouse button 1 can be released while aiming at the second point.
  2. Press mouse button 1 resets the diagram again
  3. Textbox revised, but I had no time to add the translations.
  4. Fixed point 1 is greater than point 2. (Calculation error)
  5. I think the painting delay is fixed
  6. Rename Crosshair feature to MeasureLine
  7. Delete Crosshair painter

The position of the textbox should be better positioned now. If it is very far to the right in the chart, it is no longer displayed. Maybe it should be drawn via setupTooltip();.

Have fun... 🍺 🍺 🍺 🍺 🍺
Alex

1. Press SHIFT + mouse button 1 for drawing.
1.1. SHIFT + mouse button 1 can be released while aiming at the second point. 
2. Press mouse button 1 resets the diagram again
3. Textbox revised, but I had no time to add the translations.
4. Fixed point 1 is greater than point 2. (Calculation error)
5.  I think the painting delay is fixed
6. Rename Crosshair feature to MeasureLine
7. Delete Crosshair painter

The position of the textbox should be better positioned now. If it is very far to the right in the chart, it is no longer displayed. Maybe it should be drawn via `setupTooltip();`.

Have fun... 🍺 🍺 🍺 🍺 🍺
Alex
Add start and end date in measurement line
@OnkelDok
Copy link
Owner

Hey @Nirus2000, danke für deine Vorschläge. Ich antworte mal auf Deutsch, geht erstmal schneller.

Das mit dem Shift als Indikator zum Zeichen ist eine gute Idee.

In deinem Vorschlag nutzt du ja die Datumswerte und berechnest alle Verhältnisse immer nachdem diese nach datum sortiert werden. Das hatte mich bei dem ersten Versuch verwirrt (hatte vorher den Code nicht angeschaut). Ich hatte dann quasi fast auf dem gleichen Datumswert von unten nach oben gemessen und mich gewundert, wieso die Werte so springen, wenn ich den zweiten Punkt mal vor und mal hinter den ersten Punkt gesetzt hatte.
Denn das Messtool, was ich angelegt hatte, hatte immer genauso gemessen wie der Nutzer das vorgibt (erster Punkt = Start, zweiter Punkt = Ende). Das hat den Vorteil, wenn man z.B. den Abstand zwischen SMA200 und dem Kurs an einem bestimmten Datum ermitteln möchte. Wobei man hierfür sicherlich sogar noch ein anderes Messtool anbieten könnte, was generell immer nur an einem Tag misst (mit Punkt 1 wird Datums-Wert (x) gesetzt und ist fest und Punkt 2 kann dann nur noch in y-Richtung verschoben werden.
Unsere beiden Vorschläge wären in dem Sinne zwei verschiedene Ansätze etwas zu messen und könnten quasi ja zwei Modi sein, die man umschaltet.
Da gibt es sicherlich noch mehr. Da könnte man Auswahlbuttons in einem Menü bereitstellen, mit welchem der gewünschte Messmodus gewählt werden kann, bevor man dann das Messen beginnt.

Das einfache Fadenkreuz ist in deinem Vorschlag ja komplett rausgeflogen. Findest du das sollte nicht angeboten werden?
So auf die Schnelle würden mir folgende Tools einfallen:

  • Fadenkreuz
  • Freies Messen
  • Messen mit Berücksichtigung der Daten
  • Vertikales Messen (quasi Messen zweier Punkte auf einer vertikalen Linie)

Vielleicht bringt es auch was diese Ideenfindung im Forum zu führen. Könnte gut möglich sein, dass es da einige Vorschläge und Meinungen gibt.

Ansonsten verstehe ich nicht ganz was du mit deinem Punkt 4 meinst. Die Berechnung für die prozentuale Abweichung ist ja quasi gleichgeblieben. Aus vorher p2/p1-1 hast du (p2-p1)/p1 gemacht, was ja genau das Gleiche berechnet, nur in einer anderen Form.
Die Berechnung für die relative Abweichung verstehe ich nicht. Ich verstehe darunter einfach das Verhältnis zwischen den beiden Punkten p2/p1 also wenn p1 = 320 und p2 = 160, dann ist das Verhältnis 0,5 (Wert2 ist 50% von Wert1).
Du hast da die Berechnung 1 - (p1-p2)/p2 durchgeführt. Eine andere Form davon wäre 1 - (p1-p2)/p2 = 1 - (p1/p2)+(p2/p2) = 1 - (p1/p2) + 1 = 2 - p1/p2. Mit p1 = 320 und p2 = 160 würde ja 0 (0%) rauskommen. Was sagt das aus?

Die Frage ist ob man erstmal nur eine simple Version als PR für PP anlegt, damit Andreas erstmal seine generelle Meinung dazu loswerden kann. Und dann eben Erweiterungen/Verbesserungen erarbeitet.

@Nirus2000
Copy link
Author

Nirus2000 commented Oct 15, 2022

Hallo @OnkelDok
ja... ich hatte mit so einer Antwort gerechnet... 😆

Das einfache Fadenkreuz ist in deinem Vorschlag ja komplett rausgeflogen. Findest du das sollte nicht angeboten werden?

Ja, ich hatte mehrere Gründe.
Zum einen ist die Darstellung im Chart schlecht.
Je weiter man nach rechts im Chart geht, verschwindet das Datum dann... man müsste Anfangen die Labels immerwieder nach rechts oder links der Y-Achse verschieben. Das selbe gilt für das Label der Y-Achse.
Oder sitzen die beiden Messpunkte zuweit rechts, überlappen sich beide, was auch wieder zu unmut führt.

So auf die Schnelle würden mir folgende Tools einfallen:

  • Fadenkreuz
  • Freies Messen
  • Messen mit Berücksichtigung der Daten
  • Vertikales Messen (quasi Messen zweier Punkte auf einer vertikalen Linie)

Generell würde ich erstmal eine einfache Version bevorzug, bevor wir diese erweitern und andere Modi's anbieten.
Das Umschalten der Modi's wäre dann erstmal zu erörtern... z.B. durch einen weiteren/alternativen HotKey.
Ich würde erstmal anfangen mit der einfachsten Version, welche "Messen mit Berücksichtigung der Daten (Datum)" beinhaltet.
Also "Datumsgenaues Messen" oder wie auch immer... 🥲

Ansonsten verstehe ich nicht ganz was du mit deinem Punkt 4 meinst. Die Berechnung für die prozentuale Abweichung ist ja quasi gleichgeblieben. Aus vorher p2/p1-1 hast du (p2-p1)/p1 gemacht, was ja genau das Gleiche berechnet, nur in einer anderen Form.
Die Berechnung für die relative Abweichung verstehe ich nicht. Ich verstehe darunter einfach das Verhältnis zwischen den beiden Punkten p2/p1 also wenn p1 = 320 und p2 = 160, dann ist das Verhältnis 0,5 (Wert2 ist 50% von Wert1).
Du hast da die Berechnung 1 - (p1-p2)/p2 durchgeführt. Eine andere Form davon wäre 1 - (p1-p2)/p2 = 1 - (p1/p2)+(p2/p2) = 1 - (p1/p2) + 1 = 2 - p1/p2. Mit p1 = 320 und p2 = 160 würde ja 0 (0%) rauskommen. Was sagt das aus?

Man muß sich zunächst entscheiden, welchen der beiden Werte man als Bezugsgröße und welchen man als den abweichenden Wert betrachten will. Das Ergebnis fällt hierbei unterschiedlich aus.
Durch das festsetzen des Punkt 1 und Punkt 2 legen wir die Bezugsgrößen fest. Ergo Datumsrelevant.
(Es ist dabei ganz egal, ob b größer als a ist oder a größer als b. In einem Fall wird die Abweichung positiv, im anderen Fall negativ.)

p1 = 60 und p2 = 50
Die absolute Abweichung ist 60 - 50 = 10 --> yValP2 - yValP1
Die relative Abweichung ist 1 - (60 - 50) / 50 = 0,8 = 4/5 --> 1 - (yValP1 - yValP2) / yValP2
Die prozentuale Abweichung ist (60 -50) / 50 = 20 % --> (yValP2 - yValP1) / yValP1

Kurse werden kleiner als Beispiel:
absolute Abweichung: Kurs ist um 3,106... EUR gesunken zwischen p1 und p2.
relative Abweichung: von p1 zu p2 ist der Kurs auf 94,07% gefallen.
prozentuale Abweichung: Der Kurs hat sich um 5,60 % verschlechtert.
grafik

Kurse werden besser als Beispiel:
absolute Abweichung: Kurs ist um 1,452... EUR gestiegen zwischen p1 und p2
relative Abweichung: von p1 zu p2 ist der Kurs auf 102,70% gestiegen
prozentuale Abweichung: Der Kurs hat sich um 2,77 % verbessert.
grafik

... so war erstmal der Gedanke, aber es kann auch sein, dass ich mich bei den Rechenformeln hier verrannt habe... 🤣 🙈

Ich glaube der Fehler bei deinen SMA-Beispiel liegt einfach daran, dass ich nach Datum schau und nicht nach Datum+Time, wenn die zwei Punkte fast senkrecht zueinander liegen. 👀

Alles in allem, haben wir beide anscheinend das Potenzial verkannt und nun stehen uns soviel Möglichkeiten zur Verfügung,
das wir uns nicht entscheiden können. 🥇 💯

Daher mach ich mir das jetzt mal einfach 🙊 ... dein nice(!) Feature... deine Entscheidung.

Gruß
Alex

PS: Messen ist irgendwie geiler als ein Fadenkreuz... 😄

@OnkelDok
Copy link
Owner

PS: Messen ist irgendwie geiler als ein Fadenkreuz...

Kann ich verstehen, aber ein Fadenkreuz bräuchte ich auch irgendwie. 😊
Anwendungfall: Unterstützung/Widerstand-Wert ermitteln.

Ich werde unsere beiden Implementierungen wohl mischen (weiß aber noch nicht, wann ich dazu komme). Und die Umschaltung zwischen "Datumsgenauem" (finde ich ein gutes Wort, ggfs als Alternative "Datumskorrekt") und freiem Messen im Code vorsehen. Ist ja dann nur eine Vertauschung der Werte, falls Datumsgenau gemessen werden soll. Wie man das dann umschaltet, können wir ja noch erarbeiten.
Das Fadenkreuz werde ich aber weiterhin drin lassen und die Positonierung der Texte optimieren, sodass sich diese nie überlagern sollten (außer das Fenster ist super klein gezogen, dann ist man aber selber Schuld). Das Fadenkreuz würde dann auch noch die Werte der prozentualen neuen Achse (falls sie kommen sollte: portfolio-performance#3006) anzeigen können.
Vom Handling werde ich das mit dem Shift-Klick auch auf jeden Fall aufnehmen. Sowas schwebt mir da gerade vor:

  • Schift + Einfacher Klick: Fadenkreuz
  • Shift + Mausbewegung: Messtool aktivieren
    • MousUp: zweiten Punkt fixieren

Da werde ich dann mal schauen wie sich das verhält vom Handling.

Ich glaube der Fehler bei deinen SMA-Beispiel liegt einfach daran, dass ich nach Datum schau und nicht nach Datum+Time, wenn die zwei Punkte fast senkrecht zueinander liegen.

Die Kurse liegen ja aber sowieso nur für den Tag vor und nicht für einzelne Stunden. Für mich ist das freie Messen intuitiver (geht wohl aber jedem anders). Wenn (ein anderes Beispiel) eine Aktie in letzter Zeit kontinuierlich gefallen ist, und ich dann mal messen möchte, wieviel %-Punkte sie denn wieder steigen müsste, um wieder dort oben hin zu gelangen, könnte ich nicht einfach das aktuelle Minimum und das letzte Maximum per Datumsgenauem Messtool setzen und ablesen. Egal wie rum ich die Punkte setze, das Tool würde mir immer nur den Verlust in dem Zeitraum ausgeben. Mit einem freien Messtool, könnte ich einfach P1 auf das Minimum (aktueller Tag) und das P2 auf das letzte Maximum (z.B. vor 3 Montaen) setzen und bekämte genau das berechnet, was ich sehen wollte. Ich kann also selber bestimmten welcher Wert der Bezugs-/Referenzwert ist und welcher der Zielwert.

p1 = 60 und p2 = 50
Die absolute Abweichung ist 60 - 50 = 10 --> yValP2 - yValP1
Die relative Abweichung ist 1 - (60 - 50) / 50 = 0,8 = 4/5 --> 1 - (yValP1 - yValP2) / yValP2
Die prozentuale Abweichung ist (60 -50) / 50 = 20 % --> (yValP2 - yValP1) / yValP1

Hier glaube ich einfach, dass die Berechnung der relative Abweichung nicht stimmt - lasse mich aber auch berichtigen.
Mit nachvollziehbaren Zahlen könnte es sichtbar werden:

  • Kurs steigt: p1 = 100 und p2 = 125

    • relative Abweichung würde ich in Worten sagen (ohne rechnen zu müssen): "p2 ist 125% von p1"
    • "Deine" Formel 1 - (p1-p2)/p2 ergibt: 1-(100-125)/125=1,2=120%
  • Kurs fällt: p1 = 100 und p2 = 90

    • relative Abweichung würde ich in Worten sagen (ohne rechnen zu müssen): "p2 ist 90% von p1"
    • "Deine" Formel 1 - (p1-p2)/p2 ergibt: 1-(100-90)/90=0,88=88%

Die prozentuale Abweichung rechnen wir ja gleich (nur in einer anderen mathematischen Form).

Daher mach ich mir das jetzt mal einfach 🙊 ... dein nice(!) Feature... deine Entscheidung.

Schlussendlich habe auch ich nichts zu entscheiden. Andreas @buchen hat ja das letzte Wort.
Ich finde aber regen Austausch gut, weil da sehr oft ziemlich gute Ideen zusammen kommen.

PS: Kann ich deinen PR irgendwie mergen, aber nur Teile daraus verwenden? In der github-Oberfläche sind ja Schaltflächen mit verschiedenen Möglichkeiten. Klingt aber immer so, als ob ich dann die Änderungen komplett übernehme.

@Nirus2000
Copy link
Author

Feel free... copy & paste... wie auch immer 👍🏻

@Nirus2000 Nirus2000 closed this Oct 18, 2022
@Nirus2000 Nirus2000 deleted the patch-1 branch October 18, 2022 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants