[R-SIG-Finance] Adding transaction fees to Return.portfolio

Robert Wages robert at rwages.com
Tue May 10 22:05:44 CEST 2016

Thanks, Ilya.  I assume then I would have to subtract the custom transaction costs from the  relevant “return” list object entries to generate a cost-adjusted portfolio return for each period.  Is that right?


Robert C Wages

USA Mobile: +1 717 618 2828

 <mailto:robert at rwages.com> robert at rwages.com


From: Ilya Kipnis [mailto:ilya.kipnis at gmail.com] 
Sent: Tuesday, May 10, 2016 3:53 PM
To: Robert Wages <robert at rwages.com>
Cc: r-sig-finance at r-project.org
Subject: Re: [R-SIG-Finance] Adding transaction fees to Return.portfolio


Essentially, given a change in weights over any period, you can apply your own custom transaction costs to the difference in weights.


On Tue, May 10, 2016 at 3:52 PM, Ilya Kipnis <ilya.kipnis at gmail.com <mailto:ilya.kipnis at gmail.com> > wrote:


There's actually a way to compute turnover with Return.portfolio, with verbose = TRUE. It returns end of period weights, and beginning of period weights, so the turnover can be computed as beginWeights - lag(endWeights).



On Tue, May 10, 2016 at 3:50 PM, Robert Wages <robert at rwages.com <mailto:robert at rwages.com> > wrote:

Return.portfolio is an easy function to use to calculate the aggregate
performance of a portfolio that is rebalanced on a regular basis or that has
a custom weighting scheme on the same periodicity of returns.  I cannot find
any provision in Return.portfolio, however, for incorporating the
transaction costs for the rebalancing in the portfolio.  The resulting
portfolio performance would  seem to be high to the extent of the
transaction costs.

On the other hand, running strategies in Quantstrat on individual securities
(or groups of securities) allows one to take into account estimated trading
costs to generate somewhat realistic performance estimates.  Quantstrat,
however, does not seem to have any readily accessible functions to balance a
portfolio of securities within a portfolio limit.  Previous related
discussions seem to suggest the only solution is to write custom order
sizing functions to include in the strategy's rules.

I may be able to figure how to write custom functions in Quantstrat to do
this after a lot of brain damage, or alternatively my own version of
Return.portfolio, but I thought I should check with the community to see if
there are any better suggestions for this.  Given that many investment
strategies rely on portfolio rebalancing under some set of rules, as opposed
to buying and selling individual securities on the basis of rules, I would
be surprised if I were the first person to wonder about this.

Robert C Wages

USA Mobile: +1 717 618 2828 <tel:%2B1%20717%20618%202828> 

robert at rwages.com <mailto:robert at rwages.com>  <mailto:robert at rwages.com <mailto:robert at rwages.com> >

        [[alternative HTML version deleted]]

R-SIG-Finance at r-project.org <mailto:R-SIG-Finance at r-project.org>  mailing list
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.

	[[alternative HTML version deleted]]

More information about the R-SIG-Finance mailing list