目录
极智量化介绍.............................................................................................................................................. 1
极智量化是什么 .................................................................................................................................... 1
产品特点 .................................................................................................................................................. 1
系统架构 .................................................................................................................................................. 1
Licence ...................................................................................................................................................... 2
十分钟教程 .................................................................................................................................................. 2
1. 安装...................................................................................................................................................... 2
2. 订阅并使用 K 线数据 ..................................................................................................................... 2
3. K 线数据展示 ..................................................................................................................................... 3
4. 触发类型 ............................................................................................................................................ 4
5. 策略触发的上下文环境 ................................................................................................................. 5
6. 策略交易 ............................................................................................................................................ 6
7. 用户参数 ............................................................................................................................................ 6
8. 持仓同步 ............................................................................................................................................ 8
9. 策略运行 ............................................................................................................................................ 8
10. 测试报告 ........................................................................................................................................ 10
11. 编写自己的策略 .......................................................................................................................... 10
API 文档 ...................................................................................................................................................... 14
API 函数说明 ........................................................................................................................................ 14
标准库说明.......................................................................................................................................... 119
第三方库说明 ..................................................................................................................................... 119
常见问题 ................................................................................................................................................... 120
1. 关于极智量化 ............................................................................................................................... 120
2. 极智量化使用 ............................................................................................................................... 120
3. 策略运行 ........................................................................................................................................ 124
4. 运行设置说明: ........................................................................................................................... 127
5. 回测.................................................................................................................................................. 131
6. 其他常见问题 ............................................................................................................................... 139
示例策略 ................................................................................................................................................... 145
基本使用 .............................................................................................................................................. 145
策略交易 .............................................................................................................................................. 166
参与开源项目.......................................................................................................................................... 194
如何贡献代码 ..................................................................................................................................... 194
分支管理 .............................................................................................................................................. 194
Bugs ....................................................................................................................................................... 195
流程 ....................................................................................................................................................... 195
极智量化介绍
极智量化是什么
极智量化终端是基于 python 语言开发并在 windows 平台下运行的终端程序,具备自由开
发、海量数据、安全保密等特性。本产品为投资者提供了包括历史数据-实时数据-开发调试
-策略回测-模拟交易-实盘交易-运行监控-收益统计-风险管理的全套解决方案。
产品特点
⚫ 产品由 python 开发,代码开源,支持自由开发、自由扩展;
⚫ 用户策略开发由 python 实现,易上手,减少用户在编程语言学习上的精力投入;
⚫ 提供海量数据,数据覆盖日线、分钟线、秒线、tick 类型,品种支持期货、期权、现货、
跨期套利、品种套利、外汇、证券。
⚫ 支持获取历史行情,即时行情;
⚫ 每个运行的策略都是一个独立的进程,单策略运行异常不影响其他策略;
⚫ 同一策略支持多周期多合约数据同时触发;
⚫ 兼容 9.2 程序化、TB 的函数使用方法;
⚫ 策略服务本地化, 研究成果保密;
⚫ 可以进行策略编写、调试与回测,生成投资分析报告;
⚫ 支持内外盘期货期权交易,支持多交易后台
系统架构
极智量化系统架构图如下:
极星 9.5: 由 C++实现,作为下单通道、数据通道和策略指标展示界面,连接行情云及会
员交易服务器
极智量化:由 python 实现,提供策略编写和回测、运行监控以及回测报告展示。所有策略
逻辑都在极星量化端实现
Licence
极智量化终端在 Apache License2.0 协议下提供,使用者可在遵循此协议的前提下自由使用
本软件。
十分钟教程
本部分将指导用户如何开始快速开始使用极智量化,这里列出了从安装到编写策略的方
法。
1. 安装
极智量化终端目前支持在 win7、win8、win8.1、win10 等操作系统上运行,需预先安装
python3.7 环境及一些 python 的第三方安装包。为了减少用户在使用极智量化前在配置运
行环境上花费大量的精力,我们提供了一个打包好的安装包供用户下载和安装。该安装包
会自动完成安装极智量化产品和配置极智量化运行所需要的外部 python 环境,运行极智量
化对系统的要求如下:
⚫ Windows7 及以上版本
⚫ 屏幕分辨率最低支持 1024*768
⚫ 内存 2G 及以上
安装步骤如下:
⚫ 下载极星量化安装包,下载完成后双击 exe 程序进行安装;
⚫ 安装过程持续 5-10 分钟,请勿关闭安装窗口,如遇到杀毒软件,请选择“允许所有操
作”;
⚫ 安装完成后可,后续版本更新可通过运行安装路径下的 equant/update.bat 手动更新
运行
2. 订阅并使用 K 线数据
要使用某合约的 K 线数据,首先需要订阅该合约的数据,通过调用 SetBarInterval()函数可
以很方便的订阅指定合约的 K 线数据,这里以苹果主连合约为例,订阅苹果主连合约 1 分
钟历史数据 500 根:
SetBarInterval("ZCE|Z|AP|MAIN", "M", 1, 500)
订阅合约 K 线数据之后,就可以在策略中通过调用 Open()、Close()、High()、Low()获取合
约的高开低收历史数据或通过 HisData()获取各种历史数据数组。
# 输出苹果主连合约 1 分钟 K 线的最新收盘价
LogInfo("最后一根 K 线的收盘价: ", Close("ZCE|Z|AP|MAIN", "M", 1)[-1])
也可以多次调用 SetBarInterval()函数订阅不同合约、不同周期的数据。极智量化将把用户
第一次通过 SetBarInterval()函数订阅的合约作为基准合约。基准合约的概念请参考常见问
题中关于基准合约的解释。
到目前为止,你已经订阅了 K 线数据并能通过 API 接口查询所订阅的 K 线数据。下面介绍
如何显示订阅的 K 线数据。
3. K 线数据展示
若想要你订阅的 K 线数据在图形界面上显示,需要在极星量化客户端中量化选项卡上插入
量化模块:
当运行策略后,在该选项卡上会展示订阅的 K 线信息。
在该界面上鼠标右键选择“选择合约”会列出现在运行的策略 id,通过选择对应的策略 id 可
以选择展示的策略 K 线,如下图所示:
该页面还提供插入窗口以支持多图标展示功能,通过在该界面上插入窗口以实现同时展示
多个策略运行的 K 线和指标。如下图所示展示了四个策略的运行 K 线和指标等信息:
4. 触发类型
极智量化提供了五种触发方式供用户选择:
⚫ K 线触发: 由 K 线数据触发策略,运行策略的 handle_data()函数。
⚫ 即时行情触发:订阅的合约的即时行情更新时会触发策略,运行策略的 handle_data()
函数
⚫ 交易数据触发:订单的状态发生改变时会触发策略,运行策略的 handle_data()函数。
这是一种常见的基于事件的触发机制,用户选择了该触发方式后,每当用户的订单状
态发生改变,就会执行策略的 handle_data()函数
⚫ 每隔固定时间触发:每隔固定的时间间隔会触发策略,运行策略的 handle_data()函数
⚫ 指定时刻触发:在用户指定的时刻会触发策略,运行策略的 handle_data()函数
每一个用户关心的数据变化时,都会根据用户设置的触发类型触发策略,调用策略的
handle_data 函数。以上触发类型可以任意组合,可以订阅一种触发类型,也可以同时订阅
多种触发类型:
SetTriggerType(1)
SetTriggerType(2)
以上调用了两次 SetTriggerType()函数,设置即时行情和交易数据触发两种触发方式触发策
略。也可以通过在运行设置界面上设置触发方式:
注意:实盘运行时且触发方式为 K 线触发时,若发单方式选择“K 线稳定后发单”,则策略
会根据用户订阅的 K 线频率等到 K 线稳定后才会被触发,如订阅的 1 分钟苹果主连数据,
则策略会在 1 分钟数据完成时才会被触发;若发单方式选择“实时发单”,则策略会把每个
Tick 当做 K 线被触发。
5. 策略触发的上下文环境
策略触发的上下文环境包含策略被触发时的触发方式的信息,策略的上下文环境包含在策
略的入口函数(入口函数在编写自己的策略处会介绍)的 context 参数中,包含:
⚫
context.strategyStatus(): 策略状态 (回测阶段、实时阶段)
context.triggerType(): 触发类型 (即时行情、交易数据、定时、指定时刻、K 线触发)
context.contractNo(): 触发合约
context.kLineType(): 触发的 K 线类型(分笔、秒线、分钟、日线)
context.kLineSlice(): 触发的 K 线周期
context.tradeDate(): 触发的交易日
context.dateTimeStamp(): 触发的时间戳
context.triggerData(): 触发类型对应的数据 (K 线 或 即时行情 或 定单)
⚫
⚫
⚫
⚫
⚫
⚫
⚫
这些函数可以更好的帮助用户掌握策略的运行信息。context 函数的具体用法可以参考示例
策略的"策略的上下文环境"策略。其中 context.triggerData()函数的返回值会因不同的触发
方式返回结果也不同,其中不同触发方式返回的字典结构的键值含义可以在 API 中的
context 函数部分的 triggerData 函数说明部分查看。
6. 策略交易
有两组函数可以用于发送委托单。第一组包含:
⚫ Buy:产生一个多头建仓操作
⚫ BuyToCover:产生一个空头平仓操作
⚫ Sell:产生一个多头平仓操作
⚫ SellShort: 产生一个空头建仓操作
第二组包含:
⚫ A_SendOrder:针对指定的账户、商品发送委托单
⚫ A_ModifyOrder: 发送改单指令
⚫ A_DeleteOrder:针对指定的账户、商品发送撤单指令
⚫ DeleteAllOrders:批量撤单
两组交易函数都既可以用在历史回测阶段也可以用在实盘交易阶段。第一组组下单函数的
可选参数较少,表明用户可控制的下单参数较少。第二组交易函数可选参数更多,表明第
二组函数可以为用户提供更智能、更精细化的下单控制。
要进行实盘交易,需要调用 SetActual()函数,设置策略可在实盘阶段运行。
Buy(1, Close()[-1], contractNo="ZCE|Z|AP|MAIN")
该下单函数会以当前 Bar 的收盘价买入一手苹果主连合约。在历史回测阶段,该下单函数
会向历史回测引擎发送一笔委托单并立即成交,在实盘交易阶段,该函数会向交易后台发
送一笔委托单。
A_SendOrder(Enum_Buy(), Enum_Entry(), 1, Close()[-1], contractNo="ZCE|Z|AP|MAIN",
userNo="Test")
该下单函数会针对指定的账户 Test,以苹果主连合约的最新收盘价买入一手该合约,发送
成功该函数会返回 0 和订单编号,发送失败会返回失败信息。要针对 Test 账户下单,要确
保在客户端上登录 Test 账户。
要进行撤单操作,使用 A_DeleteOrder()函数:
A_DeleteOrder(id) # 撤订单号为 id 的订单
注意:在使用交易函数对某合约下单前,必须要用 SetBarInterval()函数订阅该合约的数
据。
7. 用户参数
极智量化提供了定义用户参数的方法供用户使用,用户参数可以帮助用户在完成策略逻辑
的开发后,不需要修改程序,只需要通过在界面上修改某些关键参数的值即可完成用新修
改的参数重新运行策略,避免用户频繁修改策略代码。
用户参数的定义格式如下:
g_params['param1'] = 1
g_params['param2'] = 2
这里定义了两个用户参数 param1 和 param2,定义用户参数的形式必须严格按照上述格式
定义,否则会解析用户参数失败。解析的用户参数会在量化终端的运行设置界面中显示。