Hallo, liebe Python-Freunde!
Ich möchte ein Programm zur Analyse von Börsenkursen und Testen von Strategien entwickeln (ich weiss, schon wieder ein Wahnsinniger). Diese Beiträge habe ich schon gesehen:
http://www.python-forum.de/viewtopic.ph ... andlestick
http://www.python-forum.de/viewtopic.php?f=6&t=28960
http://www.python-forum.de/viewtopic.ph ... ilit=börse
http://www.python-forum.de/viewtopic.ph ... ilit=börse
http://www.python-forum.de/viewtopic.ph ... ilit=börse
Mein Programm besteht aus drei Komponenten, dem Loader, dem Charting-Modul und dem Analysator.
Projekt-Status:
Loader: ladet Yahoo-Daten, schreibt sie in eine SQLite-Datenbank, extrahiert Datensätze und Tabellenspalten -> im Wesentlichen fertig und fehlerfrei
Analysator: noch im Planungsstadium
Charting: das Problemkind
Eine Version unter Tkinter habe ich schon fertig und die geht auch:
Unter matplotlib gibt es das 'finance'-Modul, das aber nicht besonders schöne Charts erstellt und für mich nicht brauchbar ist, da ich auch Heikin-Ashi, P&F und andere Charttypen darstellen möchte.
Ich möchte meine Kursdaten mit Linien und Rechtecken selbst zeichnen, matplotlib soll die Skalierung übernehmen.
Welche Möglichkeiten habe ich?
Geht das mit der matplotlib.patches?
Bitte um Vorschläge!
Zeichnen von Linien und Rechtecken in Matplotlib
Hallo, liebe Python-Freunde!
Ich habe jetzt eine Alternativlösung gefunden, die viel besser ist: 'finance.py' wurde gepatcht!
Diese Datei findet ihr unter (Ubuntu-)Linux im Verzeichnis "/usr/share/pyshared/matplotlib/".
Dazu ein Codeauszug:
Kurze Beschreibung:
Mit der if-Abfrage wird entschieden, ob die Kerze rot (Schlusskurs 'close' niedriger als Eröffnungskurs 'open') oder grün (open < close) gezeichnet werden soll. Leider hat der Entwickler diese Farbe beim Aufruf von Line2D nicht mit übernommen. Ändert man den Aufruf zu
so sieht es doch gleich besser aus :
Eine Frage an die Python-Experten: Gibt es eine Möglichkeit, irgendwo diesen Patch zu posten, damit die Entwickler dies bei der nächsten Änderung übernehmen können?
Sorry, ich programmiere erst seit einem Monat in Python und bin in die tieferen Geheimnisse noch nicht eingedrungen.
Ich habe jetzt eine Alternativlösung gefunden, die viel besser ist: 'finance.py' wurde gepatcht!
Diese Datei findet ihr unter (Ubuntu-)Linux im Verzeichnis "/usr/share/pyshared/matplotlib/".
Dazu ein Codeauszug:
Code: Alles auswählen
if close>=open :
color = colorup
lower = open
height = close-open
else :
color = colordown
lower = close
height = open-close
vline = Line2D(
xdata=(t, t), ydata=(low, high),
color='k',
linewidth=0.5,
antialiased=True,
)
Mit der if-Abfrage wird entschieden, ob die Kerze rot (Schlusskurs 'close' niedriger als Eröffnungskurs 'open') oder grün (open < close) gezeichnet werden soll. Leider hat der Entwickler diese Farbe beim Aufruf von Line2D nicht mit übernommen. Ändert man den Aufruf zu
Code: Alles auswählen
vline = Line2D(
xdata=(t, t), ydata=(low, high),
color = color, # vorher >>>color='k',<<<
linewidth=0.5,
antialiased=True,
)
Eine Frage an die Python-Experten: Gibt es eine Möglichkeit, irgendwo diesen Patch zu posten, damit die Entwickler dies bei der nächsten Änderung übernehmen können?
Sorry, ich programmiere erst seit einem Monat in Python und bin in die tieferen Geheimnisse noch nicht eingedrungen.
Nach Diktat vereist.
Äh - nein, falsch.
Nach Diktat vergreist.
Mist!
Nach Dicktat ... es interessiert sowieso niemanden.
Äh - nein, falsch.
Nach Diktat vergreist.
Mist!
Nach Dicktat ... es interessiert sowieso niemanden.
@woody55: Zitat von der Matplotlib-Webseite: „You can file bugs, patches and feature requests on the github tracker, but it is a good idea to ping us on the mailing list too.”
Mailinglisten: http://sourceforge.net/mail/?group_id=80706
Tracker: https://github.com/matplotlib/matplotlib/issues
Da die mittlerweile GitHub verwenden könntest Du Dich vielleicht auch in Git einarbeiten, forken, Deine Änderungen machen, und einen „pull request” stellen. Aber vielleicht erst einmal auf der Entwicklermailingliste Dein Anliegen vorstellen und sehen was sie Dir dort als weiteres Vorgehen raten.
Mailinglisten: http://sourceforge.net/mail/?group_id=80706
Tracker: https://github.com/matplotlib/matplotlib/issues
Da die mittlerweile GitHub verwenden könntest Du Dich vielleicht auch in Git einarbeiten, forken, Deine Änderungen machen, und einen „pull request” stellen. Aber vielleicht erst einmal auf der Entwicklermailingliste Dein Anliegen vorstellen und sehen was sie Dir dort als weiteres Vorgehen raten.