本文主要参考:来自segmentfault上的FinanceR的专栏

并自己对生疏不解之处做了补充和注释。
当然,况客的R SDK的强大之处在于,你注册账号,进入网站的控制台后,会直接在浏览器模拟出一个RStudio的页面,可以直接运行操作,还可以设置。
而对于的qutke包,托管于github,所谓的API,应当就是指这个包的用法。
每个人会分配一个私钥。
 
个人感觉,现在他仅仅是提供了一个浏览器平台,以及数据获取方式的qutke。
恩,大家都吐槽quantmod的不的数据不准确(尤其雅虎财经现在不上心)
 
恩,那么我们尝试下wind吧,wind的话,他的R插件其实也蛮奇怪的,首先,是不能在CRAN上找到的。
其次,一般的方法是登录windPC端(需要账号)。文件——修复插件——修复R插件——确定,然后就是命令行界面一阵滚屏,按任意键推出即可。
(这样的安装方式,应该是更利于其控制接入吧,他就可以收费啦)
输入以下代码:
  1. library(WindR)
  2. w.start()
即得到下图。
按钮和excel插件的按钮作用相似,而且,点击之后出来的选择参数、时间等各种的界面和excel插件的作用完全一致。
点击确定后,将出现一行文本
恩,我们只需要复制这行文本,作为代码运行他,即可将满足我们要求的数据提取到对应的w_wsi_data对象中了,恩,使用class/mode函数,我们可以指导其是一个list。
我们当然可以不借助GUI的帮助,如果我们熟悉其函数的话,我们也可以根据自己的喜欢,改变各种参数和变量名。
 
 
况客
第一步安装包
  1. library(quantmod)
  2. library(plyr)
  3. library(TTR)
  4. library(scales)
  5. library(ggplot2)
  6. library(DT)
  7. library(qutke)
 
第二步,设置key
  1. key<-'faca4c8ff4dc1502d87944ea9cfd74f19918f0aef37fde6746b61d4d339bfcf3'
  2. init(key)
  3. # [1] "authorize success!"
authorize 授权。即初始化key之后,会返回一个“授权成功”
这个key应该是官方公用的?每个人自己也有一个私钥的
 
第三步,设置日期
  1. sDate<- as.Date("2016-01-03")#开始日期
  2. eDate<-Sys.Date()# 截止今日日期
  3. tradingDay<-getDate(data="tradingDay",
  4.                     startdate=sDate,
  5.                     enddate=eDate,key=key)
  6. tradingDay
getDate中,我们指定了data的值为tradingDay,同时给定了起止日期,并告示key
此时的tradingDay中,全是交易日日期数据(非交易日不会被包含在里面哦)
 
第四步:获取行情数据
  1. qtid<-c('000001.sz')#设置股票池
  2. dailyQuote<-getDailyQuote(data="mktFwdDaily",qtid=qtid,
  3.                           startdate=sDate,enddate=eDate,key=key)
  4. # 000001.sz
  5. # 查看列名
  6. colnames(dailyQuote)
  7. colnames(dailyQuote)
 
第五步ggplot2简单作图
  1. DT::datatable(dailyQuote)
只见RStudio右下方的地方出现如下
(恩,看来是可视化的数据展示啊,而且还有好多页哦,上面的10还有其他选项25/50,即每页显示多少行数据)
关于双冒号,什么鬼?
于是使用
  1. ??"::"
