2012-07-04 5 views
1

Привет, Я смотрю функцию addTxns в блоттере, и я хотел бы добавить данные/информацию о сходах в аргумент TxnData (в виде столбца).Добавление сбоев к функции addTxns() для R в блоттере или квантстрате

При взгляде на функции, запустив

blotter:::addTxns 

, кажется, использовать имена столбцов «Цена» и «Количество», но автоматически устанавливает/присваивает TxnFees к нулю.

Есть ли способ переписать это, чтобы его можно было включить в мой анализ?

Вот пример:

rm(list=ls(pos=.blotter),pos=.blotter) 
rm(list=ls(pos=.instrument),pos=.instrument) 
rm(list=ls(pos=.strategy),pos=.strategy) 

currency('USD') 
stock("SPY", currency="USD", mulitplier=1) 

getSymbols('SPY', from='2012-03-01', to='2012-07-04') 

portf.name <- "dummy.Portfolio" 

initPortf(portf.name, 'SPY', initDate='2012-02-29') 
initAcct(portf.name, portf.name, initDate='2012-02-29', initEq=1e6) 

qty <- rep(c(1,-1), nrow(SPY)/2) 
price <- SPY[,4] 
txnfees <- rep(-5, nrow(SPY)) 
txndata <- cbind(qty, price, txnfees) 
colnames(txndata) <- c("Quantity","Price","txnfees") 

blotter:::addTxns(Portfolio=portf.name, Symbol='SPY', TxnData=txndata) 

txns <- getTxns(Portfolio=portf.name, Symbol='SPY') 

head(txns) 

Это покажет покупки и продажи 1 акции через день при закрытии, но не будет показывать какой-либо из платежей по каждой сделке.

+0

Вы должны действительно это на г -сиг-финансовый список. Добавьте проверку своих архивов, поскольку она охватывает _a много_ вопросов блоттера/квантстрата. –

+0

спасибо ... теперь отправлено ... –

+0

Пока не вижу, чтобы это попало в список r-sig-finance, но вам нужно будет придумать воспроизводимый пример. Вы читали '? AddTxns'? 'TxnFees' _can_ является функцией' TxnQty' и 'TxnPrice', но также может быть просто отрицательным числом (положительным для скидок). 'txnfees' (обратите внимание на случай) устанавливается только на ноль, если это' NULL' или 'NA' – GSee

ответ

2

Patched in Rev. 1100.

После checking out, сборки и установки нового кода, я считаю, что это будет делать то, что вы хотите:

library(blotter) 
currency('USD') 
stock("SPY", currency="USD", mulitplier=1) 
getSymbols('SPY', from='2012-03-01', to='2012-07-04') 
portf.name <- "dummy.Portfolio" 
initPortf(portf.name, 'SPY', initDate='2012-02-29') 
initAcct(portf.name, portf.name, initDate='2012-02-29', initEq=1e6) 
qty <- rep(c(1,-1), nrow(SPY)/2) 
price <- SPY[,4] 
txnfees <- rep(-5, nrow(SPY)) 
txndata <- cbind(qty, price, txnfees) 
colnames(txndata) <- c("Quantity","Price","TxnFees") 
blotter:::addTxns(Portfolio=portf.name, Symbol='SPY', TxnData=txndata) 
txns <- getTxns(Portfolio=portf.name, Symbol='SPY') 
head(txns) 

(Вот link to our discussion on r-sig-finance)

+0

Thats amazing! –

 Смежные вопросы

  • Нет связанных вопросов^_^