《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 18185|回复: 220
收起左侧

[讨论] FQuantToolBox版本更新V1.2-基于MATLAB的量化数据回测工具箱 by faruto

    [复制链接]

签到天数: 12 天

[LV.3]偶尔看看II

发表于 2015-1-5 20:24:30 | 显示全部楼层 |阅读模式
本帖最后由 faruto 于 2015-5-24 20:43 编辑

FQuantToolBox在线帮助文档:
FQuantToolBoxHelpOnLine

《量化投资:以MATLAB为工具》书籍简介
http://www.matlabsky.com/thread-45267-1-1.html

历史版本:
FQuantToolBox版本更新V1.1-基于MATLAB的量化数据回测工具箱 by faruto
http://www.matlabsky.com/thread-45584-1-1.html
量化数据回测工具箱FQuantToolBox V1.0 by faruto
http://www.matlabsky.com/thread-45540-1-1.html

============================================
FQuantToolBox Mannual byLY_faruto
                               By LiYang(faruto)
Email:farutoliyang@foxmail.com
=================================
FQuantToolBox: A Data and Backtesting Quant Tool Box based on MATLAB by faruto.
Version:V1.2
LastModified 2015.01.03
=================================
History:
V1.2        2015.01.01
V1.1        2014.12.18
V1.0        2014.12.12
=================================
1.  写在前面的话

2015.01.01:首先祝大家2015年新年快乐,赶在新年之际更新了FQuantToolBox工具箱。另外插播一条“硬广”,我和志勇的新书《量化投资:以MATALB为工具》已经在各大电商全面开售,如果您是一个量化投资者、一个MATLAB爱好者,不妨看下该书。FQuantToolBox这个工具箱是我最近几个月放出来的,未来《量化投资:以MATLAB为工具》下个版本的更新中,我会将FQuantToolBox工具箱相关内容添加到书籍中,包括FQuantToolBox的使用详解,包括FQuantToolBox的源码讲解,方便大家进一步提升量化投资能力。

2014.12.18:FQuantToolBoxV1.0发布后得到网上朋友的支持和关注,得到大家对工具箱的一些反馈,非常感谢大家。有的朋友还没下载工具箱,先给我留言问是否收费,在这里统一告诉大家,完全不收费,以后也不会收费。

2.  V1.2更新说明

FQuantToolBoxV1.2主要更新为:

增加获取上海证券交易所和深圳证券交易所相关指数数据,包括指数代码和名称列表、指数从基期到最新日期的日线数据;
增加获取上市公司公告文件列表数据,以及保存相应文件至本地,基于此类数据可以开发event-driven类模型;
增加获取上市公司投资者关系信息(Investor Relations Info)列表数据,以及保存相应文件至本地,基于此类数据可以开发event-driven类模型;
数据批量保存函数中的函数读取方式更新为采用matfile函数实现(而非之前的load方式实现),提高数量批量保存效率。
增加获取百度高级搜索相关内容,可以任意指定个股相关关键词,获取搜索之后的相关词条的时间、来源、URL链接等内容,且可以指定搜索时间段;
增加获取新浪高级搜索相关内容,可以任意指定个股相关关键词,获取搜索之后的相关词条的时间、来源、URL链接等内容,且可以指定搜索时间段。


下面来介绍一下相关的函数和测试样例。

  (1)  获取上海证券交易所和深圳证券交易所相关指数代码和名称列表

函数名称:GetIndexList_Web函数作用:获取上海证券交易所和深圳证券交易所相关指数代码和名称列表函数句柄:[IndexList] = GetIndexList_Web函数说明:从相关网络上抓取相关数据。测试样例:  
  1. %% 获取指数代码列表

  2. [IndexList] = GetIndexList_Web;

  3. save('IndexList','IndexList');
复制代码

运行结果:运行后返回的IndexList相关指数代码和名称列表如下:



  (2)  获取上海证券交易所和深圳证券交易所相关指数日线数据
