第二章:量化策略入门

本文详细介绍了MindGo量化交易平台,包括其提供的数据服务、回测引擎、模拟交易、研究平台和量化交流社区。MindGo基于Python,提供完整的API文档,支持沪深A股和ETF的回测,以及实时模拟交易。文章还讲解了回测过程、初始化函数、handle_data函数的使用,以及如何利用history函数获取历史数据。此外,文中还展示了如何编写简单的量化策略,例如基于5日和20日均线的买卖策略,并指导用户如何进行回测和实盘模拟交易。
摘要由CSDN通过智能技术生成
第一节: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.撮合方式: 


 > 市价单:开盘下单,一次性撮合,不成交或未成交部分即刻取消委托。若开盘价为 


涨停价,则买入不成交;若开盘价为跌停价,则卖出不成交。 
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值