r - Capital aware position sizing in quantstrat -


i looking make maximum allowed position particular asset(symbol) function of capital(initial allocation+ pl), , indicators. tried going through replacing osmaxpos. add @ top, initial value hardcoded, , ddq indicator,

updateportf(portfolio, symbol, dates=paste('::',as.date(timestamp),sep='')) cumpl <- sum(getportfolio(portfolio)$symbols[[symbol]]$pospl$net.trading.pl) print(paste0("expfluct", data$ddq[timestamp]*2)) maxposval <- (10e6+cumpl) * data$ddq[timestamp]*2 print(paste0("maxposval = ", maxposval)) addposlimit(portfolio,            symbol=symbol,            timestamp = first(index(data)),           maxpos = maxposval ) 

this works takes execution of intraday strategy 2 years of 1 min data minutes hours portfolio being marked on every call. can point out more efficient way of doing this? thanks.

use rebalancing rule instead, rulepctequity.

see

demo('macdrebalancing')

for example.

most real portfolios not rebalanced on every trade, since that's not particularly practical, on intraday data.

rulepctequity call updateportf, you'll little value in practice adjusting trade size on every new observation.

it differs example marking whole portfolio, , looking @ total equity, not accumulated p&l in 1 instrument.

if want adjust more frequently, or want adjust based on p&l in single instrument, don't need updateportf @ all. if want initial allocation plus p&l in single instrument, should sum realized p&l instrument txns table, , calculate unrealized p&l difference in open position , current market price. several hundreds of times faster calls updateportf in cases.


Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -