iQuant 极速策略交易平台,以下简称 iQuant 平台,本文档主要介绍 iQuant 平台 Python API 的使用方法。内容较多,可使用 Ctrl + F 进行关键字搜索。
iQuant 平台与其他普通股票软件最大的不同点就是其提供历史数据下载、模型编辑、模型回测、模型交易、算法交易及交易风控等完整量化交易功能。通过 iQuant 平台,用户可以快速的将自己的转化为计算机代码,形成自己的交易策略,让计算机帮助用户实现策略的回测检验并实现无人值守自动化交易。
(相关资料图)
在量化策略编写语言的支持上,iQuant 平台目前支持 Python 。在后续的规划中,iQuant 平台将全面支持市面上主流的量化编程语言。
随着量化在国内的深入发展以及大量专业编程人员进入量化这个领域,市场上的量化投资者对 Python 的需求越来越大,iQuant 平台 的 Python API 就是为了满足这部分投资者而量身打造。iQuant 平台的 Python API 既可以高效使用 iQuant 平台底层的数据接口及交易接口,也可以方便地引入 Python 支持的第三方库,极大地便利了量化投资者的模型策略需求。
1. 创建策略
1.1. 策略示例
1.1.1. 一个简单的 Python 策略
简单的Python策略
上图展示了如何在 iQuant 平台上用 Python 写一个输出 hello world 的模型。图中的模型实现了一个 Python 模型 必须实现的两个接口:** init()** 与 handlebar()。输出窗口展示了这个模型的运行输出。平台首先调用 init() 方法输出了 hello init,随后在每根 K 线上调用一次 handlebar() ,输出一次 hello handlebar。
1.2. 运行机制
1.2.1. 重要概念
(1)Bar的概念
我们把单根 K 线称之为 Bar,每根 Bar 由 tick(分笔)组成。
分钟 Bar 示例
iQuant 平台的模型是根据行情驱动,逐 K 线运行,每根 K 线调用一次 Python 模型中的 handlebar(ContextInfo) 函数。
根据选择的运行周期不同,handlebar(ContextInfo) 函数的运行次数也不同。如选择在日线上运行策略,则 handlebar(ContextInfo) 函数每天被调用一次(盘中虽会每个 tick 调用一次,但只有最后一个 tick 才会判定交易函数是否被调用)。
(2)Init
init是一个Python模型的初始化方法。在模型加载的时候,平台会调用init方法,做一些必要的初始化,比如初始化股票池、初始化资金账号、初始化全局变量等。如果用户的模型无需做初始化,可以在方法体中写pass,但方法的定义必须存在,否则模型的运行会报错。
Init 初始化
(3)Handlebar
handlebar 是整个 Python 模型中的核心执行函数。当模型从数据层获取到运行所需要的数据之后,会对数据集上的每一根 bar,调用一次 handlebar 函数,处理当前这根 bar 上的数据。也就是说,用户模型的核心逻辑都是写在该函数中的,如获取数据,设置下单条件等。在 handlebar 中处理完数据后,用户可以通过 paint 方法将需要绘图输出的结果返回给界面。界面会将输出结果如实的展示出来。
(4)ContextInfo
ContextInfo 是整个 Python 框架中的一个核心对象。它包含了各种与 Python 底层框架交互的 API 方法,也是一个全局的上下文环境,可以在 init 以及 handlebar 这两个函数中自由地传递用户创建的各种自定义数据。
1.2.2. Python 策略运行机制
用户在界面上提交请求后,在最终看到结果前会经历两步:
(1)创建模型,初始化环境,发送数据请求;
(2)数据到达后,调用 Python 的 init 函数进行 Python 初始化,然后运行 handlebar 方法;
ContextInfo 是 Python 模型中的全局对象,其中封装了 benchmark,universe 等变量,也封装了 get_history_data 等重要函数,是 init 与 handlebar 之间,以及各个 handlebar 之间进行信息传递的重要载体。用户也可以在其中封装自己想要定义的全局变量或函数,但注意不要与原有的重名。
init 和 handlebar 是 Python 模型中最重要的方法,也是唯二由 C++ 直接调用的方法,所有的执行代码都尽量写在这两个方法中或由其中的函数调用。
init 是 Python 的初始化方法,负责初始化模型运行所需的初始变量,如对于基准 benchmark 和股票池 universe 的初始化。
handlebar 是 Python 的核心执行函数。在 K 线图上运行时会根据主图的时间轴,每个时间点会进入相应的 handlebar 方法,可在 handlebar 中使用 ContextInfo.barpos 来获取当前的 bar 索引位置。
获取当前 Bar 位置
*注:
索引:索引的作用相当于图书的目录,可以根据目录中的页码(索引号)快速找到所需的内容。
时间戳:时间戳是指格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。
1.2.3. Python 交易函数运行机制
iQuant 平台模型是根据行情驱动,逐 K 线运行的。即点击运行模型时,模型是从第 0 根 K 线开始运行到最后一根 K 线(如想加快模型运行速度,可以策略编辑器 - 基本信息中设置快速计算,限制计算范围,只计算最新的指定数量的 K 线范围),每根 K 线调用一次 Python 模型中的 handlebar(ContextInfo) 函数。
逐 K 线运行:从第 0 根 K 线一直调用 handlebar(ContextInfo) 运行到最后一根
在盘中,最后一根 K 线每变动一次,handlebar(ContextInfo) 函数被执行一次。这根 K 线的最后一个 tick 判定模型信号是否成立,如果模型信号成立,交易函数被调用,则在下一根 K 线的第一个 tick 发出下单信号,生成下单任务。
每个 tick 数据来时,最后一根 K 线会随着变动
一个模型判定:当收盘价 > 开盘价时产生模型信号触发下单
如上图,当盘中运行到最后一根 K 线的时候,每个 tick 数据来时都会判定一下这个条件是否成立,当不是这根 K 线的最后一个 tick,之前的所有的 tick 成立的产生的信号就是虚的信号。只有当这个 K 线确定时,产生的信号才是有效信号,才会触发下单。
模型运行在日 K 线周期及日 K 线以上周期时,因为是在下一根 K 线的第一个 tick(最新行情 tick )发出下单信号,而下一个 K 线就是第二日了。所以模型运行当日无法下单,除非:
(1)设置 passorder 函数中的 quickTrade 参数为 1 ,立即下单;
(2)使用 do_order(ContextInfo) 函数。
quickTrade 参数设置为 1 可实现最后一根 K 线没有走完生成的模型信号也发出下单信号。
do_order(ContextInfo) 函数被调用后会把上一根 K 线生成的模型信号立刻发出,且只发一次,解决交易函数必须是在下一根 K 线的第一个 tick 数据时发信号的问题。
关键词:
-
全球观点:iQuant-Python创建简单的 策略
iQuant极速策略交易平台,以下简称iQuant平台,本文档主要介绍iQuant平
-
俄媒:北约向乌提供先进武器“另有算计”|今日最新
00:15在以美国为首的北约向乌克兰提供的武器中,“海马斯”、M777榴弹
-
“协作机器人三杰”先后启动IPO,节卡股份能否摘得“第一股”?-当前信息
依靠销售驱动业绩的节卡股份,销售费用率近乎为同行的三倍。近三年,该
-
国家级经开区专场推介在南京举行 江宁经开区位列前十 全球快播
扬子晚报网6月29日讯(记者徐兢)近日,由商务部、江苏省政府主办,南
-
鼎捷软件6月29日盘中涨幅达5% 每日视讯
以下是鼎捷软件在北京时间6月29日13:00分盘口异动快照:6月29日,鼎捷
-
阿莱德:6月28日融资买入877.77万元,融资融券余额5972.44万元 天天微速讯
6月28日,阿莱德(301419)融资买入877 77万元,融资偿还1903 17万元,
-
事关2024年大选,麦卡锡语出惊人,特朗普的圈子炸了
事关2024年大选,麦卡锡语出惊人,特朗普的圈子炸了
-
领克01怎么样及江淮瑞风s4多少钱
定位于紧凑型suv的领克01怎么样呢?这款车是领克旗下的一款车,全系拥有
-
今日南财市场情绪指数为47.3,市场投资热度有所降低
今日南财市场情绪指数为47 3,较前一交易日49 0下跌,市场投资热度降低
-
套现超1600万!知名连锁品牌卖房求生:总部人去楼空,关闭所有门店!创始人:希望早日破产清算-环球即时看
欠债5700万元,关闭旗下所有零售门店、银行账户被冻结……如今,卖楼抵
-
国旗的故事和含义(国旗的故事主要内容)
1、1952年10月1日,在志愿军战俘营里,被俘的战士们为庆祝祖国生日,升
-
FF91 交付再“跳票”,贾跃亭的FF仍需融资3亿美元
在今年5月31日举办的FF91&FaradayFuture2 0发布会上,官方宣布其首辆量
-
生物医药板块震荡走高
生物医药板块震荡走高,华神科技(000790)涨停,誉衡药业(002437)、
-
明星演唱会能多宠粉?蔡徐坤和粉丝十指紧扣,鹿晗包车,千玺送礼|焦点资讯
大家都知道,蔡徐坤是如今华语歌坛的顶级歌手,他的一首《情人》,在《
-
“胡婆”卖瓜:上过外交部湖北全球推介活动晚宴的天兴洲西瓜,快来摘啊! 天天简讯
00:38武汉入梅后,胡翠平的心就一直悬着。她在天兴洲种了约380亩西瓜,
-
中外合作办学有什么弊端和好处_什么是光合效应
hello大家好,我是价值网小科来为大家解答以上问题,中外合作办学有什
-
关注:阳江鹅苗价格_阳江鹅
1、阳江鹅的外貌特征及繁殖性能:外貌特征:阳江鹅体型较小,全身羽毛
-
怎么快速把苹果手机照片传到电脑_怎样把iphone照片传到电脑
1、你好怎么把iphone照片传到电脑呢?这是很多苹果手机用户都很困惑的问
-
支持多孩家庭购房 广州出手了!多地出台公积金支持政策_世界短讯
近期,多地出台购房支持政策,一线城市广州也出手了。6月28日,广州发
-
环球快资讯丨中科微至(688211):6月28日北向资金增持3.13万股
6月28日北向资金增持3 13万股中科微至。近5个交易日中,获北向资金增持