2010-06-24 2 views
5

Ich bin auf der Suche nach einem Python-Plugin, das die realisierten P & L für eine Reihe von Aktien-Transaktionen mit der FIFO-Methode berechnen würde.Wie berechnet man die realisierte Gewinn- und Verlustrechnung für Aktiengeschäfte mit der FIFO-Methode in Python?

Zum Beispiel nehmen wir die folgenden drei MSFT Gewerke haben:

+75 MSFT 25.10
+50 MSFT 25.12
-100 MSFT 25.22

Der Verkauf von 100 Aktien zu 25,22 würde voll net gegen den Kauf von 75 auf 25,10 und teilweise netto gegen den Kauf von 50 auf 25,12 dh

Realisiert P & L = 75 * (25,22-25,10) + 25 * (25,22-25,12) = $ 11.50

Die herausragende Position wäre:

+25 MSFT 25.12

+0

nicht auf der Suche nach Ihnen, um es für mich zu kodieren - eher, ich bin auf der Suche nach einer Bibliothek, die den transaktionalen und buchhalterischen Aspekt des Handels behandelt. –

Antwort

4

Kein Python, aber das R Projekt blotter --- der Teil/Kern des größeren TradeAnalytics Projektes auf R-Forge macht genau das ist.

Ich brauchte vor kurzem eine Teilmenge der Funktionalität in C++ und verwendete den Code blotter, um meinen Port zu C++ zu benchmarken/zu führen. (Das war bei der Arbeit, also kein öffentliches C++ davon, tut mir leid.)

+0

Die Rpy http://rpy.sourceforge.net/ und rpy2 http://rpy.sourceforge.net/rpy2.html Plugins zu Python können Sie R-Code innerhalb von Python aufrufen. Sie sind ein bisschen schmerzhaft zu benutzen, aber Sie können sie ziemlich leicht arbeiten, wenn Sie R wissen. Es ist wahrscheinlich zu viel Aufwand, sie in dieser Situation zu verwenden. – Wilduck

+0

Blotter wird 'Period.Realized.PL' von $ 11,2 und' Period.Unrealized.PL' von $ 1,3 für das obige Beispiel geben. Es ist nicht dasselbe wie Fifo. Löscher verwendet 'TxnQty * ConMult * (PrevosAvgCost - TxnAvgCost)' zu berechnen 'Period.Realized.PL' –

4

Dies sollte einfach sein, sich in Python zu schreiben. "FIFO" ist die Abkürzung für "first in, first out Warteschlange". Einkäufe werden an der Rückseite der Warteschlange hinzugefügt. Verkauft munch kauft (oder Teile davon) von der Vorderseite der Warteschlange.

Python's collection.deque (Doppel-Warteschlange) ist, was Sie für die Mechanik benötigen.

+0

Hey John, möchten Sie vielleicht Ihre Antwort zu Konto für Short-Positionen zu ändern. –

Verwandte Themen