2013-06-15 7 views
2

Я проходил через лекцию квантовой стрелки Гая (ссылка ниже), и после многократного повторного выполнения кода я получаю несколько первоначальных ошибок, которые предотвращают большую часть последующего кода в лекция от работы.Вопрос о выпуске журнала QuantStrat I в Guy Yollin

Вот код (копируется из лекции с очень незначительными повторных соглашений):

rm(list=ls(all=TRUE)) #added this to delete memory 

library(quantstrat) 
library(blotter) #added this hoping it would rectify the errors 
library(FinancialInstrument) #added this hoping it would rectify the errors 

# initialize portfolio, accounts and orders 
qs.strategy <- "qsFaber" 
initPortf(qs.strategy, 'SPY', initDate = '1997-12-31') 
initAcct(qs.strategy, portfolios = qs.strategy, initDate = '1997-12-31', initEq= 1e6) 

Вот ошибки я получаю:

1)

> initPortf(qs.strategy, 'SPY', initDate = '1997-12-31') 
Error in exists(paste("portfolio", name, sep = "."), envir = .blotter, : 
object '.blotter' not found 

2)

> initAcct(qs.strategy, portfolios = qs.strategy, initDate = '1997-12-31', initEq= 1e6) 
Error in exists(paste("account", name, sep = "."), envir = .blotter, inherits = TRUE) : 
object '.blotter' not found 

У меня было прямо загружать blotter, поскольку я использую Windows 64 бит, но, несмотря на то, что вы копируете код из лекции, я не уверен, почему я получаю эти ошибки. Мои усилия по поиску показали, что часть блоттера превратилась в пакет FinancialInstrument, но даже после очистки памяти и загрузки FinancialInstruments я все равно получаю ту же ошибку.

Любая помощь будет высоко оценена.

LINK на лекцию: http://www.r-programming.org/files/quantstrat-I.pdf

+0

См. Также: http: //r.789695.n4.nabble.com/Installed-quantstrat-along-with-blotter-and-FinancialInstrument-but-seem-Im-missing-instrument-tt4654469.html – GSee

ответ

3

листов Г Yollin отлично учебный материал, но, к сожалению, они несколько устарели (2011). За последние 2 года было внесено много изменений в blotter, quantstrat и другие пакеты, и большая часть кода в листах Гая больше не будет работать как таковая.

Что касается пакета Quantstrat, вы можете взглянуть на листы из конференции R/Finance 2013 в Чикаго; вы можете получить копию по адресу http://www.rinfinance.com/agenda/2013/workshop/Humme+Peterson.pdf.

UPDATE: Guy Yollin обновила свои слайды до последней quantstrat по состоянию на август 2013 года, они доступны здесь http://www.r-programming.org/papers

+0

ссылка, которую я предоставил, это последняя версия –

7

промокательную и quantstrat пакеты хранят вещи в .GlobalEnv (что является одной из причин, они а не на CRAN.) Когда вы запускаете rm(list=ls(all=TRUE)), вы удаляете вещи, которые эти пакеты ожидают найти в вашем рабочем пространстве. Чтобы все работало, вы должны вернуть пару окружений в свой globalenv(). После запуска этих двух строк кода, я думаю, ваш код будет работать.

.blotter <- new.env() 
.strategy <- new.env() 

В прошлом FinancialInstrument используется для создания .instrument среды в .GlobalEnv (и позже ожидать, что она существует). Пару лет назад я изменил его так, чтобы .instrument теперь хранится в пространстве имен FinancialInstrument. Поскольку это изменение произошло после слайдов Guy, код несовместим. Слайды 14-15 должен быть изменен на

currency("USD") 
getInstrument("USD") 
stock("SPY", "USD") 
getInstrument("SPY") 

Или более внимательно следить за его исходный код,

get("USD", envir=FinancialInstrument:::.instrument) 
get("SPY", envir=FinancialInstrument:::.instrument) 

Сохраняя объекты на уровне пакета в пространстве имен пакета, пользователь может свободно удалить все из globalenv() без нарушения какого-либо кода пакета.

+0

Я пробовал это, и я боюсь это не устранило проблему. Через месяц, пытаясь заставить код работать с помощью различных средств, я сдаюсь. –

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

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