项目安装
EliteQuant_Matlab 是全球首个基于Matlab的回测和实盘交易平台。 它提供一致的回测及实时交易解决方案。它遵循现代设计模式,例如事件驱动,多线程并发式, 服务器/客户端架构和松散耦合的强大稳定的分布式系统。它遵循与其他EliteQuant产品线相同的结构和绩效评估值,这使得与使用其他语言的交易者分享变得更容易
不需要安装,直接下载代码并使用。
您需要将路径添加到Matlab中。假设它被下载到d:\ workspace \ elitequant_matlab中,在Matlab中运行以下命令
javaaddpath('D:\Workspace\EliteQuant_Matlab\source\other\jnacl-0.1.0.jar') javaaddpath('D:\Workspace\EliteQuant_Matlab\source\other\jeromq-0.4.3.jar') javaaddpath('D:\Workspace\EliteQuant_Matlab\source\EliteQuant\+yaml\external\snakeyaml-1.9.jar') addpath('D:\Workspace\EliteQuant_Matlab\source\EliteQuant')
当然,您可以将它们永久添加到你的Matlab搜索路径中,这样您不必在每次开启新的Matlab时手动添加它。但是这是可选的。
回测
配置 strategy 目录下的 config_backtest.yaml
- ticker: 为您感兴趣的股票期货等
- datasource: 历史数据来源
- hist_dir: 为本地历史数据目录
- output_dir: 回测结果输出目录
其中回测现有数据来源接口为
- Quandl
- 本地CSV
更多的数据源将在稍后添加。要运行回测示例,请在Matlab中导航到strategy文件夹,然后执行
mystrat = MovingAverageCrossStrategy({'AMZN'}); engine = BacktestEngine(mystrat); engine.run();
实盘
配置 server 目录下的 config.yaml
- 如果要使用盈透证券,请打开盈透证券交易平台(TWS),进入菜单File / Global Configuration / API / Settings,勾选“Enable ActiveX and Socket Client”,取消选中“Read-Only API”
- 在配置文件中,将帐户ID更改为您自己的; 盈透证券账户ID通常可以在TWS窗口的右上方找到。
- 如果您使用CTP,请相应地更改您的经纪账户信息和ctp地址。
- 分别为log_dir 和 data_dir创建文件夹。前者记录运行日志,而后者保存分时数据
- 运行eqserver.exe
最后,在Matlab中浏览到EliteQuant_Matlab目录,然后执行以下命令进入实盘
LiveEngine
盈透证券 是零售交易商中最受欢迎的经纪商。 Quantopian,Quantconnect等许多零售交易平台都是支持IB的。如果您没有IB账户,但想要试用,他们提供模拟账户edemo与密码demouser。只需下载TWS交易者工作站并使用此演示帐户登录。请注意,每次使用模拟账户登录交易平台时,账户ID都会发生变化,因此您必须相应地更改EliteQuant配置文件。
CTP 是中国期货市场的实际标准,包括商品期货和金融期货。他们还提供免费模拟账户SimNow。注册后,您将获得帐户,密码,brokerid,以及市场数据和交易经纪地址。将其替换EliteQuant配置文件相应位置。
开发环境
以下是我们正在使用的环境
- Windows 10
- Matlab 2017a
项目结构
回测框架
实盘框架
代码结构