Description 
Accessing exported and internal variables, i.e. R objects (including lazy loaded data sets) in a namespace.
即在名称空间中方法R的对象/变量/数据集的
Usage
pkg::name
pkg:::name
Arguments
pkg   
package name: symbol or literal character string.(包名:字符串字面值?)
name   
variable name: symbol or literal character string.(变量名)
Details
For a package pkg, pkg::name returns the value of the exported variable name in namespace pkg, whereas pkg:::name returns the value of the internal variable name. The package namespace will be loaded if it was not loaded before the call, but the package will not be attached to the search path.
Specifying a variable or package that does not exist is an error.
Note that pkg::name does not access the objects in the environment package:pkg (which does not exist until the package's namespace is attached): the latter may contain objects not exported from the namespace. It can access datasets made available by lazy-loading.
Note
It is typically a design mistake to use ::: in your code since the corresponding object has probably been kept internal for a good reason. Consider contacting the package maintainer if you feel the need to access the object for anything but mere inspection.
其实在我看来,怎么更像是在调用一个包中的函数或变量(哈哈静态变量么?)或数据集呢?
那么和正常的调用的区别在哪里呢?
请看我在知乎这篇问答中的评论
里面提到了这本书http://r-pkgs.had.co.nz/
 
  1. qplot(dailyQuote$date,dailyQuote$close)
第六步格式转换
  1. dailyQuote$date<-as.POSIXct(as.character(dailyQuote$date),
  2.                             tz="",format="%Y-%m-%d")
POSIXct应是一种日期格式
Functions to manipulate objects of classes "POSIXlt" and "POSIXct" representing calendar dates and times.
tz=""表示the current time zone
format是character string giving a date-time format as used by strptime.
此时dailyQuote$date中的每个元素的形式从"2016-01-04"变为"2016-01-04 CST"
其中CST可视为美国,澳大利亚或中国的标准时间(中国标准时间:China Standard Time UT+8:00)。
temp = read.zoo(dailyQuote[,-1][,1:2]) 
dailyQuote的第一列是qtid(证券代码)
去除第一列后取此时的第一列和第二列,即为date和close
恩,不如优化为temp = read.zoo(dailyQuote[,2:3])
神奇吧?read.zoo的第一个参数是file,除了可以是文件名外,file can be a connection or a data.frame (e.g., resulting from a previous read.table call) that is subsequently processed to a "zoo" series.
自己写个例子测试下就知道了:
  1. > testD<-data.frame(x=1:5,y=2:6)
  2. > read.zoo(testD)
  3. 12345 
  4. 23456 
转化为xts格式
  1. > payh =as.xts(temp[,1])
  2. > head(payh)
  3.             [,1]
  4. 2016-01-0411.33
  5. 2016-01-0511.40
  6. 2016-01-0611.53
  7. 2016-01-0710.94
  8. 2016-01-0811.12
  9. 2016-01-1110.76
  10. > colnames(payh)="Close"
  11. > head(payh)
  12.            Close
  13. 2016-01-0411.33
  14. 2016-01-0511.40
  15. 2016-01-0611.53
  16. 2016-01-0710.94
  17. 2016-01-0811.12
  18. 2016-01-1110.76
 
第七步quantmod制图
  1. chartSeries(payh,name="000001.SZ HarryZhu CopyRight")#走势图
  1. addMACD()   #MACD曲线,不用自己计算
 
  1. addBBands()#布林带
 
quantmod包的主题
换种风格咯?
  1. chartSeries(payh,name=qtid,theme="white") 
  2. addMACD()   #MACD曲线,不用自己计算
  3. addBBands()#布林带
 
theme="white.mono"
 
theme="black.mono"
 
theme="beige"
 
theme="wsj"
 
恩 quantmod到底有多少个主题呢?
请看以下链接:
On Thu, Apr 28, 2011 at 2:22 AM, Costas Vorlow <costas.vorlow at gmail.com> wrote:
I am having trouble with selecting themes in quantmod
How many themes (predefined) exist?
Use the source! ;-)
  1. > chartTheme
  2. function (theme ="black",...)
  3. {
  4.     ctheme <- get(".chart.theme", as.environment("package:quantmod"))
  5.     attr(ctheme,".Environment")<- NULL
  6.     current.theme <- ctheme[[theme]]
  7.     ll <-list(...)
  8.     for(i in names(ll)){
  9.         current.theme[[i]]<- ll[[i]]
  10.     }
  11.     return(structure(current.theme,class="chart.theme"))
  12. }
  13. <environment:namespace:quantmod>
  14.  
  15. > names(quantmod:::.chart.theme)
  16.  
  17. [1]"white"      "white.mono""black"      "black.mono""beige"
  18. [6]"wsj"
三冒号我倒是见识了,三冒号后面还加个点,恩,好吧.
当然,我们可以自动以theme的,使用chartTheme函数即可,不过既然不是专业的设计人员,我们觉得配图配色上,自己搞起来肯定四不像,就没动手。
 
 
 

