如何优雅地调教QMT量化平台编写量化策略(使用notepad++、pycharm、vscode等外部IDE编写量化交易代码)

  • 前言
  • 一、先搞清楚QMT的安装目录
  • 二、QMT调教步骤
    • 1.QMT里新建量化策略(只新建,不修改)
    • 2.IDE编辑器修改代码(只修改,不运行)
    • 3.QMT里运行量化策略(只运行,不修改)
  • 总结
    • 拓展:使用pycharm编辑策略
  • 后记
    • mpython的秘密

前言

很多人开通了迅投QMT量化平台,可是进入编辑器界面,写python代码,那种感觉如同回到了原始时代,连调试代码最常用到行、块注释这么简单的操作都能把人整疯。想让迅投QMT即刻修改编辑器,一时半会儿也不现实。那么有没有一种方法?可以使用外部的编辑器编写,在迅投QMT里运行,不也鱼与熊掌可兼得了吗?

经过笔者孜孜探索,还真找到了一个方法,其实也很简单。就是坑有几个,不过我都填上了。


提示:以下是本篇文章正文内容,其中代码为QMT默认自动生成,这里拿来仅作演示,不可用于实盘。

一、先搞清楚QMT的安装目录

假设我的QMT安装在 D:\gszqqmt\,打开这个目录,下面3个目录对我们python代码书写比较重要。

  1. bin.x64 :这个我们很熟悉,她是我们安装python环境的地方,其下的
    D:\gszqqmt\bin.x64\Lib目录安装了自带的各种包,如果我们需要安装第三方包,则安装在D:\gszqqmt\bin.x64\Lib\site-packages下;
  2. mpython :这里是我们的QMTmini 量化策略的存放位置(这个不是今天主角,可以先不管);
  3. python :这里是我们的QMT量化策略的存放位置(它才是今天的主角,D:\gszqqmt\python目录路径不能错哦)

二、QMT调教步骤

搞清楚了策略的存放位置,下来就可以使用外部IDE编辑器来编辑代码了,编辑调测量化策略分三步:

1.QMT里新建量化策略(只新建,不修改)

这里我们只是新建而已,不用改任何信息,如下图:

1.1 输入名称
1.2 勾选“启动本地python”,这里勾选后,放可以在本地IDE编辑器里打开源码,否则编译后的代码你懂的。不过忘了勾选也没关系,下次编译前再勾选一下即可。
1.3 点“编译”后这个策略就会按我们命名的名称进行保存。

2.IDE编辑器修改代码(只修改,不运行)

2.1 只是来修改代码,不运行策略。下面以notepad++为例,将目录添加到工作区。


2.2 添加完毕后,我们双击刚才创建“金字塔策略.py”就可以打开了。右侧就是刚才的默认生成的python代码了。
在这里我们随意修改,这里演示,我就修改了一行,添加了一行,然后保存后我们到QMT里去运行。

3.QMT里运行量化策略(只运行,不修改)

在QMT里直接点“回测”,报错信息如下:

【2022-08-31 20:37:12.750】 0D:\gszqqmt\python\金字塔策略.py_SH00030025IndentationError:unindent does not match any outer indentation level (, line 28)

返回notepad++,显示所有字符(点菜单栏里用红色框标记的图标),即可看到我们的缩进有问题,QMT里默认是一个tab,而我的编辑器里默认是4个空格。这两种缩进没有任何区别,但一个Python文件里必须统一。

tab还是空格,不显示全部字符一般看不出来,QMT里可以看到。很多初学者这里容易犯错,所以这里举例示意下。


这里我们统一修改为tab后保存,再回到QMT里回测,一起正常。

如过我们在QMT里直接修改,回到notepad++ 会提示如下,选“是”就可更新到最新的代码。

至此,使用外部编辑器简单的调试QMT代码的方法已经展示完毕。剩下的就是不断的循环调试了。

有人说,你骗我,我在QMT里我就编译了一下,在notepad++里也重新加载了,可代码不见了!!!变成了如下图:


快还我代码!!!

别慌,还记得之前勾选“启用本地python”么?每次使用QMT编辑器,务必打上这个对勾再编译,否则代码编译后就上面这个样子。

好了,可爱的量化代码回来了吗?


总结

QMT是个量化交易的好工具,不过其代码开发功能确实很拉胯。当然它的主要功能不在于此,所以我们也就不必计较了。用了以上的方法相信你也就不在意她的开发环境了。借鉴以上方法,使用pycharm、vs code 等各种编辑器也都是可以的。

拓展:使用pycharm编辑策略

方法就是:将D:\gszqqmt\python在pycharm里新建项目,如下:

创建完毕后,即可看到刚才的代码了。

项目有个好处,可以解决文件引用路径的问题。很多人代码运行别人的代码不成功,就是因为别人给的代码使用了相对路径,而你单独代开运行代码会使用绝对路径,当然也就找不到文件,代码也就会不停报错。

后记

mpython的秘密

今天先写到这里,当然如果有人注意到开头提到的mpython目录,想知道这个的用法,评论里留言。如果评论超过20的话,我会考虑另写一篇彻底不用切换编辑器,而是在IDE里直接编辑,直接运行,直接交易的方法。

