1

嗨,我正在查看吸墨纸中的 addTxns 函数,我想在 TxnData 参数(作为一列)中添加费用数据/信息。

在查看函数时,通过运行

blotter:::addTxns

它似乎使用列名“价格”和“数量”,但自动将 TxnFees 设置/分配为零。

有没有办法覆盖它,以便它可以包含在我的分析中?

这是一个例子:

rm(list=ls(pos=.blotter),pos=.blotter)
rm(list=ls(pos=.instrument),pos=.instrument)
rm(list=ls(pos=.strategy),pos=.strategy)

currency('USD')
stock("SPY", currency="USD", mulitplier=1)

getSymbols('SPY', from='2012-03-01', to='2012-07-04')

portf.name <- "dummy.Portfolio"  

initPortf(portf.name, 'SPY', initDate='2012-02-29')
initAcct(portf.name, portf.name, initDate='2012-02-29', initEq=1e6)

qty <- rep(c(1,-1), nrow(SPY)/2)
price <- SPY[,4]
txnfees <- rep(-5, nrow(SPY))
txndata <- cbind(qty, price, txnfees)
colnames(txndata) <- c("Quantity","Price","txnfees")

blotter:::addTxns(Portfolio=portf.name, Symbol='SPY', TxnData=txndata )

txns <- getTxns(Portfolio=portf.name, Symbol='SPY')

head(txns)

这将显示收盘时隔日买卖 1 股,但不会显示与每笔交易相关的任何费用。

4

1 回答 1

2

在修订版 1100 中修补。

签出、构建和安装新代码之后,我相信这会满足您的要求:

library(blotter)
currency('USD')
stock("SPY", currency="USD", mulitplier=1)
getSymbols('SPY', from='2012-03-01', to='2012-07-04')
portf.name <- "dummy.Portfolio"
initPortf(portf.name, 'SPY', initDate='2012-02-29')
initAcct(portf.name, portf.name, initDate='2012-02-29', initEq=1e6)
qty <- rep(c(1,-1), nrow(SPY)/2)
price <- SPY[,4]
txnfees <- rep(-5, nrow(SPY))
txndata <- cbind(qty, price, txnfees)
colnames(txndata) <- c("Quantity","Price","TxnFees")
blotter:::addTxns(Portfolio=portf.name, Symbol='SPY', TxnData=txndata )
txns <- getTxns(Portfolio=portf.name, Symbol='SPY')
head(txns)

(这里是我们关于 r-sig-finance 讨论的链接

于 2012-07-05T00:06:23.013 回答