加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[R语言]quantmod包

(2015-05-31 15:13:27)
标签:

quantmod

金融大数据

分类: R

金融行情数据分析

量化投资

统计套利

统计套利是一种基于模型的套利策略,它从资产的历史交易数据找寻规律,发现两个或者两个以上的资产之间存在的套利机会,然后通过模型拟合资产价格的变化规律,设定交易阀值,通过计算机程序根据市场的实时信息自动发出交易信号而进行套利。

成对交易,即价差交易,是统计套利最常用的策略,指在构建某一资产多头的同时,构建另一种资产的空头,并在将来某一时刻同时了结两资产的头寸。这是一种市场中性策略,可以免疫市场风险,通过捕捉两个或者多个资产之间的相对错误定价机会来获得低风险收益。

主成分分析法,该策略通过分析与股票收益率相关的多种因素,建立回归模型,通过分析资产实际价格和模型预测价格之间的差异来获利。当实际资产价格高于模型预测价格时,则说明该资产被高估了,卖出该资产,待到实际资产价格与模型预测价格相等时,再买入该资产以平掉之前的空头头寸。反之则进行相反操作。

算法交易

算法交易又称自动交易、黑盒交易或者机器交易,它指的是通过使用计算机程序来发出交易指令的方法。在交易中,程序可以决定的范围包括交易时间的选择、交易的价格,甚至包括最后需要成交的证券数量。

被动型算法交易除利用历史数据估计交易模型的关键参数外,不会根据市场的状况主动选择交易的时机与交易的数量,而是按照一个既定的交易方针进行交易。该策略的核心是减少滑价(目标价与实际成交均价的差)。被动型算法交易最成熟,使用也最为广泛,如在国际市场上使用最多的成交量加权平均价格(VWAP)、时间加权平均价格(TWAP)等都属于被动型算法交易。

主动型算法交易也叫机会型算法交易。这类交易算法根据市场的状况做出实时的决策,判断是否交易、交易的数量、交易的价格等。

高频交易

高频交易是指从那些人们无法利用的极为短暂的市场变化中寻求获利的计算机化交易,比如,某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差。这种交易的速度如此之快,以至于有些交易机构将自己的“服务器群组”(server farms)安置到了离交易所的计算机很近的地方,以缩短交易指令通过光缆以光速旅行的距离。


Contents [hide]

一、ETL函数

getSymbols()

getFX()

getFinancials()

二、分析函数

1、is族函数

2、has族函数

3、列名函数

4、计算函数

三、展现函数

一、ETL函数


常用数据类型


数据类型 全称 意义

OP Open price 开盘价

Hi High price 最高价

Lo Low price 最低价

Cl Close price 收盘价

Vo volume 交易量

Ad Adjusted price 调整价格

HLC High price,Low price,Close price 最高价、最低价和收盘价

OHLC Open price,High price,Low price,Close price 开盘价、最高价、最低价和收盘价

ETL类函数


函数 作用 函数 作用

getSymbols() 从多种信息源里获得信息 getSymbols.csv() 从csv文件中读入数据

getDividends() 获取上市公司的信息数据 getSymbols.FRED() 从FRED中获取数据

getFinancials() 获取上市公司的财务报表 getSymbols.google() 从google中获取数据

getFX() 获取汇率数据 getSymbols.MySQL() 从MySQL中获取数据

getMetals() 获取重金属交易数据 getSymbols.oanda() 从oanda中获取

getSplits() 获取上市公司的拆股数据 getSymbols.rda() 从R的二进制文件中获取数据

getOptionChain() 获取期权交易数据 getSymbols.SQLite() 从SQLite数据库中获取数据

getQuote() 获取即时的网络报价 getSymbols.yahoo() 从雅虎网中获取数据

getSymbols()

getSymbols("EDU",src="yahoo",from="2014-01-01",to="2014-08-01")

EDU

           EDU.Open EDU.High EDU.Low EDU.Close EDU.Volume EDU.Adjusted

2014-01-02    31.10    31.21   30.36     30.62     463200        30.62

2014-01-03    30.08    30.72   30.06     30.27     593300        30.27

2014-01-06    30.46    30.67   30.11     30.38    2021100        30.38

2014-01-07    30.47    31.39   30.32     31.26    1159100        31.26

2014-01-08    31.71    32.63   31.59     32.41    1528200        32.41

2014-01-09    32.00    33.59   32.00     32.54    1450800        32.54

2014-01-10    32.94    32.99   32.27     32.63     834500        32.63

2014-01-13    32.64    32.78   32.08     32.66    1083600        32.66

2014-01-14    32.63    32.82   32.17     32.77    1463500        32.77

