利用 R 之 plotly 套件建立 candlestick chart+其他技術指標應用與結果分析

關於CISCO

  • 思科系統(Cisco.Systems,Inc.;NASDAQ:CSCO): 是一間跨國際綜合技術企業,總部設於加州矽谷。
  • 思科開發、製作和售賣網路硬體、軟體、通訊裝置等高科技產品及服務,並透過子公司打入其他科技市場,比如物聯網、域名安全、能源管理。公司成立於加州。
  • 納入思科的股價指數包括:
    S&P500,NASDAQ 100 Index,道瓊工業平均指數,羅素1000指數,可得知其在市場深具影響力

股價資料 與 style 說明

  • 抓取資料:
    • rm(list=ls(all=TRUE)):清除掉之前的變數
    • install.packages(plotly):載入plotly套件
    • install.packages(quantmod):載入quantmod套件
    • getSymbols(“CSCO”,src=‘yahoo’): 利用plotly和quantmod從yahoo finance抓取CISCO的股價資料
    • df <- data.frame(Date=index(CSCO),coredata(CSCO)): 把格式進行轉換 轉換成一般data.frame的格式
    • Date=index(CSCO)找出CSCO的股價數值為df1的數值
    • df <- tail(df, 100):抓最後100筆資料
# r, eval=FALSE, fig.width=3, fig.height=3
rm(list=ls(all=TRUE))
install.packages("plotly")
install.packages("quantmod")
library(plotly)
library(quantmod)
getSymbols("CSCO",src='yahoo')
df <- data.frame(Date=index(CSCO),coredata(CSCO))
df <- tail(df, 100)
  • 更改顏色:
    • i <- list(line = list(color = ‘#9F4D95’)): 利用RGB色碼表自定義燭台顏色
    • d <- list(line = list(color = ‘#FFFF37’)): 利用RGB色碼表自定義燭台顏色
# r, eval=FALSE, fig.width=3, fig.height=3
i <- list(line = list(color = '#9F4D95'))
d <- list(line = list(color = '#FFFF37'))
  • 加入線段標示:
    • a <- list(text = “除息日”, x = ‘2022-04-04’, y = 1.02, xref = ‘x’, yref = ‘paper’, xanchor = ‘left’, showarrow = FALSE):
      設定線段的標示與除息日的日期
    • l <- list(type = line, x0 = ‘2022-04-04’, x1 = ‘2022-04-04’, y0 = 0, y1 = 1, xref = ‘x’, yref = ‘paper’, line = list(color = ‘blue’, width = 0.8)):
      產生線段
# r, results='hide', fig.width=3, fig.height=3
library(plotly)
library(quantmod)
getSymbols("CSCO",src='yahoo')
df <- data.frame(Date=index(CSCO),coredata(CSCO))
a <- list(text = "除息日",
          x = '2022-04-04',
          y = 1.02,
          xref = 'x',
          yref = 'paper',
          xanchor = 'left',
          showarrow = FALSE)

l <- list(type = line,
          x0 = '2022-04-04',
          x1 = '2022-04-04',
          y0 = 0,
          y1 = 1,
          xref = 'x',
          yref = 'paper',
          line = list(color = 'blue',
                      width = 0.8))
fig <- df %>% plot_ly(x = ~Date, type="candlestick",
          open = ~CSCO.Open, close = ~CSCO.Close,
          high = ~CSCO.High, low = ~CSCO.Low) 
fig <- fig %>% layout(title = "CISCI Stock",
         annotations = a,
         shapes = l)

fig

程式碼與蠟燭圖

# r, echo=FALSE, fig.width=3, fig.height=3
rm(list=ls(all=TRUE))
library(plotly)
library(quantmod)
getSymbols("CSCO",src='yahoo')
## [1] "CSCO"
df <- data.frame(Date=index(CSCO),coredata(CSCO))
df <- tail(df, 100)
i <- list(line = list(color = '#9F4D95'))
d <- list(line = list(color = '#FFFF37'))
a <- list(text = "除息日",
          x = '2022-04-04',
          y = 1.02,
          xref = 'x',
          yref = 'paper',
          xanchor = 'left',
          showarrow = FALSE)

l <- list(type = line,
          x0 = '2022-04-05',
          x1 = '2022-04-05',
          y0 = 0,
          y1 = 1,
          xref = 'x',
          yref = 'paper',
          line = list(color = 'blue',
                      width = 0.8))

fig <- df %>% plot_ly(x = ~Date, type="candlestick",
                      open = ~CSCO.Open, close = ~CSCO.Close,
                      high = ~CSCO.High, low = ~CSCO.Low,
                      increasing = i, decreasing = d)
fig <- fig %>% layout(title = "CISCO Stock",
                      annotations = a,
                      shapes = l)

fig

結論

CISCO公司於2022/04/05除息,當日的開盤價是55.2元,收盤價是55.92元,
除息後股價呈現下跌的狀態,產生除息斷層,
CISCO公司因退出俄羅斯事業和中國防疫封控造成零組件短缺,網路設備製造商下調2022年的獲利成長,
所以2022/5/19CISCO公司公布的Q3財報弱於預期
加上美國升息,投資人持續對通膨和利率上升感到擔憂,
CISCO股價在當日下跌13.7%,時至今日都未完成填息

自我評分

主題:10 年期通貨膨脹率升高時,10年期公債殖利率是否也同步走高
評分:子主題基本分+{dyLegend,dyEvent,dyAnnotation}R之dygraphs套件上課介紹外之其他函數+RMarkdown
主題:利用 R 之 plotly 套件建立 candlestick chart+其他技術指標應用與結果分析
評分:子主題基本分+{annotations}R之dygraphs套件上課介紹外之其他函數+RMarkdown
總分:2個主題基本分(70分)+2個都用RMarkdown(5*2=10)分+上課套件外其他函數
Rubs網址為:https://rpubs.com/realslimxuan/907863