`

R语言之quantmod包

 
阅读更多
从传统的股市交易图表说起
量化投资
统计套利
算法交易
高频交易

当一种赚钱的交易策略被广大股民所掌握,这条规则就会趋于平行而失效。

量化投资 
通过数据分析手段,来提供买卖股票的建议。

统计套利: 从历史交易中寻找套利机会,比如成对交易,将股票进行归类,当同一类的股票上升,而同类的其他股票有较大概率上升。
算法交易: 通过计算机程序发出指令,代替人为交易。交易的操作通过算法来计算。
高频交易: 利用市场的波动,快进快出。

中国股市还是处于政策市场,任何的趋势都会被政府的政策所打压。

R语言

R是用于统计分析,统计绘图的语言和操作环境。
它是免费的,它有UNIX、LINUX、MacOS和WINDOWS版本。它拥有很多算法包。


R的特点
1.有效的数据处理和保存机制。 
2.拥有一整套数组和矩阵的操作运算符。 
3.一系列连贯而又完整的数据分析中间工具。 
4.图形统计可以对数据直接进行分析和显示,可用于多种图形设备。 
5.一种相当完善、简洁和高效的程序设计语言。它包括条件语句、循环语句、用户自定义的递归函数以及输入输出接口。 
6.R语言是彻底面向对象的统计编程语言。 
7.R语言和其它编程语言、数据库之间有很好的接口。 
8.R语言是自由软件,可以放心大胆地使用,但其功能却不比任何其它同类软件差。 
9.R语言具有丰富的网上资源


Quantmod包中的函数

1.ETL类函数
2.分析类函数
3.展现类函数

加载程序包:library(quantmod)

--获取上市公司股票的日交易数据,获取后的数据会保存到EDU变量中
>getSymbols("EDU",src="yahoo",from="2013-08-20",to="2013-09-02")
--列出记录
>EDU 
--在全局环境下新建容器,容器是存放对象的。对象的名称是new.environment
>new.environment<-new.env()

--获取数据,并将获取后的记录放到AAPL中。AAPL通过env参数指定容器
>getSymbols("AAPL",env=new.environment,scr="yahoo",from="2013-10-01",to="2013-10-23")

--列出new.environment容器下的所有变量
> ls(envir=new.environment)
[1] "AAPL"

--列出new.environment容器下AAPL变量值
> get("AAPL",envir=new.environment)
           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2013-10-01    478.45    489.14   478.38     487.96    88470900         67.88
2013-10-02    485.63    491.80   483.75     489.56    72296000         68.10
2013-10-03    490.51    492.35   480.74     483.41    80688300         67.24
2013-10-04    483.86    484.60   478.60     483.03    64717100         67.19
2013-10-07    486.56    492.65   485.35     487.75    78073100         67.85
2013-10-08    489.94    490.64   480.54     480.94    72729300         66.90
2013-10-09    484.64    487.79   478.28     486.59    75431300         67.68
2013-10-10    491.32    492.38   487.04     489.64    69650700         68.11
2013-10-11    486.99    493.84   485.16     492.81    66934700         68.55
2013-10-14    489.83    497.58   489.35     496.04    65474500         69.00
2013-10-15    497.51    502.00   495.52     498.68    80018400         69.37
2013-10-16    500.79    502.53   499.23     501.11    62775300         69.70
2013-10-17    499.98    504.78   499.68     504.50    63398300         70.18
2013-10-18    505.99    509.26   505.71     508.89    72635500         70.79
2013-10-21    511.77    524.30   511.52     521.36    99526700         72.52
2013-10-22    526.41    528.45   508.03     519.87   133515900         72.31
2013-10-23    519.00    525.67   519.00     524.96    78430800         73.02
> 

--获取getSymbols命令的用法
> help(getSymbols)



getFX() 函数
从oanda上获取汇率
--新建容器
>new.environment=new.env()
--获取数据
>getFX("HKD/USD",from="2013-10-20",env=new.environment)
--输出保存数据的记录
>get("HKD/USD",envir=new.environment)

getFianacials()函数
从Google Finance上下载财务报表,
>getFinancials("AAPL")

>viewFinancials(AAPL.f)

分析类函数

1.is 族函数
2.hash 族函数
3.列名函数
4.计算函数

1.is 族函数
判断某数据是否是某类型的数据

is.OHLC() --Open price,High price,Low price Close price 开盘价,最高价,最低价和收盘价
is.OHLCV() --V 交易量
is.BBO()
is.TBBO()
is.HLC()

2.hash 函数
检查数据里面是否包含某类型的数据

> has.Op(AAPL) --是否包含开盘价
[1] TRUE

> has.OHLC(AAPL) --是否包含开盘价,最高价,最低价,收盘价
[1] TRUE TRUE TRUE TRUE

3.列名函数
提取某种类型
> Op(AAPL)
           AAPL.Open
2013-10-01    478.45
2013-10-02    485.63
2013-10-03    490.51
2013-10-04    483.86
...

> Hi(AAPL)
           AAPL.High
2013-10-01    489.14
2013-10-02    491.80
2013-10-03    492.35
2013-10-04    484.60

> Lo(AAPL)
           AAPL.Low
2013-10-01   478.38
2013-10-02   483.75
2013-10-03   480.74
2013-10-04   478.60

4.计算函数

Delt() 计算变化率
Lag() 求滞后K期
Next() 所有观测值的值前进k个单位
first() 求前K个元素
last() 求后K个元素
--计算不同阶段的收益率
periodReturn()
dailyReturn()
weeklyReturn()
monthlyReturn()
quarterlyReturn()
annualReturn()
yearlyReturn()
allReturn()

Delt()函数
主要是用来计算一个序列的一个阶段到另一个阶段的变化率或者计算两个序列之间的变化率


--当天减去前一天的值,然后除以前一天的值
> Delt(Op(AAPL),type=("arithmetic"))
           Delt.1.arithmetic
2013-10-01                NA
2013-10-02       0.015006793
2013-10-03       0.010048803
2013-10-04      -0.013557318
2013-10-07       0.005580126

--(关盘价-开盘价)/开盘价
> Delt(Op(AAPL),Cl(AAPL))
           Delt.0.arithmetic
2013-10-01      0.0198766851
2013-10-02      0.0080925808
2013-10-03     -0.0144747304
2013-10-04     -0.0017153722


--元素前进一天,485.63 本来是2013-10-02的数据
> Next(AAPL,1)
             Next
2013-10-01 485.63
2013-10-02 490.51
2013-10-03 483.86
2013-10-04 486.56

将数据转化为周数据或者月数据

周,将周初的开盘价作为开盘价,周内的最低价及最高价作为最高最低价
交易量则汇总周内的所有交易量
> to.weekly(AAPL)
           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
2013-10-04    478.45    492.35   478.38     483.03   306172300         67.19
2013-10-11    486.56    493.84   478.28     492.81   362819100         68.55
2013-10-18    489.83    509.26   489.35     508.89   344302000         70.79
2013-10-23    511.77    528.45   508.03     524.96   311473400         73.02

月,则将月初的开盘价作为开盘价,月初的关盘价作为月末的关盘价,
月内的最高价和最低价作为最高低价,交易量则汇总
> to.monthly(AAPL)
          AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume AAPL.Adjusted
十月 2013    478.45    528.45   478.28     524.96  1324766800         73.02

--分别获取AAPL,MSFT,ORCL,GOOG的信息数据,并存入变量
getSymbols(c("AAPL","MSFT","ORCL","GOOG"),env=new.environment,scr="yahoo")


求出Apple公司在2013.1-2013.10的股票总成交量使用
1.getSymbols("AAPL",env=new.environment,scr="yahoo",from="2013-01-01",to="2013-10-31")
--将每个月的汇总数据放入变量AAPL中
2.a=to.monthly(get("AAPL",envir=new.environment))
--汇总1到10月的数据,汇总值为第五个Volume
3.sum(a[1:10,5])



找出这些股票暴涨暴跌的时间点(例如开盘价或收盘价比前一天涨跌幅度超过2%)

AAPL.Cl<-Delt(Cl(get("AAPL",envir=new.environment)),type=("arithmetic"))
AAPL.Cl[which(abs(AAPL.Cl)>0.02),]
plot(AAPL.Cl)

 

分享到:
评论

相关推荐

    R金融数据分析之quantmod包-01

    本文档主要讨论了量化投资、统计套利、算法交易、高频交易等概念,并介绍了R语言及其在金融数据分析中的应用,特别是通过quantmod包进行数据处理和分析。以下是对文档中提到的知识点的详细阐述。 首先,量化投资是...

    大数据分析r和rstudio和quantmod_基础部分

    大数据分析课程主要围绕R语言及其相关工具RStudio和quantmod的基础知识和应用技能进行教学。该课程涵盖了从R语言的安装使用到RStudio的深入操作,再到quantmod工具的简单应用等多个方面。下面,我们将详细讲解这些...

    语言七种武器之金融数据分析quantmod quantmod03.rar

    《语言七种武器之金融数据分析quantmod》系列教程主要探讨如何使用R语言中的quantmod库进行高效、深入的金融数据分析。quantmod是一个强大的R包,专门为金融分析师和数据科学家提供了丰富的工具,帮助他们进行股票...

    语言七种武器之金融数据分析quantmod quantmod02.rar

    《语言七种武器之金融数据分析quantmod》是一个深入讲解如何使用R语言进行金融数据分析的教程。在本课程中,重点围绕quantmod库展开,该库是R语言中用于量化金融分析的强大工具,尤其适合对股票市场数据进行研究。...

    语言七种武器之金融数据分析quantmod quantmod01.rar

    《语言七种武器之金融数据分析quantmod》是针对金融数据处理和分析的一系列教程,主要聚焦于使用R语言中的quantmod库。quantmod是R语言中一个强大的金融数据分析工具包,它提供了丰富的功能,帮助用户获取、处理和...

    QuantMod Developer Package

    QuantMod是一个基于R语言的软件包,主要用于定量金融模型的构建、交易和分析。QuantMod不仅提供了金融时间序列数据的获取、处理和可视化的功能,还包括了用于技术分析的多个指标和模型的实现。 QuantMod包可以用来...

    R七种武器之金融数据分析quantmod借鉴.pdf

    《R七种武器之金融数据分析quantmod》是一门专为金融数据分析和量化投资设计的进阶课程,旨在帮助学员掌握使用R语言中的quantmod包进行高效的数据处理和分析。这门课程是DataGuru专业数据分析社区推出的“R七种武器...

    R语言做量化

    R语言中的许多包,例如quantmod、tseries等,提供了直接从互联网下载金融数据的功能。 2. 数据处理与清洗:获取到的数据往往存在缺失、错误或不一致的情况,需要进行清洗和预处理。R语言中的dplyr和tidyr包是处理这...

    量化投资-以R语言为工具-课后题元数据

    在量化投资领域,R语言因其强大的统计分析能力和丰富的金融库,成为了开发工具的首选之一。本主题主要关注如何使用R语言进行量化投资分析,并通过课后习题来深入理解和实践这些概念。 首先,Bank.csv文件可能包含...

    量化投资-以R语言为工具-课后习题答案

    R包是R语言中扩展功能的主要方式,可以通过`install.packages()`函数来安装所需的包。例如,安装一系列常用的金融和时间序列分析包: ```r install.packages(c('fBasics', 'foreign', 'RODBC', 'tseries', 'xts', '...

    R语言获取国内的股票数据

    对于使用R语言进行分析的研究者或开发者来说,`quantmod`包是一个非常实用的工具,它可以帮助用户轻松地获取到全球范围内的股票数据。不过,在获取国内(如中国)的股票数据时,由于数据源的问题,可能需要一些额外...

    金融数据分析导论,基于R语言

    R语言作为一款强大的统计分析工具,已经被广泛应用于金融数据分析之中。本篇内容将深入探讨“金融数据分析导论,基于R语言”的核心知识点,帮助初学者快速掌握使用R进行金融数据处理与分析的方法。 首先,我们需要...

    R语言统计分析软件简明教程

    《R语言统计分析软件简明教程》是一本深入浅出的指南,旨在帮助读者掌握R语言在统计分析中的应用。R语言,作为一种强大的开源编程语言和环境...现在,打开`R语言统计分析软件简明教程.pdf`,开始你的R语言统计之旅吧!

    量化投资 以R语言为工具 高清 带索引书签目录_蔡立耑著

    ### 量化投资与R语言应用概述 《量化投资:以R语言为工具》是一本由蔡立耑撰写的关于如何运用R语言进行量化投资的专业书籍。本书深入浅出地介绍了量化投资的基本概念、理论框架以及实际操作技巧,并通过丰富的案例...

    T宝买的大数据R语言课程初级到高级共19套

    高级教程包含 R 语言七种武器系列,如文本挖掘包 tm(03 学时)、网络爬虫 RCurl(06 学时)、plyr(07 学时)、shiny 动态图(10 学时)、ggplot2(15 学时)、金融数据分析 quantmod(16 学时),还有 R 语言统计...

    R语言视频教程,适合初学者和深入学习者

    - 数据获取:利用quantmod包下载股票价格数据。 - 数据探索与可视化。 - 技术指标计算与回测策略。 - **案例二:客户细分与营销策略优化**: - 客户特征分析。 - K-means聚类分析。 - 营销活动效果评估与优化...

    用R语言进行高级量化投资.rar

    进一步,R语言的`quantmod`包是量化交易的重要工具,它集成了获取金融数据、绘制图表、技术分析和交易策略执行等功能。你可以通过`getSymbols`函数获取股票、期货等市场数据,然后结合技术指标构建交易信号。 在...

    用R语言实现量化交易策略-张丹-v2_r语言金融_量化_r_量化交易_V2_源码.rar.rar

    此外,R语言还有许多专门为金融分析设计的包,如`quantmod`、`tseries`、`PerformanceAnalytics`等,这些包提供了从数据获取、预处理到策略回测的全套工具。 在这个压缩包中,我们可能会找到一系列R语言脚本,涵盖...

    谢佳标—大数据处理及建模技术—基于R语言实现.pdf

    quantmod包主要用于金融建模,可以从多个数据源获取历史数据、绘制金融图表等。XML包则包含抓取网络数据的函数,可将网络表格数据直接转换为R的数据框。RCurl包则提供libcurl库的接口,支持HTTP功能,如下载文件、...

Global site tag (gtag.js) - Google Analytics