楼主: huiyujuanjuan
1248 1

[源码分享] 量化投资数据篇(2) [推广有奖]

  • 0关注
  • 6粉丝

副教授

36%

还不是VIP/贵宾

-

威望
0
论坛币
697 个
通用积分
331.9472
学术水平
19 点
热心指数
23 点
信用等级
10 点
经验
46761 点
帖子
503
精华
0
在线时间
1152 小时
注册时间
2015-2-2
最后登录
2024-3-14

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

3、获取通达信软件的股票数据

通达信软件有比较简单的历史复权数据获取方法,就是通过软件直接导出,据我所知,这是最简单且可靠性程度也较高的数据获取方式。但此处的重点不是介绍如何通过简单按键方式获取批量复权的股票数据,而是重点介绍如何获取通达信行业板块数据。

一般的股票投资者都知道,通达信软件是一般投资者看盘的必备软件之一,特别是对于分行业板块,概念板块行情,虽然其编制比较简单,但具有完备且独有的板块行情,因此具有十分重要的参考价值(顺便一提,方正证券的泉友通软件,基本上完全借鉴了通达信软件模式)。但是,通达信行业板块行情数据无法直接导出成txt等常见的板式(但有些版本好像又能导出),而只能是day格式,因此需要通过特别的手段,对day格式进行处理。

因此重要介绍通过通达信获取行业行情数据,并利用R语言转换成常见文档格式(csv或txt)的方法,主要分以下步骤:

(1)首先找到行业代码文件:tdx\T0002\hq_cache\ tdxzs.cfg,用记事本的方式打开,具体结果如下所示:

1.4.png


可以看出,这个文件其实包括了通达信软件板块指数模块中的行业板块、概念板块、风格和地区板块等所有的板块代码。如需具体了解如黑龙江后面880201|3||1|0|1等几个数据的含义,可进一步参考:http://blog.sina.com.cn/s/blog_404ee5f901010zw6.html。此处从略。

(2)通过盘后数据下载,选择相应的起止时间点(如2016年8月5日),下载所有沪深品种的日线数据。其对应的下载数据屏蔽截图如下所示:

1.5.png


则对应时间段的所有股票数据和行业行情数据都保存在:

'D://Program Files//new_tdx//vipdoc//sh//lday//'文件夹下,其部分结果截图为:

1.6.png


(3)把day格式数据转换为常见文档格式。.day格式的数据如果用常见的记事本打开,则结果显示为乱码,如果需要了解其里面的具体内容,其实可以用Binary Viewer软件打开,并选择不同的进制格式进行查看,看其结果与真实数据一致。R语言中,可以利用hexView工具包,对day数据进行简单处理,就可以得到转换成txt或csv等格式的行业板块等数据,并保存至当地文件夹。其R语言的代码如下所示:

##############################################################

#------------------------transformtdx industry data--------------------------

#1 transform tdx .daydata into txt/csv data.

#2 using packagehexView.

#

##############################################################

library(hexView)

tdx.industry<-read.csv('E://OneDrive//index//tdx.industry.txt',header=F,sep='|')

tdx.code<-tdx.industry[,2]

for(i in1:length(tdx.code)){

  file.dir<-paste0('D://ProgramFiles//new_tdx//vipdoc//sh//lday//','sh',tdx.code,'.day')

dayfile<-readRaw(file.dir,machine='hex',human='int',size=switch('int',int=4),endian='little')

  dayfile<-blockValue(dayfile)

  dayfile<-matrix(dayfile,byrow=T,ncol=8)

  dayfile<-dayfile[,c(1:5,7)]

colnames(dayfile)<-c('Time','Open','High','Low','Close','Volume')

turnover<-readRaw(file.dir,machine='hex',human='real',

                 size=switch('real',real=4),endian='little')

  turnover<-blockValue(turnover)

  turnover<-matrix(turnover,byrow=T,ncol=8)

  turnover<-turnover[,6]

  prices<-cbind(dayfile,turnover)

  prices[,2:5]<-prices[,2:5]/100

  save.dir<-paste0('E://datasets//compositeindex//',tdx.code,'.txt')

  write.csv(prices,file=save.dir,row.names=F)

}

同样也可以利用以上方法对.day格式的股票数据转换成csv/txt格式的股票数据,但这种方式由于可以直接导出,所以多此一举了。

循环处理后,得到的结果如下所示:

1.7.png


当然,需要指出的是,行业板块行情数据获取渠道还有另外两种方式。

一是有中证系数指数、上证系列指数、深证系列指数等。但这种方式有不足之处,具体而言,上证系列和深证系列的行业指数只针对各自的市场编制的指数,并不针对国内沪深所有市场;中证指数系列的行业指数能反映沪深A股市场中不同行业公司股票的整体表现,如300能源、300材料和300工业等,但分类并不全面,无法反映沪深股市所有各个行业的整体表现,且分类标准并不一致,如有300能源,500能源,1000能源,使行业行情无法统一进行对比,进一步行情数据的时间长度不一。所以一般情况下,投资者并不喜欢用这类行情数据。

二是新浪网页也有对应的行业板块数据。不过由于鄙人不知道行情数据对应的网址,所以就无法获取其行业板块、概念板块等指数走势数据(如有谁清楚,可告知!)。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:量化投资 transform Industry Library Program 方正证券 投资者 可靠性 通达信 价值

沙发
joesrd 发表于 2016-8-8 09:15:06 |只看作者 |坛友微信交流群
谢谢分享R源码

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 23:00