首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复'symbol‘类型的对象的错误代码是不可子集的

如何修复'symbol‘类型的对象的错误代码是不可子集的
EN

Stack Overflow用户
提问于 2021-06-28 07:53:50
回答 1查看 24关注 0票数 1

我最初是从开发SMA移动平均线开始的,但我想调整函数以启动用户的股票名称以下是我的代码

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

    library(TTR)
    library(PerformanceAnalytics)
    stock = readline("Enter the stock name:")
    stock
    getSymbols(stock, src = 'yahoo', from = '2021-01-01')
    
    barChart(as.name(stock), theme = chartTheme('black'))
    
    # Creating Leading and Lagging Technical Indicators
    
    # a. Simple Moving Average (SMA)
    
    # 1. stock
    sma10_stock <- SMA(as.name(stock)$as.name(stock.Close), n = 10)
    sma15_stock <- SMA(as.name(stock)$as.name(stock.Close), n = 15)
    lineChart(as.name(stock), theme = chartTheme('black'))
    addSMA(n = 10, col = 'blue')
    addSMA(n = 15, col = 'orange')
    legend('left', col = c('green','blue','orange'),
           legend = c('stock','SMA10','SMA15'), lty = 1, bty = 'n',
           text.col = 'white', cex = 0.8)
    
    # Creating Trading signal with Indicators
    
    # SMA 
    
    # a. stock
    # SMA 10 Crossover Signal 
    sma10_stock_ts <- Lag(
      ifelse(Lag(Cl(as.name(stock))) < Lag(as.name(stock)) & Cl(as.name(stock)) > sma10_stock,1,
             ifelse(Lag(Cl(AMC)) > Lag(sma10_stock) & Cl(AMC) < sma10_stock,-1,0)))
    sma10_stock_ts[is.na(sma10_stock_ts)] <- 0
EN

回答 1

Stack Overflow用户

发布于 2021-06-28 11:45:28

正如@m.flick提到的,你可以用auto.assign = FALSEgetSymbols中传递股票的字符值。要使用列号函数,您将无法使用$stock.Close,您可以将其替换为列号。

代码语言:javascript
复制
library(quantmod)
library(TTR)
library(PerformanceAnalytics)

stock = readline("Enter the stock name:")

data <- getSymbols(stock,src = 'yahoo', from = '2021-01-01', auto.assign = FALSE)
barChart(data, theme = chartTheme('black'))

# Creating Leading and Lagging Technical Indicators

# a. Simple Moving Average (SMA)

# 1. stock
sma10_stock <- SMA(data[, 4], n = 10)
sma15_stock <- SMA(data[, 4], n = 15)
lineChart(data, theme = chartTheme('black'))
addSMA(n = 10, col = 'blue')
addSMA(n = 15, col = 'orange')
legend('left', col = c('green','blue','orange'),
       legend = c('stock','SMA10','SMA15'), lty = 1, bty = 'n',
       text.col = 'white', cex = 0.8)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68156161

复制
相关文章

相似问题

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