1

我有一些股票交易,其中股票数量由数量给出。Quantity 的累积总和不能变成负数(cumsum(Quantity) 永远不会是负数),因为我总是先买再卖。例如:

Quantity <- c(3,-1,-2,3,-1,2,-4)

现在我想创建一个交易列表,其中每笔交易必须有相同数量的股票买卖(sum(TradeN)==0)。交易清单应遵循先进先出原则。因此,购买的第一批单位是再次出售的第一批单位。

因此,示例中的第一笔交易是买入 1 个单位,然后卖出 1 个单位。

Trade1 <- c(1,-1)

给我们留下以下交易

Quantity <- c(2,-2,3,-1,2,-4)

最后,我想要类似的东西:

PurchaseSale <- list(Trade1=c(1,-1), Trade2=c(2,-2), Trade3=c(1,-1), Trade4=c(2,2,-4))

我为此编写了一个相当笨拙的版本,它涉及许多循环非常慢。所以也许有人知道如何快速解决这个问题,因为我的数量向量可能非常大。

4

0 回答 0