函数名称:GetIndexTSDay_Web
函数作用:获取上海证券交易所和深圳证券交易所相关指数日线数据
函数句柄:[Data] = GetIndexTSDay_Web(StockCode,BeginDate,EndDate )
函数说明:从相关网络上抓取相关数据。
测试样例:

  1. %% 获取指数数据

  2. StockCode = '000001';
  3. StockCode = '000300';

  4. BeginDate = '20140101';

  5. EndDate = datestr(today,'yyyy-mm-dd');

  6. [Data] = GetIndexTSDay_Web(StockCode,BeginDate,EndDate);
复制代码
运行结果:
运行后返回的Data为StockCode指定的指数的日线数据(抬头为日期、开、高、低、收、量、额)如下:


相应的批量数据获取和保存函数为
[SaveLog,ProbList,NewList] =SaveIndexTSDay(IndexList)
首次运行后就会在本地DataBase\Stock\Index_Day_mat保存全部上海证券交易所和深圳证券交易所相关指数日线数据,如下:



  (3)  获取上市公司公告文件列表数据并保存相应文件至本地
函数名称:GetStockNotice_Web
函数作用:获取上市公司公告文件列表
函数句柄:[NoticeDataCell] =GetStockNotice_Web(StockCode,BeginDate,EndDate)
函数说明:从相关网络上抓取相关数据。
测试样例:

  1. %% GetStockNotice_Web
  2. tic;
  3. StockCode = '600588';

  4. BeginDate = '20141001';

  5. EndDate = datestr(today,'yyyy-mm-dd');

  6. [NoticeDataCell] = GetStockNotice_Web(StockCode,BeginDate,EndDate);
复制代码

运行结果:
运行后返回的NoticeDataCell为StockCode指定的股票的公司公告文件列表如下:
保存的内容抬头为股票代码、日期时间、文件名字、公告类型、文件URL、文件大小


相应的批量数据获取和保存函数为
[FileListCell,SaveLog,ProbList,NewList] =SaveStockNotice(StockList)
首次运行后就会在本地DataBase\Stock\StockNotice_file\文件夹内保存全部A股的公司公告文件,每个股票单独一个文件夹,如下:


这里多说一点,基于上市公司公告数据,可做的东西还是蛮多的,主要用来开发事件驱动类策略,大体从两个方面:一方面根据公告的粗略分类和发布日期,进行简单的事件驱动类策略开发(某只股票发布某种定义下的“重要公告”后就持有N天,每T天进行组合调整);另一方面,如果想要做得更细致,由于已经保存了上市公司公告的全文,则可以进行上市公司公告全文的文本挖掘,进行将公告的分类进行细致划分,并对公告进行分词处理,进而开发精细化的基于上市公司公告的事件驱动类策略。

  (4)  获取上市公司投资者关系信息(InvestorRelations Info)列表数据并保存相应文件至本地

函数名称:GetStockInvestRInfo_Web

函数作用:获取上市公司投资者关系信息(Investor Relations Info)列表

函数句柄:[IRDataCell] =GetStockInvestRInfo_Web(StockCode,BeginDate,EndDate)

函数说明:从相关网络上抓取相关数据。

测试样例:
  1. tic;

  2. StockCode = '000001';

  3. BeginDate = '20101001';

  4. EndDate = datestr(today,'yyyy-mm-dd');

  5. [IRDataCell] = GetStockInvestRInfo_Web(StockCode,BeginDate,EndDate);
  6. toc;
复制代码
运行结果:
运行后返回的IRDataCell为StockCode指定的股票的公司投资者关系信息(Investor Relations Info)列表如下:
保存的内容抬头为股票代码、日期时间、文件名字、公告类型、文件URL、文件大小



相应的批量数据获取和保存函数为
[IRInfoFileListCell,SaveLog,ProbList,NewList]= SaveStockInvestorRelationsInfo(StockList)
首次运行后就会在本地DataBase\Stock\ StockInvestorRelationsInfo_file\文件夹内保存上市公司投资者关系信息(Investor Relations Info)文件,每个股票单独一个文件夹,如下:





