R學習筆記:quantmod取得股票資料並畫出圖表(2)

R學習筆記:quantmod取得股票資料並畫出圖表(2)

原文:http://www.quantmod.com/examples/charting/

    如果說有一個R領域有點欠缺的話,那就是用標準的財務圖表工具來視覺化金融、財務資料。quantmod提供了一個解決方案。

基本操作:

getSymbols("GS") #下載資料 
chartSeries(last(GS, '6 months')) 

結果:

稍微升級點:

barChart(GS,theme='white.mono',bar.type='hlc') 

下面這個是彩色的:

candleChart(last(GS, '6 months'),multi.col=TRUE,theme='white')

linechart:

lineChart(last(GS, '6 months'),line.type='h',TA=NULL) 

可以看到,各種各樣的選項可供選擇,真的好靈活。

形式引數:顏色,裁剪,刻度。

通過調整引數,看看結果的不同。

chartSeries(GS) #全部資料

改下資料子集。

candleChart(GS,subset='2007-12::2008') #07年十二月至08年最後

小改變:

candleChart(GS,theme='white', type='candles') 
reChart(major.ticks='months',subset='first 16 weeks') # reChart 用於修改前面的圖表

技術分析

目前TTR包和quantmod包提供的一些指示器(指標):

指標TTR 名稱quantmod 名稱
Welles Wilder’s Directional Movement IndicatorADXaddADX
Average True RangeATRaddATR
Bollinger BandsBBandsaddBBands
Bollinger Band WidthN/AaddBBands
Bollinger %bN/AaddBBands
Commodity Channel IndexCCIaddCCI
Chaiken Money FlowCMFaddCMF
Chande Momentum OscillatorCMOaddCMO
Double Exponential Moving AverageDEMAaddDEMA
Detrended Price OscillatorDPOaddDPO
Exponential Moving AverageEMAaddEMA
Price EnvelopeN/AaddEnvelope
Exponential Volume Weigthed Moving AverageEVWMAaddEVWMA
Options and Futures ExpirationN/AaddExpiry
Moving Average Convergence DivergenceMACDaddMACD
MomentummomentumaddMomentum
Rate of ChangeROCaddROC
Relative Strength IndicatorRSIaddRSI
Parabolic Stop and ReverseSARaddSAR
Simple Moving AverageSMAaddSMA
Stocastic Momentum IndexSMIaddSMI
Triple Smoothed Exponential OscillatorTRIXaddTRIX
VolumeN/AaddVo
Weighted Moving AverageWMAaddWMA
Williams %RWPRaddWPR
ZLEMAZLEMAaddZLEMA

試一試。

TA=NULL表示什麼指標都不畫。last(GS, ‘6 months’),是為了使資料量小一點,要不糊成一片,看不出效果。

chartSeries(last(GS, '6 months'), TA=NULL) 

下面我們增加指標。

chartSeries(last(GS, '6 months'), theme="white", TA="addVo();addBBands();addCCI()")

這次畫出非常驚豔的圖:

一行一行來,也可以得到上面的效果:

chartSeries(last(GS, '6 months'), theme="white") #draw the chart 
addVo() #add volume 
addBBands() #add Bollinger Bands 
addCCI() #add Commodity Channel Index

quantmod兩個最新功能

addTA

newTA

chartSeries(last(GS, '6 months'), TA=NULL) 
#Then add the Open to Close price change 
#using the quantmod OpCl function 
addTA(OpCl(last(GS, '6 months')),col='blue', type='h')

# Using newTA it is possible to create your own 
# generic TA function --- let's call it addOpCl 
# 
addOpCl <- newTA(OpCl,col='green',type='h') 
addOpCl() 

關於chartSeries 和 quantmod 的當前以及未來的視覺化工具,可說的內容太多了。今天到此結束。