【QMT策略编写】如何优雅地调教QMT量化平台编写量化策略(使用notepad++、pycharm、vscode等外部IDE编写量化交易代码)相关推荐

  1. 如何编写高效优雅 Java 程序

    文章目录 编写高效优雅 Java 程序 面向对象 01.构造器参数太多怎么办? Builder 模式: 02.不需要实例化的类应该构造器私有 03.不要创建不必要的对象 04.避免使用终结方法 05. ...

  2. 用Python编程借助现有量化平台编写股票交易策略和回测分析

    一.简介 接下来笔者会给大家介绍股票交易中的常见几种交易策略实现思路和源码编写过程,如果大家听说过量化交易这个词语的话,对其中的交易策略或许了解过,大概意思就是在股票.加密货币或者金融衍生物在价格的波 ...

  3. 风控策略的自动化生成-利用决策树分分钟生成上千条策略

    本文重点:风控策略挖掘.策略推荐,策略发现,风控策略自动化,决策树 风控策略同学在挖掘有效的风控规则的时候,经常需要基于业务经验,将那几个特征进行组合形成风控策略,会导致在特征组合的时候浪费大量的时间 ...

  4. 【Python量化】布林带策略

    文章目录 一.计算布林带 三.构建策略,计算持仓头寸序列和买卖信号序列 四.计算策略收益 五.绘制交易信号 布林带(BOLL)指标是美国股市分析家约翰·布林根据统计学中的标准差原理设计出来的一种非常简 ...

  5. 【量化课堂】海龟策略

    导语:本篇介绍如何借鉴成熟的策略体系并在聚宽平台上实现.成熟的策略体系有很多种,例如海龟,羊驼,鳄鱼等等.今天的先举个海龟交易系统. 规范源码已更新!请大家克隆研究. 本文由JoinQuant量化课堂 ...

  6. python只能运行在windows平台上吗_在Windows平台上编写的Python程序无法在Unix平台运行。...

    问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 Because plants cannot move or talk, most people believe ...

  7. python可以在多种平台运行、体现了_在Windows平台上编写的Python程序无法在Unix平台运行。...

    问题:在Windows平台上编写的Python程序无法在Unix平台运行. 更多相关问题 某船公司2003年2月,建造了两艘航行于武汉-南京的2000吨油船,双壳结构形式,至今使用良好,为公司创 肾病 ...

  8. dita编写工具有哪些_我们已经有了美好的事情,还有其他一些原因不编写内部操作工具...

    dita编写工具有哪些 当我是运维顾问时,我拥有"巨大的财富",可以在相对较短的时间内看到许多公司的阴暗面. 在一位客户参与下,这种财富异常显着,我成为内部部署工具的维护者,尽管缺 ...

  9. Java黑皮书课后题第7章:*7.30(模式识别:四个连续相等的数)编写下面的方法,测试某数组是否有四个连续相同值的数。编写测试程序,提示用户输入一个整数列表,调用方法看是否有4个连续且相等的数

    *7.30(模式识别:四个连续相等的数)编写下面的方法,测试某数组是否有四个连续相同值的数.编写测试程序,提示用户输入一个整数列表,调用方法看是否有4个连续且相等的数 题目 题目描述与运行示例 破题 ...

最新文章

  1. Angular使用@Input和@Output实现父子组件互相传参(类似Vue的props和this.emit)
  2. Docker学习笔记【一】
  3. 学习java的知识体系路线
  4. 小白一路走来,连续刷题三年,谈谈我的算法学习经验
  5. Average and Median(500)dp,二分 AtCoder Beginner Contest 236
  6. java jdom进行xml的增删改差_java使用DOM对XML文档进行增删改查操作实例代码
  7. 漫画:如何给女朋友解释什么是策略模式?
  8. border_mode
  9. CSS长度单位及区别 em ex px pt in
  10. Oracle表空间、段、区和块
  11. 回顾:饶毅教授的一次采访
  12. error MSB8008: 指定的平台工具集()未安装或无效。请确保选择受支持的 PlatformToolset 值
  13. C语言之父丹尼斯·里奇
  14. NEW:SlickEdit Pro 27.0 KEY
  15. 达观数据:中文和英文语言差异和计算机处理的区别
  16. 声艺fx16调音台怎么样_声艺FX16II 声艺(Soundcraft) FX16ii 调音台
  17. 华为2019年8月校招秋招笔试机考题解答C++实现
  18. android textview 字母数字键盘,android数字键盘怎样设置成默认的
  19. Cocos2d-JS 项目接入AnySDK
  20. 非参数统计的Python实现——卡方独立性检验

热门文章

  1. ntp如何确认与服务器偏差_NTP时钟同步原理及误差简析
  2. 天猫淘宝企业服务为中小微企业打造供应链智能协同网络,让采购不再将就!丨爱分析报告
  3. ipv6掩码格式解析
  4. (转)什么是产品经理
  5. Oracle 视图传递参数
  6. Java实现智能语音朗读(完整代码+EXE程序制作)
  7. Promethus(普罗米修斯)
  8. 抖音死亡计算机背景音乐,抖音死亡计算器app
  9. 合并报表软件excel
  10. [高项]类比估算VS参数估算