1.简介
AmazingQuant是一款基于event-driven的量化回测交易开源框架,下图是总体框架架构。
data_center
to_mongoDB 存放行情、财务等各种数据到MongoDB的存储模块
get_data 策略中从数据库中取数据的接口模块
trade_center
mossion_engine 包含下单任务(event_order)和风控(event_risk_management)两部分的engine,分别完成下单前的检查和风控
broker_engine 分为回测时的simulate的broker(主要是event_deal)撮合成交和连接实盘交易CTP、xSpeed等接口两部分
strategy_center
bar_engine 在回测或者交易模式下,用逐K线的方式执行每一根bar的交易逻辑,可在日线、分钟线、分笔下运行
analysis_center
analysis_engine 对回测形成的交易记录进行分析和可视化,净值、年化收益、alpha、beta、回撤等指标,brison、Fama等经典模型的实现
2.安装配置
MongoDB 3.4
建议使用shard,配置启动项示例
pymongo
python调用MongoDB
talib
技术指标计算库
anaconda
python 3.5 的版本,如果大于3.5的版本,ctp的接口暂时不能用,因为编译问题,后续可以解决
Linux Ubuntu
开发环境是ubuntu,当然也可以在windows下用,但是数据库的配置和ctp等交易接口需要重新做
安装AmazingQuant
pip install AmazingQuant 直接安装
3.策略编写
# -*- coding: utf-8 -*-__author__ = "gao"import numpy as npimport talib# import strategy基类from AmazingQuant.strategy_center.strategy import *# import 交易模块from AmazingQuant.trade_center.trade import Trade# 继承strategy基类class MaStrategy(StrategyBase): def initialize(self): # 设置运行模式,回测或者交易 self.run_mode = RunMode.BACKTESTING.value # 设置回测资金账号 self.account = ["test0