在庫数が Quantity で指定される多数の在庫取引があります。Quantity の累積合計が負になることはありません ( cumsum(Quantity) が負になることはありません)。私は常に最初に購入してから販売します。例えば:
Quantity <- c(3,-1,-2,3,-1,2,-4)
ここで、取引のリストを作成したいと思います。ここで、各取引には同じ数の株式が売買されている必要があります ( sum(TradeN)==0 )。取引のリストは、FIFO の原則に従う必要があります。したがって、最初に購入されたユニットは、再び販売された最初のユニットになります。
したがって、この例の最初の取引は、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))
私はこのためにかなり不器用なバージョンを書きましたが、これは多くのループを含む非常に遅いものです。したがって、Quantity ベクトルが非常に大きい可能性があるため、誰かがこの問題を迅速に解決する方法を知っているかもしれません。