2014-01-15    32.83    33.39   32.65     33.07    1037800        33.07

2014-01-16    33.18    33.28   32.80     33.00    1129000        33.00

2014-01-17    33.00    34.49   32.87     33.68    2384800        33.68

2014-01-21    34.50    34.50   31.63     33.00    2958400        33.00

2014-01-22    33.65    33.86   32.59     32.94    1656200        32.94

2014-01-23    32.32    32.44   29.21     30.70    2541600        30.70

2014-01-24    30.28    30.46   29.80     29.96    2108500        29.96

2014-01-27    29.90    30.03   29.14     29.20    1582100        29.20

 

2014-07-28    19.68    19.75   19.41     19.59    1357200        19.59

2014-07-29    19.63    19.66   18.89     19.03    2825100        19.03

2014-07-30    19.29    20.14   19.15     19.78    2332200        19.78

2014-07-31    19.86    19.94   19.50     19.55    1753700        19.55

2014-08-01    19.50    19.55   18.81     19.27    1910500        19.27

 

> new.environment <- new.env()

> getSymbols("AAPL",env=new.environment,src="yahoo",from="2013-10-01",to="2013-10-23")

[1] "AAPL"

Warning message:

In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  :

  downloaded length 961 != reported length 200

> ls(envir=new.environment)

[1] "AAPL"

> get("AAPL",envir=new.environment)

           AAPL.Open AAPL.High AAPL.Low AAPL.Close AAPL.Volume

2013-10-01    478.45    489.14   478.38     487.96    88470900

2013-10-02    485.63    491.80   483.75     489.56    72296000

2013-10-03    490.51    492.35   480.74     483.41    80688300

2013-10-04    483.86    484.60   478.60     483.03    64717100

2013-10-07    486.56    492.65   485.35     487.75    78073100

2013-10-08    489.94    490.64   480.54     480.94    72729300

2013-10-09    484.64    487.79   478.28     486.59    75431300

2013-10-10    491.32    492.38   487.04     489.64    69650700

2013-10-11    486.99    493.84   485.16     492.81    66934700

2013-10-14    489.83    497.58   489.35     496.04    65474500

2013-10-15    497.51    502.00   495.52     498.68    80018400

2013-10-16    500.79    502.53   499.23     501.11    62775300

2013-10-17    499.98    504.78   499.68     504.50    63398300

2013-10-18    505.99    509.26   505.71     508.89    72635500

2013-10-21    511.77    524.30   511.52     521.36    99526700

2013-10-22    526.41    528.45   508.03     519.87   133515900

2013-10-23    519.00    525.67   519.00     524.96    78430800

           AAPL.Adjusted

2013-10-01         68.51

2013-10-02         68.73

2013-10-03         67.87

2013-10-04         67.82

2013-10-07         68.48

2013-10-08         67.52

2013-10-09         68.32

2013-10-10         68.74

2013-10-11         69.19

2013-10-14         69.64

2013-10-15         70.01

2013-10-16         70.36

2013-10-17         70.83

2013-10-18         71.45

2013-10-21         73.20

2013-10-22         72.99

2013-10-23         73.70

获取沪深300指数的日数据,它的代码为000300.ss,后面的字母表示该指数从属哪个交易所

> getSymbols("000300.ss",env=new.environment,src="yahoo",from="2014-01-01",to="2014-01-31")

[1] "000300.SS"

Warning message:

