addTxns addfees
If you look at the code in the repository, https://r-forge.r-project.org/scm/viewvc.php/pkg/blotter/R/addTxn.R?view=markup&revision=1081&root=blotter you can see that there are comments saying that this isn't yet supported. TxnFee <- 0 #TODO FIXME support transaction fees in addTxns #TxnFee <- ifelse( is.function(TxnFees), TxnFees(TxnQty, TxnPrice), TxnFees) Sorry, Garrett
On Wed, Jul 4, 2012 at 6:29 PM, G See <gsee000 at gmail.com> wrote:
My apologies. I see what you are talking about, and I see where that is hardcoded in. So, you would need to replace TxnFee <- 0 with TxnFee <- as.numeric(TxnData[row, "txnfees"]) On Wed, Jul 4, 2012 at 6:24 PM, Hideyoshi Maeda <hideyoshi.maeda at gmail.com> wrote:
Thanks for your response. I am aware that addTxn is not vectorized... but what I am using below is addTxns...(note the 's' after Txn) This allows transaction data through the TxnData argument It is, in effect, a vectorised version of addTxn...even the blotter demo from demo(amzn_test) uses this.... However unlike the demo...i wanted to include Transaction fees, and wanted to know if this was possible...as the function for addTxns automatically assigns this to zero... On 5 Jul 2012, at 09:15, G See wrote:
Hi Hideyoshi, addTxn is not vectorized, and it does not have a txnData argument. To see how the function is intended to be used, please read ?addTxn Then look at the demos that are included with blotter as well as the examples in ?blotter. HTH, Garrett On Wed, Jul 4, 2012 at 5:46 PM, Hideyoshi Maeda <hideyoshi.maeda at gmail.com> wrote:
If an example is required
Here is an example:
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)
This will show the buying and selling of 1 share on alternate days at the close but will not show any of the fees relating to each transaction.
Thanks
HLM
On 5 Jul 2012, at 01:48, Hideyoshi Maeda wrote:
Hi I am looking at the addTxns function in blotter, and I would like to add fees data/information in the TxnData argument (as a column). When looking at the function, by running blotter:::addTxns it seems to use the column names "Price" and "Quantity" but automatically sets/assigns the TxnFees to zero. Is there a way of overwriting this, so that it can be included in my analysis?