同样的,基于上市公司投资者关系信息(Investor Relations Info)数据,与上市公司公告数据一样,可以用来研发事件驱动类策略,可做粗、可做细。

  (5)  获取百度高级搜索相关内容

函数名称:BaiduSearchAdvancedNews
函数作用:获取百度高级搜索相关内容,可以任意指定个股相关关键词,获取搜索之后的相关词条的时间、来源、URL链接等内容,且可以指定搜索时间段。
函数句柄:
[NewsDataCell]
=BaiduSearchAdvancedNews(StringIncludeAll,StringIncludeAny,BeginDate,EndDate)
函数说明:从相关网络上抓取相关数据。
测试样例:
  1. [code]
  2. StockCode = '600588';

  3. BeginDate = '20141226';

  4. EndDate = datestr(today,'yyyy-mm-dd');

  5. StringIncludeAny = [];
  6. [NewsDataCell]
  7. = BaiduSearchAdvancedNews(StockCode,StringIncludeAny,BeginDate,EndDate);
复制代码
运行结果:
运行后返回的NewsDataCell为StockCode指定的股票的百度全文搜索词条,内容如下:
保存的内容抬头为日期时间、Title、来源、URL



基于这部分数据,就可以开发舆情类策略,可以从两方面入手:
一方面,可以基于某一时间段的搜索量的总量和增量的统计,找到相应的热门和冷门股,进行相应策略的构建;
另一方面,如果想做得细致一些,由于保存了词条的URL,可以通过词条的URL获取搜索内容的全文内容,然后进行分词处理,给出正负面的打分,构建更加精细化的舆情策略。
事实上BaiduSearchAdvancedNews函数可以输入任意的关键词进行搜索,而不一定是股票代码,比如,搜索“习大大”相关的内容:
测试样例:

  1. %% BaiduSearchAdvancedNews Word Test
  2. StringIncludeAll = '习近平';

  3. BeginDate = '20141226';

  4. EndDate = datestr(today,'yyyy-mm-dd');

  5. StringIncludeAny = [];
  6. [NewsDataCell]
  7. = BaiduSearchAdvancedNews(StringIncludeAll,StringIncludeAny,BeginDate,EndDate);
复制代码


  (6)  获取新浪高级搜索相关内容

函数名称:SinaSearchAdvanced
函数作用:获取新浪高级搜索相关内容,可以任意指定个股相关关键词,获取搜索之后的相关词条的时间、来源、URL链接等内容,且可以指定搜索时间段。
函数句柄:
[NewsDataCell]
= SinaSearchAdvanced(StringIncludeAll,BeginDate,EndDate)
函数说明:从相关网络上抓取相关数据。
测试样例:

  1. %% SinaSearchAdvanced
  2. StringIncludeAll = '600588';

  3. BeginDate = '20141201';

  4. EndDate = datestr(today,'yyyy-mm-dd');

  5. [NewsDataCell] = SinaSearchAdvanced(StringIncludeAll,BeginDate,EndDate);
复制代码

运行结果:
运行后返回的NewsDataCell为StockCode指定的股票的百度全文搜索词条,内容如下:
保存的内容抬头为日期时间、Title、来源、URL



FQuantStudio微信公众号
FquantStudio微信公众号,是我近期开始维护的一个公众号,主要内容为量化投资、MATLAB应用,未来FQuantToolBox的版本更新也会在这个公众号发布,欢迎大家关注,可以微信上搜索“FQuantStudio”或扫描下面的二维码进行关注

FQuantToolBox下载地址

mannual:


百度网盘地址:

游客,如果您要查看本帖隐藏内容请回复





评分

参与人数 1威望 +5 贝壳 +5 贡献 +10 收起 理由
fantuanxiaot + 5 + 5 + 10 鼓励帮助他人,我们共同进步

查看全部评分

该用户从未签到