wind的R接口、况客RSDK学习,双冒号以及quantmod主题的更多相关文章

  1. mxnet:结合R与GPU加速深度学习(转)

    近年来,深度学习可谓是机器学习方向的明星概念,不同的模型分别在图像处理与自然语言处理等任务中取得了前所未有的好成绩.在实际的应用中,大家除了关心模型的准确度,还常常希望能比较快速地完成模型的训练.一个 ...

  2. mxnet:结合R与GPU加速深度学习

    转载于统计之都,http://cos.name/tag/dmlc/,作者陈天奇 ------------------------------------------------------------ ...

  3. No2_1.接口继承多态_Java学习笔记_接口

    接口.继承与多态 1.继承和多态是面向对象开发语言中的重要一个环节,使用得当,可以将整个程序的架构变得非常有弹性,减少代码冗余: 2.继承:复用定义好的类: 3.多态:可以动态调整对象的调用,降低对象 ...

  4. R用户的福音︱TensorFlow:TensorFlow的R接口

    ------------------------------------------------------------ Matt︱R语言调用深度学习架构系列引文 R语言︱H2o深度学习的一些R语言实 ...

  5. R的极客理想系列文章--转载

    http://blog.fens.me/series-r/ R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在 ...

  6. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  7. javascript - 浏览TOM大叔博客的学习笔记

    part1 ---------------------------------------------------------------------------------------------- ...

  8. js便签笔记(12)——浏览TOM大叔博客的学习笔记 part2

    1. 前言 昨天写了<js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1>,简单记录了几个问题.part1的重点还是在于最后那个循环创建函数的问题,也就是多个子函数公用一个闭 ...

  9. hexo博客yili主题个性化自定义教程(1) ——借鉴中学习,初认yili主题

    文章转载于:hexo博客yili主题个性化自定义教程(1) --借鉴中学习,初认yili主题 这个博客跌跌撞撞也弄了好多天了,由于Next主题不知道什么情况,被我玩坏了.所以换了一个主题. 大名鼎鼎的 ...

随机推荐

  1. 【小白的CFD之旅】08 CFD速成之道

    学了那么一个星期的流体力学,又看了一周的计算流体力学,小白对于如何应用CFD解决工程流体问题,依然是一无所知.眼看一个月的时间已经过半,小白有点着急起来.于是在一个阳光明媚的早晨,小白又找到了黄师姐. ...

  2. UVALive 4431 Fruit Weights --floyd,差分约束?

    题意: 给出一些关系用aX <= bY表示, 最后查询aX 和 bY的关系,是>=,==,<=,还是不能确定,还是出现了矛盾. 解法:对每一个关系其实都可以建一条X->Y的边, ...

  3. FTP协议

    1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...

  4. oracle异常(-)

    一.概述异常分成三大类:预定义异常.非预定义异常.自定义异常处理方法分为:直接抛出异常.内部块处理异常.游标处理异常 预定义异常:由PL/SQL定义的异常.由于它们已在standard包中预定义了,因 ...

  5. UVA 11859 Division Game[Nim游戏]

    题意:给定一个N*M的矩阵,每次可以选择同一行中的若干个数,把它们变成它们的质因子.问说先手的可否获胜. 同一行相当于1堆,数量就是所有数的质因子个数之和 #include <iostream& ...

  6. 简易的轮廓边生成(N和V dot点乘方式)(surface方式和vs ps 方式的分别实现)

    一.前面心情 1.公司我的架构发生变动,从技术中心到项目组了,但不管怎么样,该看的还要看,总会用到 二.实现 三.参考: http://blog.csdn.net/cubesky/article/de ...

  7. 微信接口-获取用户openid基本信息

    一.协助获取微信用户openid功能 https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri= ...

  8. Nginx负载均衡实践之一:基本实现

    由于现在的网站架构越来越大,基于互联网的用户也是日渐增长,所以传统的单机版服务器已经渐渐不能适应时代发展的需要.最近在和其他企业接触的过程中,发现对于互联网的经验尤为看重,所谓的互联网经验,其实就是指 ...

  9. QString, string, int, char* 之间相互转换

    这三种数据类型在实际运用中经常需要互相转换,那么这里小结下它们之间的转换方法: - Qstring & string Qt中封装的类十分强大,其成员函数数量之多比STD有过之而无不及,许多程序 ...

  10. 20145208 GDB调试汇编堆栈过程分析

    20145208 GDB调试汇编堆栈过程分析 测试代码 #include<stdio.h> short addend1 = 1; static int addend2 = 2; const ...