Quantmod:计算昨天的差距并根据用户提示选择股票

Quantmod: Calculate Gap of yesterday and choose the stock by user prompt

我正在尝试使用 quantmod 库和用户输入 select 股票来计算股票的差距。

首先我让用户输入股票,即 "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,但不知道如何自动 select 昨天的 NKE.Open 值和 2 天前的 NKE.Close。

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

NKE Stock example

我这里的两个问题是2:

-如何select不同日期的单元格计算GAP?

-如果不是 NKE (NIKE),我想通过使用 readline(用户输入)

来计算其他股票,即 UAA(Under Armour)的 GAP,如何使流程自动化

任何意见将不胜感激。

谢谢文斯。

我们先定义输入参数:

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

最后一列包含变量 gapLag

中指定期间的 GAP
finData$GAPuser <- finData[ ,1] - lag(finData[,4], gapLag)

编辑: 创建一个以代码命名的新数据框:

assign(S1, finData)