Aggregate Transactions to Positions
Use information on single trades to compute a position at a specific point in time.
position(amount, ...)
## Default S3 method:
position(amount, timestamp, instrument, when,
drop.zero = FALSE, account = NULL,
use.names = NULL, ...)
## S3 method for class 'journal'
position(amount, when, drop.zero = FALSE,
use.account = FALSE, ...)
## S3 method for class 'position'
print(x, ..., sep = ":")when |
a timestamp or a vector of timestamps; alternatively, several keywords are supported. See Details. |
amount |
numeric or an object of class |
timestamp |
numeric or character: timestamps, must be sortable |
instrument |
character: symbols to identify different instruments |
account |
character: description of account |
use.account |
logical |
use.names |
logical |
drop.zero |
If logical, drop instruments that have a zero
position; default is |
x |
An object of type position. |
... |
arguments passed to |
sep |
A regular expression. Split instruments accordingly. Not implemented yet. |
position is a generic function; most useful is
the method for journals.
The function checks if timestamp is sorted (see
is.unsorted) and sorts the journal by timestamp,
if required. If there are (some) NA values in timestamp,
but timestamp is sorted otherwise, the function will proceed
(with a warning, though).
The argument when can also be specified as one of several
keywords: last (or newest or latest) provides the
position at the latest timestamp; first (or oldest)
provides the position at the earliest timestamp; all provides
the positions at all timestamps in the journal. endofday,
endofmonth and endofyear
provide positions at the end of all calendar days, months and years within the
timestamp range of the journal. The latter keywords can only work if
timestamp can be coerced to Date.
An object of class position, which is a numeric matrix with
instrument and timestamp attributes. Note that
position will never drop the result's dim attribute: it
will always be a matrix of size length(when) times
length(unique(instrument)), which may not be obvious from the
printed output.
To extract the numeric position matrix, say as.matrix(p).
Enrico Schumann
Schumann, E. (2018) Portfolio Management with R. http://enricoschumann.net/R/packages/PMwR/
position(amount = c(1, 1, -1, 3, -4), timestamp = 1:5, when = 4.9) ## using a journal J <- journal(timestamp = 1:5, amount = c(1, 1, -1, 3, -4)) position(J, when = 4.9)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.