重要概念

(1)Bar的概念 我们把单根 K 线称之为 Bar,每根 Bar 由 tick(分笔)组成。

分钟 Bar 示例 QMT 系统的模型是根据行情驱动,逐 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 这两个函数中自由地传递用户创建的各种 自定义数据。

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 秒)起至现在的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间 点已经存在的完整的可验证的数据。

交易函数运行机制

QMT 系统模型是根据行情驱动,逐 K 线运行的。即点击运行模型时,模型是从第 0 根 K 线开始运行到 最后一根 K 线(如想加快模型运行速度,可以策略编辑器 - 基本信息中设置快速计算,限制计算范围, 只计算最新的指定数量的 K 线范围),每根 K 线调用一次 Python 模型中的 handlebar(ContextInfo) 函数

在盘中,最后一根 K 线每变动一次,handlebar(ContextInfo) 函数被执行一次。这根 K 线的最后一个 tick 判定模型信号是否成立,如果模型信号成立,交易函数被调用,则在下一根 K 线的第一个 tick 发出 下单信号,生成下单任务

如上图,当盘中运行到最后一根 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 数据时发信号的问题。

QMT量化交易软件使用攻略(一)-相关重要概念相关推荐

  1. QMT量化交易软件使用攻略(四)-策略回测

    对某一策略编译成功后,点击回测,可以通过日志输出查看模型基于历史行情数据回测情况和表现. 在回测之前,需要设置好策略回测运行的主图品种和周期,以及相关的回测参数.回测主图和周期可以 在策略编辑器-基本 ...

  2. QMT量化交易软件使用攻略(二)-策略编写

    [策略编辑器]是迅投专门为模型开发者设计的,集成了模型列表.函数列表.函数帮助.模型基本信 息.参数设置.回测参数等多个部分,拥有代码高亮.自动补全等便捷功能于一体的便捷的模型编辑. 开发环境 编写 ...

  3. 【QMT】给QMT量化交易软件安装和调用第三方库(举例通达信pytdx,MyTT,含代码)

    给QMT量化交易软件安装和调用第三方库(举例通达信pytdx,MyTT,含代码) 一.安装QMT 二.给QMT安装python 三.给QMT的python环境安装第三方库 1.准备python虚拟环境 ...

  4. 老美优惠券获取攻略和相关产品用例分析

    本文翻译自BuzzFeed,作者是名女性编辑,所以里面有些取巧的购物方法,可以理解:) 1. 在购买之前,创建一个帐号,声明你的生日是在那一天(呃...),很多网站会给到你5%到20%的折扣. 2. ...

  5. 屏幕时间:管理与限制手机各APP使用时间——又名【限制儿童使用手机攻略】——相关主题【救救网瘾少年】

    背景 时间不知不觉间就从网瘾少年的指缝间溜走了,最后换来的还是无尽的空虚.在这些浪费的时间里,那些支离破碎的文字与音频.那些及时的奖励与快感并没有帮网瘾少年构建和照亮大脑中灰暗的区域.反而是那些极易形 ...

  6. 股票量化分析工具QTYX使用攻略系列——双底形态选股

    前言 自从股票量化分析工具QTYX新增双底形态选股功能以来,大家的反响一直很热烈.很多星球会员利用这个功能帮助自己抓到了大牛股. 确实,双底形态是由市场力量形成的,我们只需顺势而为即可,特别是大周期. ...

  7. 2010 模板下载 罗斯文_俄罗斯签证办理攻略

    申请去俄罗斯的人越来越多,所以办理签证的人也变得越来越多,对于初来乍到的人士,可能对于签证流程的办理并不是特别的熟悉.办理签证其实也有一定的攻略和方案,为了能够让大家更好的了解俄罗斯签证办理的相关流程 ...

  8. 17年三月计算机二级,2017年3月计算机二级考试攻略

    2017年3月计算机二级考试攻略 3月25日的计算机二级考试正朝我们匆匆赶来,报考的同学们都已进入了紧张的备考期.小编特意整理了这份计算机二级考试攻略,你值得拥有. MS Office高级应用 题型: ...

  9. 工业以太网交换机选机攻略

    工业以太网交换机是专门为满足灵活多变的工业应用需求而设计,提供一种高性价比工业以太网通讯解决方案.那么我们在选购工业交换机的时候该注意哪些问题呢?工业以太网交换机有哪些选购标准呢?接下来就跟随飞畅科技 ...

最新文章

  1. 【django轻量级框架】一个Github用户检索信息网站(解析和代码)
  2. 成功解决windows开机时,系统提示此windows副本不是正版
  3. oracle外部表kup-04040,【故障处理】19c PDB中创建外部表时,出现KUP-04040报错
  4. DotNet 网上相关资源
  5. 普通账户信息是SIEM的盲点
  6. Megcup 2017 决赛第一题 规则
  7. 免费录屏、最快截图、装X必备、看完工作学习效率直接翻倍
  8. 《面向机器智能的TensorFlow实践》一 2.8 测试TensorFlow、Jupyter Notebook及matplotlib...
  9. Ubuntu18.04图片信息查看器
  10. 远程桌面总是显示正在配置远程会话_Jump Desktop for mac (远程控制软件)
  11. 全球及中国紧急警报系统EAS行业竞争格局及市场前景预测分析报告2022-2028年
  12. mysql启动报sock_mysql启动错误:mysql.sock丢失
  13. Linux CPU超频设置
  14. 模块手机Project Ara的MDK(Module Developers Kit)模块开发套件
  15. python批量下载网页图片及列表
  16. 娃娃乐学拼音软件许可及服务协议
  17. 国内人才申领《上海市居住证》审核试行办法
  18. 怎么退出python
  19. 轻量级单片机命令行交互项目,全部开源
  20. Linux / Windows Subsystem for Linux (WSL) 安装 ADB (Android Debug Bridge,Android 调试桥)

热门文章

  1. mysql索引面试题
  2. MYSQL常见索引面试题及答案
  3. Ceph 的 Crush 算法原理(中文翻译)
  4. VC GDI+ 字体的特效
  5. 完成以下程序,并进行调试某班期末考试科目为数学、英语和计算机,有最多不超过30人参加考试。
  6. ssm+jsp计算机毕业设计保健品分销平台qq047(程序+LW+源码+远程部署)
  7. 《操作系统实验》模拟基本分页存储管理
  8. win11解决IE浏览器使用问题
  9. 用于运放的参考电压基准电路--1.24V、1.25V、2.5V
  10. 解决网站出现"百度提示您:该页面可能因heike侵入而存在安全风