# Author: Peter Carl, RUnit port by Ben McCann
test.addTxn <- function() {
on.exit({
# remove objects created by unit tests
try(rm_currencies("USD"))
try(rm_stocks(symbols))
try(rm_portfolios("runitAddTxn"))
try(rm(list="pName"))
try(rm("IBM", pos = .GlobalEnv))
})
currency("USD")
symbols <- c("IBM")
for (symbol in symbols){
stock(symbol, currency="USD", multiplier=1)
}
data("IBM", package="blotter")
# Initialize a portfolio object 'pName'
# Creating portfolio:
pName <- initPortf("runitAddTxn", symbols=symbols)
# Trades must be made in date order.
# Make a couple of trades in IBM
addTxn(pName, "IBM", '2007-01-03', 50, 96.5, TxnFees=-0.05 * 50)
addTxn(pName, "IBM", '2007-01-04', -50, 97.1, TxnFees=-0.05 * 50)
addTxn(pName, "IBM", '2007-01-08', -10, 99.2, TxnFees=-0.05 * 10)
addTxn(pName, "IBM", '2007-01-09', -10, 100.1, TxnFees=-0.05 * 10)
addTxn(pName, "IBM", '2007-01-17', -10, 100.25, TxnFees=-0.05 * 10)
addTxn(pName, "IBM", '2007-01-19', 30, 95, TxnFees=-0.05 * 30)
addTxn(pName, "IBM", '2007-01-22', 25, 96.3, TxnFees=-0.05 * 25)
addTxn(pName, "IBM", '2007-01-23', 25, 96.42, TxnFees=-0.05 * 25)
addTxn(pName, "IBM", '2007-01-26', -25, 97.52, TxnFees=-0.05 * 25)
addTxn(pName, "IBM", '2007-01-31', -25, 98.80, TxnFees=-0.05 * 25)
portfolio <- getPortfolio(pName)
transactions <- portfolio$symbols[["IBM"]]$txn
checkEquals(-13, sum(transactions$Txn.Fees))
checkEquals(0, sum(transactions$Txn.Qty))
# TODO: fix bug in calcPortfSummary
# summary <- calcPortfSummary(portfolio)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.