同步操作将从 yutiansut/QUANTAXIS 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
[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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。