Excel

      RE: Sonderbehandlung Break-Even-Trades

      Das ist in der Tat der allereinfachste Fall:

      Quellcode

      1. Option Explicit
      2. Function GreatestSequence(Area As Range, MinMax As Integer) As Integer
      3. Dim CurrentSequence, Result As Integer
      4. Dim Cell As Range
      5. If MinMax <> -1 And MinMax <> 1 Then
      6. Error 1
      7. Else
      8. CurrentSequence = 0
      9. Result = 0
      10. For Each Cell In Area.Cells
      11. If Sgn(Cell.Value) = MinMax Then
      12. CurrentSequence = CurrentSequence + 1
      13. Else
      14. If Sgn(Cell.Value) <> 0 Then ' ignore break even only trades without counting
      15. If CurrentSequence > Result Then Result = CurrentSequence
      16. CurrentSequence = 0
      17. End If
      18. End If
      19. Next Cell
      20. If CurrentSequence > Result Then Result = CurrentSequence
      21. GreatestSequence = Result
      22. End If
      23. End Function
      Jetzt werden Break-Even-Trades mit G/V genau 0 verworfen. Man kann noch über eine minimale Schwelle nachdenken, ab der Trades überhaupt beachtet werden sollen, da man nur in seltenen Fällen auf eine glatte 0 kommt. Da sind die gleichen semantischen Fragen zu klären, insbesondere tendiere ich eher für die Sicht eines Minimal-Schwellen-Trades als Verlierer, da er ja immer noch nichtentlohntes Risiko hatte und Zeit kostete. Die Minimal-Schwelle kann also durchaus sogar einigermaßen hoch sein.

      RE: Sonderbehandlung Break-Even-Trades

      Da hast du natürlich Recht.

      Idealerweise sollten die BE-Trades nicht als Verlierer oder Gewinner gezählt werden, aber auf der anderen Seite auch nicht dazu führen eine Gewinner- oder Verliererserie als beendet zu erklären sollte sich die Serie dann fortsetzen.

      Sonderbehandlung Break-Even-Trades

      Dazu müßte man erst mal genau nachdenken, was das bedeuten soll.

      Ist eine mit Breakeven-Trades beginnende Sequenz Gewinner oder Verlierer? Wird das erst durch den ersten Nicht-Break-Even-Trade später festgelegt? Oder sind sie Gewinner und Verlierer zugleich? Was passiert mit Break-Even-Trades zwischen Gewinnern und Verlierern, verlängern sie die erste oder zweite Sequenz? Oder sind Break-Even-Trades Verlierer, da ohne Nutzen Kapital riskiert und Zeit eingesetzt wurde?

      Im vorliegenden Code werden wirklich nur Gewinner und Verlierer in Folge gezählt. Die Frage war also ganz einfach und auch berechtigt, die Antwort darauf ist schwieriger als die ganze bisherige Lösung.

      Visual-Basic-Funktion in Excel einbauen

      Bei der Visual-Basic-Variante ist es manchmal nicht klar, wo genau man die Funktion hintut. Wenn man am Anfang nur ein paar Funktionen hat, ist es am Anfang am Einfachsten, ein beliebiges Makro aufzuzeichnen (Hauptmenu / Extras / Makro / Makros / Makroname (Phantasienahme) / Erstellen). Im dann aufgehenden Fenster kann man einfach den Quellcode eintragen und das eben angelegte Platzhaltermakro löschen.

      Man kann das auch alles manuell genauer festlegen, bloß dann muß man sich ziemlich konzentrieren, daß die Funktionen auch an den richtigen Orten sind und mit dem richtigen Namen angesprochen werden.

      Den Quelltext schnappt man am besten mit der Zitat-Funktion. (ohne umhüllenden Code-Board-Code)

      Möglicherweise nötige Fehlersuche ist auch ganz einfach. Einfach mit der Maus in der Spalte vor der Quellcode-Zeile einen Haltepunkt reinklicken. Dann kann man sich mit den üblichen Debugger-Funktionen die Variablen ansehen, den Code editieren und mit Einzelschritten durch die Funktion gehen.

      RE: Berechnung größter Serie Gewinner/Verlierer

      Eine mögliche (ziemlich manuelle) Lösung ist die Benutzung einiger Hilfsspalten und der Excel-Funktionen "VORZEICHEN" und "WENN". Eine schönere Variante ist die Benutzung einer selbstgeschriebenen Visual-Basic-Funktion:

      Quellcode

      1. Option Explicit
      2. Function GreatestSequence(Area As Range, MinMax As Integer) As Integer
      3. Dim CurrentSequence, Result As Integer
      4. Dim Cell As Range
      5. If MinMax <> -1 And MinMax <> 1 Then
      6. Error 1
      7. Else
      8. CurrentSequence = 0
      9. Result = 0
      10. For Each Cell In Area.Cells
      11. If Sgn(Cell.Value) = MinMax Then
      12. CurrentSequence = CurrentSequence + 1
      13. Else
      14. If CurrentSequence > Result Then Result = CurrentSequence
      15. CurrentSequence = 0
      16. End If
      17. Next Cell
      18. If CurrentSequence > Result Then Result = CurrentSequence
      19. GreatestSequence = Result
      20. End If
      21. End Function
      Für die Beschäftigung mit eigenen Visual-Basic-Funktionen spricht sehr viel, da man damit prinzipiell alle Probleme lösen kann. Hat man fertige Bibliotheken (DLLs) aus anderen Sprachen vorliegen, können diese mit wenig Programmieraufwand auch zugänglich gemacht werden.
      Bilder
      • Konsekutions-Zählung.png

        14,77 kB, 631×600, 889 mal angesehen

      Einfügen einer Zeile

      Hallo

      Ich habe eine Tabelle Kursdaten "programmiert". Leider fehlen ab und zu 5min Daten und das von Hand nachtragen kostet viel Zeit.

      Gibt es eine Funktion mit der automatisch neue Zeilen eingefügt werden und diese Zeile dann automatisch mit den Kursen der vorhergehenden Zeile versorgt werden???

      Mal grob ins Excelische Übersetzt:
      wenn (Zeit<>Vergleichszeit)dann Zeile einfügen zwischen Zeile4 und Zeile5 +eingefügte Zeile mit Kursen von Zeile 4 versehen)
      Bilder
      • Tabelle.gif

        20,08 kB, 630×243, 930 mal angesehen
      The Trend is your friend. Elbroto

      RE: Excel-Formatierung negativer Zahlen als positive

      @ janson

      Mit Deiner Formel hast Du den Wert der Zelle geändert, nicht nur das Format.

      Für Deinen Zweck war Deine Lösung richtig (was aber nicht die ursprüngliche Aufgabenstellung war). Das Ändern der Werte auf das wirklich Gewünschte ist fast immer besser als Tricksen mit Formaten.

      RE: Excel-Formatierung negativer Zahlen als positive

      Vielen Dank XY, aber jetzt kriege ich immer nur den Wert 0! :D

      Also mein Problem ist eigentlich ganz einfach: In der besagten Zelle will ich mir die Stoppgröße anzeigen lassen, indem die Formel lautet =G4-H4. In die Zelle G4 gebe ich den Einstiegskurs ein, in H4 meinen IS. Nur ist je nachdem ob es ein Short oder Longtrade ist, das Ergebnis mal negativ mal positiv.

      Ich bin nicht so ganz fit in Excel, aber man könnte das doch auch umgehen indem man eine wenn-dann funktion schreibt, oder? (wenn H4>G4 dann H4-G4)

      Excel-Formatierung negativer Zahlen als positive

      Hauptmenü / Format / Zellen oder Kontextmenü / Zellen formatieren
      / Zahlen / Benutzerdefiniert / Typ / 0;0
      oder mit Farben [Schwarz][<0]Standard;[Rot][>=0]

      Grundsätzlich ist das Unterdrücken des Vorzeichens aber bedenklich, da es bei einer späteren Ansicht der Daten meist sehr verwirrend ist und schlimme Deutungsfehler hervorrufen kann.
      Original von Erik Nijkamp
      Im MS Excel
      Extras->Optionen->International->Dezimaltrennzeichen
      Sonst kleines Skript mit Suchen&Ersetzen.

      Beides ist im OpenOffice auch möglich.


      thx für die schnelle hilfe, erik.

      deine lsg mit dem ändern der dezimaltrennzeichen unter extras>optionen gibt es in open office nicht.
      kann mich aber auch erinnern, dass es dies in ms excel "gab".

      aber ich habe mittlerweile die lsg des problems gefunden und zwar unter bearbeiten>suchen&ersetzen, damit hat es geklappt. ;)

      puh, gott sei dank. :]
      "I'm a trader, baby. So, why don't you kill me?!"
      hi, ich habe ein eine exceldatenreihe zugeschickt bekommen mit ohlc index spalten

      in der form:

      datum uhrzeit xxxx,xx xxxx,xx xxxx,xx xxxx,xx volumen


      wenn ich dies als csv datei ausgeben möchte, erhalte ich:

      datum, uhrzeit, xxxx, xx, xxxx, xx, xxxx, xx, xxxx, xx, volumen


      ist natürlich murks, denn ich möchte es folgendermaßen:

      datum, uhrzeit, xxxx.xx, xxxx.xx, xxxx.xx, xxxx.xx, volumen


      kann man das komma in excel umformatieren von xxxx,xx in xxxx.xx?

      ich habe nichts gefunden.
      habe nämlich nicht gerade sehr viel lust es einzeln manuell für jeden wert zu ändern.:(
      kann natürlich gut möglich sein, dass ich an grauem star leide,
      weil ich es nicht selber sehe oder gerade irgendwie aufm schlauch stehe. :D

      ich nutze open office 2.0.

      danke an den helfenden excelcrack. ;)
      "I'm a trader, baby. So, why don't you kill me?!"

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „trash“ ()

      Original von ktrade
      Ich hab schon zu Anfang gemutmasst, dass Excel Probleme haben wird der Datenflut Herr zu werden und denke es noch immer. Nur war ich optimistisch, weil Du unten geschrieben hat dass auch ein ereignisgesteuertes Datensammeln kein Problem sei ?(
      ktrade

      Wir diskutierten anfangs über das "Change" Event der Worksheet Klasse.
      Hierbei wird bei einer Wertänderung in einer Zelle der korrospondierende
      Zellenbezug in Form der Range übergeben, somit brauch die History nur
      für diesen einen Wert aktualisiert werden - eine Komplexität von O(1).

      Jedoch bei dem "OnData" Event fehlt eben dieser Zellenbezug und ohne
      eine Zuordnung von jeweils einer Tabelle zu einem Kurs müssen alle
      Kurswerte in die History bei jedem Tick eines einzelnen Kurses gespeichert
      werden, also O(n). Nun wird das n wohl nicht sonderlich groß sein und
      eventuell ist der Arbeitsaufwand für Excel akzeptabel. Aber die
      Verschwendung der Rechenleistung oder eines Rechners nur zur Datensammlung ist dann doch schon extrem.

      Wie gesagt, bei Tickdaten ist die 1 Kurs : 1 Tabelle Beziehung wohl sehr
      sinnvoll, bei sekündlichen Daten würde ich den Timer verwenden.

      Grüße
      Erik