In download.file(paste(yahoo.URL, "s=", Symbols.name, "&a=", from.m,  :

  downloaded length 1197 != reported length 200

> ls(new.environment)

[1] "000300.SS" "AAPL"    

> get("000300.ss",envir=new.environment)

Error in get("000300.ss", envir = new.environment) : 

  object '000300.ss' not found

> get("000300.SS",envir=new.environment)

           000300.SS.Open 000300.SS.High 000300.SS.Low 000300.SS.Close 000300.SS.Volume 000300.SS.Adjusted

2014-01-02        2321.98        2321.98       2321.98         2321.98                0            2321.98

2014-01-03        2290.78        2290.78       2290.78         2290.78                0            2290.78

2014-01-06        2238.64        2238.64       2238.64         2238.64                0            2238.64

2014-01-07        2238.00        2238.00       2238.00         2238.00                0            2238.00

2014-01-08        2241.91        2241.91       2241.91         2241.91                0            2241.91

2014-01-09        2222.22        2222.22       2222.22         2222.22                0            2222.22

2014-01-10        2204.85        2204.85       2204.85         2204.85                0            2204.85

2014-01-13        2193.68        2193.68       2193.68         2193.68                0            2193.68

2014-01-14        2212.85        2212.85       2212.85         2212.85                0            2212.85

2014-01-15        2208.94        2208.94       2208.94         2208.94                0            2208.94

2014-01-16        2211.84        2211.84       2211.84         2211.84                0            2211.84

2014-01-17        2178.49        2178.49       2178.49         2178.49                0            2178.49

2014-01-20        2165.99        2165.99       2165.99         2165.99                0            2165.99

2014-01-21        2187.41        2187.41       2187.41         2187.41                0            2187.41

2014-01-22        2243.80        2243.80       2243.80         2243.80                0            2243.80

2014-01-23        2231.89        2231.89       2231.89         2231.89                0            2231.89

2014-01-24        2245.68        2245.68       2245.68         2245.68                0            2245.68

2014-01-27        2215.92        2215.92       2215.92         2215.92                0            2215.92

2014-01-28        2219.85        2219.85       2219.85         2219.85                0            2219.85

2014-01-29        2227.78        2227.78       2227.78         2227.78                0            2227.78

2014-01-30        2202.45        2202.45       2202.45         2202.45                0            2202.45

>

符数据源:http://www.dataguru.cn/article-1466-1.html


getFX()


从oanda上获取汇率

> getFX("HKD/USD",from="2014-07-01",env=new.environment)

[1] "HKDUSD"

Warning message:

In download.file(paste(oanda.URL, from.date, to.date, "exch=", currency.pair[1],  :

  downloaded length 18670 != reported length 200

> get("HKDUSD",env=new.environment)

           HKD.USD

2014-07-01   0.129

2014-07-02   0.129

2014-07-03   0.129

2014-07-04   0.129

2014-07-05   0.129

2014-07-06   0.129

2014-07-07   0.129

2014-07-08   0.129

2014-07-09   0.129

2014-07-10   0.129

2014-07-11   0.129

2014-07-12   0.129

2014-07-13   0.129

2014-07-14   0.129

2014-07-15   0.129

2014-07-16   0.129

2014-07-17   0.129

2014-07-18   0.129

2014-07-19   0.129

2014-07-20   0.129

2014-07-21   0.129

2014-07-22   0.129

2014-07-23   0.129

2014-07-24   0.129

2014-07-25   0.129

2014-07-26   0.129

2014-07-27   0.129

2014-07-28   0.129

2014-07-29   0.129

2014-07-30   0.129

2014-07-31   0.129

2014-08-01   0.129

2014-08-02   0.129

>

getFinancials()


从Google Finance上下载财务报表,其中包括income statement(IS), Balance Sheet(BS)和Cash Flow Statement(CF)

getFinancials("AAPL")

viewFinancials(AAPL.f)

get("AAPL",verbose=TRUE)

viewFinancials(AAPL.f)

viewFinancials(AAPL.f,c("CF","IS","BS"),"Q")

二、分析函数

1、is族函数

判断某数据是否是某类型的数据

is.OHLC()

is.OHLCV()

is.BBO()

is.TBBO()

is.HLC()

2、has族函数

检查数据里面是否包含某类型的数据

has.OHLC()

has.HLC()

has.OHLCV()

has.Op()

has.Hi()

has.Lo()

has.Cl()

has.Vo()

has.Ad()

has.Ask()

has.Bid()

has.Price()

has.Qty()

has.Trade()

3、列名函数

提取某种数据类型

Op()

Hi()

Lo()

Cl()

Vo()

Ad()

HLC()

OHLC()

4、计算函数

Delt() 计算变化率

Lag() 求滞后k期

Next() 求k个后

first() 求前k个

last() 求后k个

findPeaks() 找出峰值

findValleys() 找出谷值

seriesIncr() 差分后大于限值的点

seriesDecr() 差分后小于限值的点

endpoints() 寻找节点

to.weekly() 将OHLC数据转化为周数据

to.monthly() 将PHLC数据转化为月数据

periodicity() 返回数据的日期范围

计算不同阶段的收益率


periodReturn()

dailyReturn()

weeklyReturn()

monthlyReturn()

quarterlyReturn()

annualReturn()

yearlyReturn()

allReturn()


三、展现函数


chartTheme()

chartSeries()

reChart()

barChart()

candleChart()

lineChart()


技术分析图


addADX()

addATR()

addBBands()

addCCI()

addCMF()

addCMO()

addEMA()

addEnvelope()

addEVWMA()

addMACD()

addMomentum()

addExpiry()

addSAR()

addSMA()

addSMI()

addDEMA()

addDPO()

addROC()

addRSI()

addVo()

addWMA()

addWPR()

addZLEMA()

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有