去年大盘持续走弱,就准备学习下量化,当时发现市面上有很多量化平台,聚宽,米匡,BIGQUANT等等,在网上查了大家使用感受,尝试了多个以后,目前在使用QMT。
QMT极速策略交易系统是一款专门为国内量化私募、个人高净值客户、活跃交易客户、量化爱好者研发的集行情显示、策略研究、交易执行和风控管理于一体的策略量化交易终端
QMT极速策略交易是由券商提供的、完整的实盘量化平台,不存在第三方外接红线
我自己也是3个月前开始接触QMT这个软件,就把自己使用的经验和碰到的问题都写下来了,供大家参考。
对于自己安装软件和操作界面比较陌生的朋友可以看下面这一篇。
左侧主菜单栏有5个选项,点击“交易”栏目,
选择左侧的“交易”栏目后,上方有不同交易标的资产的选项,包括常见的股票、期货、两融等。
面板的左下角是下单面板(橙色),点击股票代码,可以输入,同时上面的股票走势图也会变化。
如果选择普通交易可以指定价格,如果选择算法交易,那么可以对报价方式、单笔基准量、波动区间等多个参数分别设置。
然后就可以尝试运行量化策略的代码了。这篇我们尝试运行一小段代码,通过例子,逐行了解QMT的几个关键函数和回测逻辑。
在初始界面的中间,是“策略列表”板块,可以看到软件中内置了很多常见的策略(其中可以看到字母P和字母V,分别表示python和VBA语言)。我们可以挑一个Python策略,点击“编辑”按钮,会打开【策略编辑器】
(一)ContextInfo
我们这个例子中,我们直接引用了行情板块中当前展示的k线图,所以对ContextInfo的初始化不能省略但是只填pass。之后的例子中会进行更详细的设定。
“ContextInfo 是 Python 模型中的全局对象,其中封装了 benchmark,universe 等变量,也封装了get_history_data 等重要函数,是 init 与 handlebar 之间,以及各个 handlebar 之间进行信息传递的重要载体。用户也可以在其中封装自己想要定义的全局变量或函数,但注意不要与原有的重名。”
def init(ContextInfo):
#init初始设定函数,无设定则直接pass
pass
(二) handlebar
handlebar 是 Python 的核心执行函数。在 K 线图上运行时会根据主图的时间轴,每个时间点会进入相应的 handlebar 方法,可在 handlebar 中使用 ContextInfo.barpos 来获取当前的 bar 索引位置。
def handlebar(ContextInfo):
#handlebar 逐跟K线调用运行函数
#当前K线的对应的下标从0开始
index = ContextInfo.barpos
#当前K线对应的时间:毫秒
realtime = ContextInfo.get_bar_timetag(index)
#当前周期
period = ContextInfo.period
dividend_type = ContextInfo.dividend_type
#当前K线图收盘价
close = ContextInfo.get_market_data(['close'],period=period,dividend_type=dividend_type)
#在图上画出收盘价的曲线图
ContextInfo.paint('close',close,-1,0)
初步建立好一个量化交易策略之后,下面这篇文章介绍QMT如何进行量化回测。
第一步:在软件开始界面的中间,找到策略列表板块,选择进行回测的策略,点击【编辑】。
第二步:在【策略编辑器】的右下方,点击【回测参数】。这里可以设置很多回测的参数,包括起始时间、banchmark回测基准、交易成本(包括滑点等,成交量较低可以设置为0)。
第三步:点击代码上方的【回测】,可以看到下图的结果。
这个回测结果怎么看呢?分为4个板块。
左上方是交易对象的K线图,比如这里是沪深300指数,
右上方是策略运行的交易明细,包括买卖股票、成交时间、成交价格和交易量等,
左下方是策略收益的走势(白色线)和banchmark基准值(蓝色线)的对比,可以看到我们这个例子是从2023年一月开始交易,运行到2024年2月,
右下方可以对照目前回测的策略代码和参数设置。
如果你在使用软件或者代码运行过程中有任何问题,可以给我留言,我会一一解答。
也会持续更新量化交易软件QMT的操作介绍。下一篇是【如何用自己的代码进行实盘交易】
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ15101117,本站将立刻清除。