发表于 2016-5-31 18:51:52 | 显示全部楼层
大侠,向您报告一个bug!

对于X64的机子,由于安装JAVA时默认装到Program Files(x86),但是似乎您的程序是自动定位到Program Files,因此运行fGetFund.p时出现以下错误:
Error using cd
Cannot CD to C:\Program Files\Java\jdk1.8.0_45\bin (Name is nonexistent or not a directory).

Error in fGetFund/GetFundHolder (line 308)

期待指教,谢谢!
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

发表于 2015-6-17 13:20:38 | 显示全部楼层
李洋老师,我想问下所有股票的前复权数据是怎么处理的,是 % AdjFlag = 0;% AdjFlag 0:除权时序数据 1:前复权时序数据 2:后复权时序数据 这里直接选AdjFlag=1 还是按照[StockDataXRD, factor] = CalculateStockXRD(StockData, XRD_Data, AdjFlag);这个处理,最终前复权的数据是储存在哪里呢
回复 支持 反对

使用道具 举报

签到天数: 12 天

[LV.3]偶尔看看II

 楼主| 发表于 2015-6-17 15:02:54 | 显示全部楼层
smith666888 发表于 2015-6-17 13:20
李洋老师,我想问下所有股票的前复权数据是怎么处理的,是 % AdjFlag = 0;% AdjFlag 0:除权时序数据 1:前复 ...

工具箱里面的帮助文档 有说明啊


FQuantToolBox\DataBase\Stock\Day_ForwardAdj_mat
回复 支持 反对

使用道具 举报

签到天数: 80 天

[LV.6]常住居民II

发表于 2015-1-5 21:10:08 | 显示全部楼层
哈哈哈 抢到了沙发
回复 支持 反对

使用道具 举报

签到天数: 80 天

[LV.6]常住居民II

发表于 2015-1-5 21:10:54 | 显示全部楼层
回复 支持 反对

使用道具 举报

签到天数: 4 天

[LV.2]偶尔看看I

发表于 2015-1-6 21:24:10 | 显示全部楼层
1.0没有下载
结果作者就更新了
哈哈
回复 支持 反对

使用道具 举报

签到天数: 12 天

[LV.3]偶尔看看II

 楼主| 发表于 2015-1-6 21:59:16 | 显示全部楼层
idiologo 发表于 2015-1-6 21:24
1.0没有下载
结果作者就更新了
哈哈

评分

参与人数 1贝壳 +8 收起 理由
fantuanxiaot + 8

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-1-11 00:12:05 | 显示全部楼层
dddddddddddddddddd
回复 支持 反对

使用道具 举报

签到天数: 37 天

[LV.5]常住居民I

发表于 2015-1-12 17:03:48 | 显示全部楼层
napoleonbb,如果您要查看本帖隐藏内容请回复
回复 支持 反对

使用道具 举报

签到天数: 12 天

[LV.3]偶尔看看II

 楼主| 发表于 2015-1-14 12:48:35 | 显示全部楼层
napoleonbb 发表于 2015-1-12 17:03
napoleonbb,如果您要查看本帖隐藏内容请回复

??

评分

参与人数 1贝壳 +8 收起 理由
fantuanxiaot + 8

查看全部评分

回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2015-1-20 17:08:52 | 显示全部楼层
顶,这样的干货必须顶

评分

参与人数 1贝壳 +1 贡献 +6 收起 理由
fantuanxiaot + 1 + 6

查看全部评分

回复 支持 反对

使用道具 举报

签到天数: 12 天

[LV.3]偶尔看看II

 楼主| 发表于 2015-1-20 18:08:01 | 显示全部楼层
zoumingwang2004 发表于 2015-1-20 17:08
顶,这样的干货必须顶

非常感谢支持。

评分

参与人数 1贝壳 +8 收起 理由
fantuanxiaot + 8

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 陕ICP备08102094号  

GMT+8, 2017-8-22 13:14 , Processed in 1.120574 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表