首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泛化"$-notation“

泛化"$-notation“
EN

Stack Overflow用户
提问于 2021-10-23 07:18:16
回答 1查看 46关注 0票数 0

我仍然习惯于在R中工作,并认为构建一个“简单的”MACD-screener将是了解R的一些内部工作的很好的方法。然而,我遇到了以下问题。我已经完全能够计算出一个独立的股票的te MACD和信号线。所以现在,为了能够扫描多个股票,我必须泛化代码。我的问题是:“我如何在"$-notation”中使用变量(当前正在查看的股票的名称)?在此之后,我计划做一个"for循环“迭代列表对象中的股票名称。这是一种实用的方法吗?

下面我插入了我到现在为止的代码。在这段代码中,我希望用一个变量替换"QQQ“。

代码语言:javascript
复制
library(quantmod)
tickers <- c('QQQ','SPY','APPL','MMM')

ema.s = 12
ema.l = 26
ema.k = 9
ema.t = 200

getSymbols(tickers, from = '2021-01-6',
           to = "2021-10-21",warnings = FALSE,
           auto.assign = TRUE)

QQQ$QQQ.EMA.S <- EMA(QQQ[,6], n = ema.s)
QQQ$QQQ.EMA.L <- EMA(QQQ[,6], n = ema.l)
QQQ$QQQ.MACD <- QQQ$QQQ.EMA.S - QQQ$QQQ.EMA.L
QQQ$QQQ.SIG <- EMA(QQQ$QQQ.MACD, n = ema.k)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-23 09:15:55

您可以使用tidyquant一次性完成所有这些操作。

代码语言:javascript
复制
library(tidyquant)

ema.s = 12
ema.l = 26

tickers <- c('QQQ','SPY','AAPL','MMM')

# get all the data in a tibble
stock_data <- tq_get(tickers, 
                     from = '2021-01-6',
                     to = "2021-10-21")


stock_data <- stock_data %>% 
  group_by(symbol) %>% 
  tq_mutate(select = adjusted,
            mutate_fun = MACD,
            n_fast = ema.s,
            n_slow = ema.l)

stock_data 

# A tibble: 800 x 10
# Groups:   symbol [4]
   symbol date        open  high   low close   volume adjusted  macd signal
   <chr>  <date>     <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl> <dbl>  <dbl>
 1 QQQ    2021-01-06  307   312.  306.  308. 52809600     306.    NA     NA
 2 QQQ    2021-01-07  310.  316.  310.  315. 30394800     314.    NA     NA
 3 QQQ    2021-01-08  317.  319.  315.  319. 33955800     318.    NA     NA
 4 QQQ    2021-01-11  316.  317.  314.  314. 32746400     313.    NA     NA
 5 QQQ    2021-01-12  314.  316.  311.  314. 29266800     313.    NA     NA
 6 QQQ    2021-01-13  314.  317.  314.  316. 22898400     315.    NA     NA
 7 QQQ    2021-01-14  316.  318.  314.  314. 23500100     313.    NA     NA
 8 QQQ    2021-01-15  314.  315.  311.  312. 35118700     311.    NA     NA
 9 QQQ    2021-01-19  314.  317.  313.  316. 24537000     315.    NA     NA
10 QQQ    2021-01-20  320.  325.  317.  324. 30728100     323.    NA     NA  

如果你想在基础R函数和quantmod函数的结合中做到这一点,请检查quantmod标签,有几篇文章使用了lapply来做到这一点。如果你找不到你需要的东西,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69685961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档