logo资料库

极智量化(Python语言)帮助文档.pdf

第1页 / 共197页
第2页 / 共197页
第3页 / 共197页
第4页 / 共197页
第5页 / 共197页
第6页 / 共197页
第7页 / 共197页
第8页 / 共197页
资料共197页,剩余部分请下载后查看
目录 极智量化介绍.............................................................................................................................................. 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,定义用户参数的形式必须严格按照上述格式 定义,否则会解析用户参数失败。解析的用户参数会在量化终端的运行设置界面中显示。
分享到:
收藏