Я ищу плагин Python, который вычислил бы реализованный P&L для многих транзакций запаса с помощью метода FIFO.
Например, предположите, что у нас есть следующие три отрасли MSFT:
+75 MSFT 25.10
+50 MSFT 25.12
- 100 MSFT 25.22
Продавание 100 долей в 25,22 было бы полностью сетевой против покупки 75 в 25,10 и частично сетевой против покупки 50 в 25,12 т.е.
Реализованный P&L = 75 * (25.22 - 25.10) + 25 * (25.22 - 25.12) = 11,50$
Выдающееся положение было бы:
+25 MSFT 25.12
Это должно быть легко написать самому на Python. "FIFO" - это сокращение от "first in, first out queue". Покупки добавляются в конец очереди. Продажи убирают покупки (или их части) из передней части очереди.
Python's collection.deque (двусторонняя очередь) - это то, что вам нужно для механики.
No Python, но проект R blotter --- который является частью / ядром более крупного проекта TradeAnalytics на R-Forge делает именно это.
Недавно мне понадобилось подмножество функциональности на C++ и я использовал код blotter для сравнения / руководства моим переносом на C++. (Это было на работе, так что никакого публичного C++ оттуда нет, извините)
.