This action will force synchronization from yutiansut/QUANTAXIS, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
[Contact]:QQ 279336410
QUANTAXIS 致力于快速策略测试,轻量化实盘部署和交互式数据分析的三者有机统一.通过有机结合MATLAB,MYSQL,Python,Javascript,NODEJS和Wind,实现一套完整的自动化量化平台.
+---++---++---++---++---++---++---++---++---+
+---++---++---++---++---++---++---++---++---+
=========================
QUANTAXIS 使用python进行数据挖掘和自然语言处理,使用matlab进行快速回测,mysql作为数据中心,nodejs建站,使用javascript作为前端交互式展示 核心组件均可独立调用
SYSTEM REQUIREMENTS
====================
MATLAB 2014a + [best recommends]:MATLAB R2015b,R2016a
(如果使用的是2015b以下版本 将isopen语句全部替换成isconnection语句)
NODEJS 4.4 + [best recommends]:NODEJS V6.9.2
Python 2.7.x
===
Wind Personal API V2.0.0+
Scrapy
Pheantomjs
JAVASCRIPT JQUERY V1.4.4+
===
MYSQL 5.6 + [best recommends]:MYSQL 5.7
MongoDB
Redis
Pymonogo
Matlab-Mongodb-Connecter
JDBC CONNECTOR 5.1.7bin +
===
快速搭建一个QUANTAXIS实例(todo list: shell语言自动部署)
win+R--cmd/powershell
cd D:
mkdir quantaxis
cd quantaxis
git clone https://github.com/yutiansut/quantaxis
····waiting····
cd quantaxis (if powershell)
Copy-Item ('D:\QUANTAXIS\QUANTAXIS\Auxiliary\JDBC\mysql-connector-java-5.1.7-bin.jar') ('C:\Program Files\MATLAB\R2016a\java\jar\toolbox')
通过V2.0,V3.0和V3.2.0 3个版本的升级以后,QUANTAXIS逐步发展成一个代码模块化和数据交互可视化的量化工具系统。
QUANTAXIS致力于代码的功能分离和生命周期延长。在quantaxis中,所有的代码都被分成了不同的功能模块,通过类包(class package)的从属调用,来定义不同的功能块。 类的模板与继承如下
类 TESTQUANTAXIS 的属性:
w
FET
MES
ID
ING
MYSQL
类 TESTQUANTAXIS 的事件:
DFwindhistory
QAMessage
ObjectBeingDestroyed
mysqlexec
ans =
'w % Inherited from DataFetch.Methods.DFWind'
'FET % Inherited from DataFetch.Methods.Core.DFCore'
'MES % Inherited from Message.QMMes'
'ID % Inherited from Message.QMMes'
'ING % Inherited from DataIntegration.DINodeJS'
'MYSQL % Inherited from DataStorage.DSMysql'
+DataStorage
++DSMysql.m 首先采用母目录的两个英文大写缩写 如DataStorage--DS,再加上本身代码名称。
DSMysqlInit();
DSMysqlCreateTable();
对于类模块的调用,我们需要首先编辑类模块
>QAClassPackage.m
classdef QAClassPackage < DataFetch.DFWind & DataStorage.DSMysql & FreeMarkets.MultiDealer.FreeMarkets & Strategy.STBase
end
% 在一个classpackage中写好从属类,然后让quantaxis映射过去
>QUANTAXIS.m
classdef QUANTAXIS < QAClassPackage
end
当我们需要什么功能的时候,就调用什么功能模块即可。
虽然matlab中也能够画图,如plot(); histfit();等等,但是图片不够美观,且不能交互式的动态展示,于是我们将
cd quantaxis
node datacenter/bin/www.js
打开浏览器 默认端口是3030
DataCenter/mysql --- 数据库组件 --conn.js 数据库连接函数 --sqlmapping.js 数据库脚本 --sqlexec.js 数据库执行
DataCenter/routes --- 路由跳转组件 --index.js 主路由 data.js user.js 都可以在DataCenter/app.js中重新定义
DataCenter/views --jade页面文件 DataCenter/public --资源文件 css样表,javascript,图片等等
传送门--关于Data Fetch 类
[DataFetch]
DFMain.m (类包函数,同时兼具初始化的任务)[+Methods]工具函数
DFSina.m (新浪接口)
DFTushare.m (Python tushare接口)
DFWind.m (Wind 接口)
DFYahoo.m (Yahoo 接口)[+Core]
DFCore.m (核心包函数,指定该类的属性 FET 以及消息响应控制 MES族)
classdef QAClassPackage< DataFetch.DFMain
end
classdef QUANTAXIS < QAClassPackage
end
所有被获取到的数据都在QA.FET族中
如果从wind获取数据,数据在QA.FET.Data中
具体参见 关于Data Fetch 类
传送门--关于DataStorage 类
我们在考虑和比较了各种数据存储的方便性易用度以后,选择了使用MySQL作为QUANTAXIS的数据库。 如果需要,也可以自行开发SQLSERVER, MongoDB, db2, Oracle等等。
QA.Fetch
数据获取
数据更新
Attention 1.将quantaxis/auxiliary/JDBC中的jar文件复制到 .\MATLAB\R2015a\java\jar\toolbox 2.打开C:\Program Files\MATLAB\MATLAB Production Server\R2015a\toolbox\local下的classpath.txt文件,在最末加入 $matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar
如果不添加JDBC数据库,matlab会报错: “未定义与 'struct' 类型的输入参数相对应的函数 'fetch'。
QUANTAXIS提供了一种快速的回测方式,通过简单的价格判断来形成对于策略报价的成交判断。 回测后的数据会自动以策略的形式存入mysql
ROC曲线分析 盈利分析
将matlab转化为JSON
数据展示,用户策略等数据存在MYSQL数据库中, 使用felixge/node-mysql的 sql 接口进行传值与数据交互
在程序中,我们设置了监听及系统日志,如果需要查看记录的消息,可以点击当前类下的 MES类 在MES.History中,你可以看到记录的消息日志
如果需要另外响应消息,请参见3.5.2的APIS
# 首先加入MES类包
classdef QA < Message.QMMes
end
QA.MES.Str='';
notify(QA,'QAMessage')
1.0版本使用的主要是新浪网的数据。
1.5版本是在了解了对象化编程OOP以后对于平台做的改进
2.0版本主要是对于数据源进行了更换,并重新写了数据库连接和调用函数。从2.0起,quantaxis使用wind服务商提供的量化交易数据并选择mysql作为数据存储方式。
2.5版本则主要增加了交易内核 QUANTCORE 1.0 QC1.0还是一个静态的交易系统,成交的判断方式是以策略报价和历史成交价区间的比较进行判定。
3.0版本将matlab的及时数据以json格式保存到状态空间或者mysql中,使用ajax技术对于mysql数据进行抽取,使用dc.js等可视化javascript将数据展示在页面上,形成交互式的数据可视化方案
3.2 模块化编程 将class重新改包,定义功能化模块,方便调用并增加生命周期
主函数 主要是一个量化平台,负责策略实现和数据更新 类似的平台 如python下的easytrader
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。