Quantmod: Рассчитать разрыв вчера и выбрать акцию по запросу пользователя - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь рассчитать GAP Акции, используя библиотеку quantmod и пользовательский ввод для выбора акции.

Сначала я заставляю пользователя вводить акции, то есть "NKE" Затем я использую getSymbols для создания кадра данных NKE

S1 <- readline("Enter a symbol please: ")
S2 <- getSymbols(S1,from="2018-01-01", auto.assign=TRUE)

Теперь я работаю в фрейме данных NKE, чтобы создать новый столбец с именем NKE.GAP

NKE.GAP=vector(mode="numeric",length = nrow(NKE$NKE.Open))

Теперь я хотел бы рассчитать GAP, но не знаю, как автоматически выбрать вчерашнее значение NKE.Open и NKE.Close 2 дня назад.

NKE$"NKE.GAP"=NKE$NKE.Open-NKE$NKE.Close

NKE Фондовый пример

Две мои проблемы здесь: 2:

-Как выбрать ячейки разных дат для расчета GAP?

-Как автоматизировать процесс, как если бы вместо NKE (NIKE) я хотел бы рассчитать GAP для других акций, т. Е. UAA (Under Armour), используя readline (ввод пользователя)

Любой комментарий будет высоко оценен.

Спасибо, Винс.

1 Ответ

0 голосов
/ 25 июня 2018

Давайте сначала определим входные параметры:

library(quantmod)

S1 <- readline("Enter a symbol please: ")
gapLag <- 2 #  select cells of different dates

Сначала необходимо создать новый фрейм данных с общим именем.Позволяет работать с разными тикерами:

finData <- getSymbols(S1,from="2018-01-01", auto.assign=FALSE)
finData$GAP1 <- finData[ ,1] - finData[ ,4] # positions of Open and Close columns don't change

Последний столбец содержит GAP периода, указанного в переменной gapLag

finData$GAPuser <- finData[ ,1] - lag(finData[,4], gapLag)

РЕДАКТИРОВАТЬ: Создать новые данныерамка, названная в честь тикера:

assign(S1, finData)
...