我有一些股票交易,股票数量由数量给出。数量的累计总和不能变为负数( cumsum(数量)永远不会为负数),因为我将始终先购买再卖出。例如:
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))
我为此写了一个相当笨拙的版本,涉及很多循环很慢。所以也许有人知道如何快速解决这个问题,因为我的数量向量可能非常大。