Использование команды addDiv (команда) в R из quantstrat/blotter

Каков формат использования команды addDiv в R? Я знаю, как использовать эту функцию в том, что касается входных данных, но я не могу понять, где ее следует разместить, помимо общей идеи. Размещать ли его после создания экземпляра портфолио? Ниже приведена справочная статья R:

Добавляйте в портфель транзакции с выплатой дивидендов наличными.

Описание

Добавление денежного дивиденда не влияет на количество позиций, в отличие от разделения.

использование

addDiv(Portfolio, Symbol, TxnDate, DivPerShare, ..., TxnFees = 0,  
       ConMult = NULL, verbose = TRUE)

Аргументы

Portfolio Имя портфеля, указывающее на объект портфеля, структурированный с помощью initPortf.

Symbol Идентификатор инструмента для символа, входящего в портфель, например, IBM.

TxnDate Дата транзакции в формате ISO 8601, например, «2008-09-01» или «2010-01-05 09:54:23.12345».

DivPerShare Сумма денежных дивидендов, выплачиваемых на акцию или на единицу количества.

TxnFees Сборы, связанные с транзакцией, например. комиссии. Смотрите подробности.

ConMult Мультипликатор контракта или инструмента для Символа, если он не определен в спецификации инструмента.

verbose Если TRUE (по умолчанию), функция выводит элементы транзакции в строку на экран, например, "2007-01-08 IBM 50 @ 77.6". Подавить с помощью FALSE.

... Любые другие параметры прохождения.

Примечание

**# НЕОБХОДИМО добавить TxnTypes в таблицу $txn

**# TODO добавить AsOfDate****


person user5145790    schedule 22.07.2015    source источник
comment
Я не использовал его сам, но добавление транзакций с выплатой дивидендов в портфель предполагает, что вы должны делать это после создания портфеля, а не до этого. В противном случае я бы предположил, что вы добавляете его везде, где это имеет смысл с точки зрения вашего кода.   -  person mathematical.coffee    schedule 23.07.2015


Ответы (1)


Вот пример того, как его использовать, основанный на demo("longtrend") из пакета блоттера. Как видите, ничего страшного, если вы позвоните по факту, так как блоттер знает вашу позицию.

Тем не менее, вам нужно будет вызвать его одновременно, если вам нужно знать свои общие прибыли и убытки, чтобы принимать торговые решения.

require(blotter)
demo(longtrend, ask=FALSE)

# Add dividends from SPY
spyDiv <- getDividends("SPY", from=initDate)
for(i in 1:nrow(spyDiv)) {
  obs <- spyDiv[i,]
  addDiv("longtrend", "GSPC", index(obs), obs)
}
# Need to update portfolio, account, etc again, since
# we added new transactions
updatePortf("longtrend")
updateAcct("longtrend")
updateEndEq("longtrend")

# Plot position with dividends, calling dev.new() so
# we can compare it to the original plot from the demo.
dev.new()
chart.Posn("longtrend", "GSPC", Dates="1998::")
add_SMA(n=10, col="darkgreen", on=1)

#look at a transaction summary
getTxns(Portfolio="longtrend", Symbol="GSPC")
person Joshua Ulrich    schedule 07.10.2015