次の簡単な例では、ポートフォリオは 01-02 に IBM の 50 株の最初のショート ポジションを持ち、そのポジションは 01-04 にカバーされます。ブロッターは、-4855 の実現 pnl を示しました。これは予想外です。ブロッターは、IBM の最初の 50 株が価格 0 で空売りされたと想定しているようです。この最小限の例を機能させる方法について何かアイデアはありますか? 初期位置のコストをブロッターに渡す方法は?
library(blotter)
try(rm("portfolio.p",pos=.blotter), silent = TRUE)
Sys.setenv(TZ="UTC") # this is critical
currency("USD")
stock('IBM', currency="USD", multiplier=1)
getSymbols('IBM', from='2007-01-01', to='2007-01-05', src='yahoo')
initPortf('p', symbols=symbols,initPosQty=-50, initDate='2007-01-02',currency="USD")
addTxn("p", "IBM", '2007-01-04', 50, 97.1, TxnFees = 0)
updatePortf(Portfolio="p",Dates='2007-01')
.blotter$portfolio.p$symbols$IBM$posPL
# Pos.Qty Con.Mult Ccy.Mult Pos.Value Pos.Avg.Cost Txn.Value
# 2007-01-02 -50 1 1 0 0 0
# 2007-01-02 -50 0 1 0 0 0
# 2007-01-03 -50 0 1 0 0 0
# 2007-01-04 0 1 1 0 0 4855
# 2007-01-05 0 1 1 0 0 0
# Period.Realized.PL Period.Unrealized.PL Gross.Trading.PL
# 2007-01-02 0 0 0
# 2007-01-02 0 0 0
# 2007-01-03 0 0 0
# 2007-01-04 -4855 0 -4855
# 2007-01-05 0 0 0
# Txn.Fees Net.Trading.PL
# 2007-01-02 0 0
# 2007-01-02 0 0
# 2007-01-03 0 0
# 2007-01-04 0 -4855
# 2007-01-05 0 0