[R-SIG-Finance] quantstrat executes trades that are more worth than total equity
Sergey Pisarenko
drseergio at gmail.com
Thu Feb 16 18:23:20 CET 2012
Hi R programmers,
I am seeing strange behavior with quanstrat transactions. The problem
is that it triggers orders that are larger than the total equity. For
example, if I create an account with initial equity of 100 000 I see
that rules that exceed the total equity are still executed and
reported.
Is this the intended behavior? Do I need to write my own sizing
function which will take care of this?
To reproduce this I have set "maxpos" to very high value which cannot
be successfully executed with available equity (100000). The
"add.rule" and related parts of the code:
...
initPortf('p', symbols=watched, currency=curr, initDate=from)
initAcct(name='a', portfolios='p', initEq=equity, currency=curr, initDate=from)
initOrders(portfolio='p', symbols=watched, initDate=from)
...
s <- add.rule(strategy=s, name='ruleSignal',
arguments=list(data=quote(mktdata), sigcol='buySig', sigval=TRUE,
orderqty=100000, ordertype='market', orderside=NULL, threshold=NULL,
osFUN='osMaxPos', ruletype='enter'), type='enter', path.dep=TRUE)
for (symbol in symbols) {
ubars <- getSymbols(symbol, src='yahoo', auto.assign=FALSE)
bars <- ubars[index(ubars) >= as.Date(from)]
assign(symbol, bars)
addPosLimit(portfolio='p', symbol, from, maxpos=100000)
}
applyStrategy(strategy='s', portfolios='p')
updatePortf(Portfolio='p')
updateAcct('a')
The R output for getTxns:
> getTxns(Portfolio='p', Symbol='BP')
Txn.Qty Txn.Price Txn.Fees Txn.Value Txn.Avg.Cost
2009-01-01 0e+00 0.00 0 0 0.00
2010-07-08 1e+05 33.74 0 3374000 33.74
Net.Txn.Realized.PL
2009-01-01 0
2010-07-08 0
I have attached the whole runnable sample script to this e-mail. I
have removed all the code which is not relevant to the issue.
--
Kind Regards,
Sergey Pisarenko.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tainted.R
Type: application/octet-stream
Size: 1985 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-finance/attachments/20120216/adea2f80/attachment.obj>
More information about the R-SIG-Finance
mailing list