一个 Python 策略如何在QMT上创建
发布时间:2025-3-13 16:09阅读:177
一个 Python 策略如何在QMT上创建
一个简单的 Python 策略

上图展示了如何在 QMT平台上用 Python 写一个输出 hello world 的模型。图中的模型实现了一个 Python 模型 必须实现 的两个接口:init() 与 handlebar() 。输出窗口展示了这个模型的运行输出。系统首先调用 init() 方法输出了 hello init,随后在每根 K 线上调用handlebar() ,输出一次 hello handlebar。
Python模型在QMT运行流程图
上图为QMT系统 Python 模型运行流程图。当用户在 Python 平台编写好自己的策略后,可以点击 【运行】按钮来运行脚本。界面层在向下层请求数据的过程中,会首先创建一个 Python 模型,这个模型关联当前界面运行的产品。模型创建完毕后,加载用户编写的 Python 脚本,并调用 init() 初始化函数。
模型运行所需的数据也在此时向下层发出请求。下层在接收到请求后,会向服务器请求行情数据,并组织好数据格式。Python 模型根据返回的数据,运行 handlebar() ,用户可以用 paint() 方法将希望显示的计算结果输出到界面上,界面会将输出结果展示出来。
Python 策略在QMT上运行机制
用户在界面上提交请求后,在最终看到结果前会经历两步:
(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 位置
::: tip
索引:索引的作用相当于图书的目录,可以根据目录中的页码(索引号)快速找到所需的内容。
时间戳:时间戳是指格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒(北京时间 1970 年 01 月 01 日 08 时 00 分 00 秒)起至现在的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间 点已经存在的完整的可验证的数据。
我们经过这样来看是不是很简单啊,直接可以学习并拿来使用了,你这边如果有需要可以联系我这边办理证券账户和QMT开通使用哦!
温馨提示:投资有风险,选择需谨慎。
-
中信证券现在可以买黄金吗?有人知道吗?
2025-11-17 09:46
-
一键查看《国泰海通君弘APP新手操作指南》
2025-11-17 09:46
-
小白必读的基金书单,掌握这10本收益翻倍!
2025-11-17 09:46


当前我在线

分享该文章
