r语言 python 股票_如何用R语言下载到国内股票数据?
[原]量化投資教程:用R語言打造量化分析平臺
概述
和Python計算環境中的tushare包一樣,在R中我們使用quantmod包接入第三方數據源,實現自定義量化分析平臺的構建。
本文打算以陌陌的股票分析為背景,介紹如何通過quantmod包構建專屬的量化分析平臺。什么是quantmod
quantmod就是提供給寬客們使用的專業模塊,Quantmod本身提供強大的數據接入能力,默認是雅虎財經的數據源,此外quantmod還以繪制專業的行情分析圖表以及各種技術指標計算等功能著稱,常常只要幾行函數就能完成從數據獲取和處理到畫圖的復雜功能,其工作效率之高讓行家里手都覺得膛目結舌。利用API讀取在線行情
首先,我們利用雅虎財經的默認接口直接體驗一下讀取多只股票。原理
利用API讀取的方式,我們需要設定一個讀取序列和對應的配置,獲取行情函數getSymbols類似于原生的assign和get函數,用函數的方式將變量名傳入后完成變量的賦值。
基于這個原理,我寫了一個Quote函數來優化參數配置的體驗。首先我們需要定義一個股票池序列,然后調用Quote函數獲取某只股票的行情返回數據。
下面以美股的陌陌、360和A股的平安銀行為例:代碼
# 加載quantmod包
if(!require(quantmod)){
install.packages("quantmod")
}
# 股票行情匹配函數
Quote = function(code){
index = match(code,universes)
temp = lapply(universes,get)
return(temp[[index]])
}
# 基本配置
universes <
from = "2015-01-04"
to = Sys.Date() # 結束時間設為當前日期
src= "yahoo" # 來源雅虎財經
# 行情加載 速度有點慢,耐心等待
quantmod::getSymbols(universes,from=from,to=to,src=src)
# 繪制行情
quantmod::chartSeries(Quote("MOMO"),up.col='red',dn.col='green',TA="addVo(); addADX();addMACD(); addSMA(n=10);addBBands(n=14,sd=2,draw=\"bands\")")效果利用CSV讀取離線行情
接著,在離線模式或者網絡訪問緩慢的情況下,我們也可以用一些實現準備好的CSV文件來讀取行情。原理
分析底層數據結構后,我們知道quantmod包讀取后的數據格式是 xts 和 zoo,我們只需要將csv文件按一定的格式讀取到內存后再進行相應變換,quantmod強大的分析和作圖能力就可以為我們所用。
zoo本身是一種時間序列格式,而xts則是在這基礎上一種時間序列格式的加強版。在讀取csv的時候,我們需要用首行確定header。在轉化為zoo時,我們則需要首列來確定時間序列對應的時間。最后通過xts轉化為可以被quantmod識別的xts時間序列對象。下面以平安銀行為例:代碼
# 加載 zoo 時間序列包
library(zoo)
library(quantmod)
# 配置文件路徑
filePath = '/Users/harryzhu/temp.csv'
# 讀取CSV并轉化時間格式
csv
csv$LZ_GPA_QUOTE_TCLOSE
# 轉化為zoo類型
temp = read.zoo(csv)
# 轉化我xts類型
payh =as.xts(temp[,1]);colnames(payh)="Close"
# 制圖
chartSeries(payh,name="000001.SZ")
# 添加MACD曲線
addMACD()效果指標計算
參考官方文檔,我們知道,利用quantmod和TTR包,我們可以快速計算常見指標,下面是對應的計算列表。
指標名TTR 函數名quantmod 函數名威爾斯懷爾德移動方向指標ADXaddADX真實波幅ATRaddATR布林通道BBandsaddBBands布林帶寬N/AaddBBands百分比布林帶N/AaddBBands順勢指標CCIaddCCI資金流動CMFaddCMF錢德動量指標CMOaddCMO雙指數移動平均線DEMAaddDEMA離勢價格偏離指數DPOaddDPO指數平滑移動平均線EMAaddEMA價格信封N/AaddEnvelope指數量權移動平均線EVWMAaddEVWMA期權期貨到期N/AaddExpiry異同平均線MACDaddMACD動量momentumaddMomentum變動率ROCaddROC相對強弱指數RSIaddRSI轉折點信號SARaddSAR簡單移動平均線SMAaddSMA隨機動量指數SMIaddSMI三重平滑振蕩指數TRIXaddTRIX成交量N/AaddVo加權移動平均法WMAaddWMA零延遲指數移動平均線ZLEMAaddZLEMA
尾注
綜上所述,我們可以發現,利用quantmod包,我們可以快速實現各種姿勢的行情獲取以及常見的關鍵指標的計算和繪制。參考資料作為分享主義者(sharism),本人所有互聯網發布的圖文均遵從CC版權,轉載請保留作者信息并注明作者 Harry Zhu 的 FinanceR 專欄:FinanceR - SegmentFault,如果涉及源代碼請注明GitHub地址:harryprince (HarryZhu) · GitHub。微信號: harryzhustudio
商業使用請聯系作者。
總結
以上是生活随笔為你收集整理的r语言 python 股票_如何用R语言下载到国内股票数据?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [导入]C#实现Des加密和解密
- 下一篇: 360发布穿戴设备“儿童卫士”手环