第一节:MindGo 量化交易平台
MindGo 量化交易平台是同花顺旗下的人工智能投资平台,拥有高质海量的金融数据,
零延迟的回测引擎,最接近真实市场环境的仿真交易平台,干净、完整的API 文档,同时支
持目前广泛使用的脚本语言——Python 语言,致力打造国内一流的专业在线量化交易平台,
帮助广大投资者和高校师生实现量化策略,开启AI 时代,让投资变得更简单!
MindGo 提供以下服务:
1.数据
MindGo 数据基于 2014 年至今完整的Level-2 数据,包括完整的停牌、复权数据,且会
在第二 日早晨更新。除此之外,MindGo 还提供上市公司财务数据、场外基金数据、行业指
数数据、股指期货数据等等。
2. 回测引擎
MindGo 提供了高效快捷的回测环境和简洁的API 文档,支持对沪深A 股、ETF 的日级
或分钟级回测,回测结果实时显示、快速响应、数据全面,方便用户随时检验和优化策略。
3.模拟交易
MindGo 提供实时的沪深A 股和 ETF 模拟交易工具,并支持分钟和日级运行,实时呈现
策略表现。为量化交易爱好者提供全面、及时、专业、个性的一站式服务。
4.研究平台
MindGo 提供IPython Notebook 研究平台,初学者可在研究平台上学习 Python 语言,专
业研究者可获取数据,进行研究,最终研究结果支持文件导出和策略应用。
5.量化交流社区
MindGo 提供线上交流社区,便于量化爱好者交流量化策略,学习量化知识,一起成长。
----------------------- Page 10-----------------------
第二节:MindGo API 介绍
一、回测引擎介绍
回测环境
MindGo 提供的回测引擎运行在Python 3.5 之上, 因此策略代码必须兼容Python3.5 ,整个
回测环境支持所有的Python 标准库和部分常用第三方库。
回测过程
1.您的策略必须在initilize 函数框架下实现:
A.initilize 为初始化函数,用于初始一些全局变量,在整个回测过程最开始执行一
次。
B.handle_data 为时间驱动函数,用于设置买卖条件等,每个回测时间频率 (每日/
分钟/tick )调用一次。
以下是一个简单的策略,每日开盘买入 100 股贵州茅台,让我们体验一下整个回
测过程 !
# 初始化账户
def initialize(account):
# 定义要交易的股票:贵州茅台
account.security = '600519.SH'
# 设置买卖条件,每个交易频率 (日/ 分钟/tick )调用一次
def handle_data(account,data):
# 每天开盘买入 100 股贵州茅台
order(account.security,100)
2. 完成策略编写后,选定回测开始日期和结束日期,选择初始资金、调仓频率(每日或每
分钟) 等参数, 点击"进行回测" ,即开始回测。
3. 回测引擎根据您选择的调仓频率调用 handle_data 函数,也就是执行该函数下的代
码。回测引擎会实时显示策略当前时间的数据,如收益、风险指标、持仓等信息。
----------------------- Page 11-----------------------
4. 回测引擎会根据您所使用的下单方式进行下单,并根据后续实际成交情况进行订单处
理;
----------------------- Page 12-----------------------
5.您可以在任何时候调用 log 函数来打印需要输出的日志;通过 record 函数输出自定义
图形。添加log.info 函数与 record 函数后的代码如下:
# 初始化账户
def initialize(account):
# 定义要交易的股票:贵州茅台
account.security = '600519.SH'
# 设置买卖条件,每个交易频率 (日/ 分钟/tick )调用一次
def handle_data(account,data):
# 每天开盘买入 100 股贵州茅台
order(account.security,100)
# 获取账户可用资金
money=account.cash
# 获取账户已用资金
used_money=account.capital_used*(-1)
#log.info() 函数打印信息
log.info(' 已使用资金'+str(used_money))
#record 函数进行 自定义画图,分别为可用资金与已用资金
record(money=money,used_money=used_money)
策略运行结果,回测结果页面上分别显示了可用资金和 已用资金曲线:
----------------------- Page 13-----------------------
运行时间
回测引擎通过以下方法对您的策略进行回测
1.开盘前(9:00)运行:
before_trading_start 函数
2. 盘中运行:
handle_data 函数
> 日回测(9:30:00)运行一次
> 分钟回测(9:30:00-11:30,13:00:00-15:00:00) ,每分钟运行一次
3.盘后(15:30)运行:
after_trading_end 函数
订单处理
对于你的策略在某个单位时间下的单,回测引擎会做如下处理:
1.按每日回测
A. 交易价格:
> 市价单:开盘价+滑点。
> 限价单:委托价+滑点。
B.最大成交量:
> 默认为下单个股当日总成交量的 25% 。
> 若下单量低于最大成交量,则按下单量成交;若下单量大于最大成交量,则按最大
成交量成交。
C.撮合方式:
> 市价单:开盘下单,一次性撮合,不成交或未成交部分即刻取消委托。若开盘价为
涨停价,则买入不成交;若开盘价为跌停价,则卖出不成交。
MindGo 量化交易平台是同花顺旗下的人工智能投资平台,拥有高质海量的金融数据,
零延迟的回测引擎,最接近真实市场环境的仿真交易平台,干净、完整的API 文档,同时支
持目前广泛使用的脚本语言——Python 语言,致力打造国内一流的专业在线量化交易平台,
帮助广大投资者和高校师生实现量化策略,开启AI 时代,让投资变得更简单!
MindGo 提供以下服务:
1.数据
MindGo 数据基于 2014 年至今完整的Level-2 数据,包括完整的停牌、复权数据,且会
在第二 日早晨更新。除此之外,MindGo 还提供上市公司财务数据、场外基金数据、行业指
数数据、股指期货数据等等。
2. 回测引擎
MindGo 提供了高效快捷的回测环境和简洁的API 文档,支持对沪深A 股、ETF 的日级
或分钟级回测,回测结果实时显示、快速响应、数据全面,方便用户随时检验和优化策略。
3.模拟交易
MindGo 提供实时的沪深A 股和 ETF 模拟交易工具,并支持分钟和日级运行,实时呈现
策略表现。为量化交易爱好者提供全面、及时、专业、个性的一站式服务。
4.研究平台
MindGo 提供IPython Notebook 研究平台,初学者可在研究平台上学习 Python 语言,专
业研究者可获取数据,进行研究,最终研究结果支持文件导出和策略应用。
5.量化交流社区
MindGo 提供线上交流社区,便于量化爱好者交流量化策略,学习量化知识,一起成长。
----------------------- Page 10-----------------------
第二节:MindGo API 介绍
一、回测引擎介绍
回测环境
MindGo 提供的回测引擎运行在Python 3.5 之上, 因此策略代码必须兼容Python3.5 ,整个
回测环境支持所有的Python 标准库和部分常用第三方库。
回测过程
1.您的策略必须在initilize 函数框架下实现:
A.initilize 为初始化函数,用于初始一些全局变量,在整个回测过程最开始执行一
次。
B.handle_data 为时间驱动函数,用于设置买卖条件等,每个回测时间频率 (每日/
分钟/tick )调用一次。
以下是一个简单的策略,每日开盘买入 100 股贵州茅台,让我们体验一下整个回
测过程 !
# 初始化账户
def initialize(account):
# 定义要交易的股票:贵州茅台
account.security = '600519.SH'
# 设置买卖条件,每个交易频率 (日/ 分钟/tick )调用一次
def handle_data(account,data):
# 每天开盘买入 100 股贵州茅台
order(account.security,100)
2. 完成策略编写后,选定回测开始日期和结束日期,选择初始资金、调仓频率(每日或每
分钟) 等参数, 点击"进行回测" ,即开始回测。
3. 回测引擎根据您选择的调仓频率调用 handle_data 函数,也就是执行该函数下的代
码。回测引擎会实时显示策略当前时间的数据,如收益、风险指标、持仓等信息。
----------------------- Page 11-----------------------
4. 回测引擎会根据您所使用的下单方式进行下单,并根据后续实际成交情况进行订单处
理;
----------------------- Page 12-----------------------
5.您可以在任何时候调用 log 函数来打印需要输出的日志;通过 record 函数输出自定义
图形。添加log.info 函数与 record 函数后的代码如下:
# 初始化账户
def initialize(account):
# 定义要交易的股票:贵州茅台
account.security = '600519.SH'
# 设置买卖条件,每个交易频率 (日/ 分钟/tick )调用一次
def handle_data(account,data):
# 每天开盘买入 100 股贵州茅台
order(account.security,100)
# 获取账户可用资金
money=account.cash
# 获取账户已用资金
used_money=account.capital_used*(-1)
#log.info() 函数打印信息
log.info(' 已使用资金'+str(used_money))
#record 函数进行 自定义画图,分别为可用资金与已用资金
record(money=money,used_money=used_money)
策略运行结果,回测结果页面上分别显示了可用资金和 已用资金曲线:
----------------------- Page 13-----------------------
运行时间
回测引擎通过以下方法对您的策略进行回测
1.开盘前(9:00)运行:
before_trading_start 函数
2. 盘中运行:
handle_data 函数
> 日回测(9:30:00)运行一次
> 分钟回测(9:30:00-11:30,13:00:00-15:00:00) ,每分钟运行一次
3.盘后(15:30)运行:
after_trading_end 函数
订单处理
对于你的策略在某个单位时间下的单,回测引擎会做如下处理:
1.按每日回测
A. 交易价格:
> 市价单:开盘价+滑点。
> 限价单:委托价+滑点。
B.最大成交量:
> 默认为下单个股当日总成交量的 25% 。
> 若下单量低于最大成交量,则按下单量成交;若下单量大于最大成交量,则按最大
成交量成交。
C.撮合方式:
> 市价单:开盘下单,一次性撮合,不成交或未成交部分即刻取消委托。若开盘价为
涨停价,则买入不成交;若开盘价为跌停价,则卖出不成交。