粉丝30获赞2

哈喽,大家下午好呀,我是麻辣虾仁,欢迎大家观看从零开始学 qmt 教程第一课,如何安装与配置 qmt。 在安装与配置 qmt 之前,首先需要一个 qmt 的安装包以及 qmt 的测试账号,这两个大家都可以问我要, 我给的账号也都是所有权限都已经加上的,拿到这两个以后,我们就可以双击安装包进行安装,点击下一步,勾选许可协议,再点击下一步,然后呢我们这里安装到自己设置的一个目录中, 这里需要注意一下,就是这个目录呢,最好是英文的,不然后续如果我们安装第三方库的话,可能会出现问题,然后点击安装,然后过一段时间呢, qmt 就会安装到我们电脑上了, 然后点击下一步运行 q m t, 安装完成以后呢,系统会提示我们是否升级,我们点击试, 接下来系统会自动的去安装最新版的 qmt, 然后最新版也安装完成。 接下来我们选择行情和交易,然后输入我给的账号和密码, 点击登录, 然后我们就进入了 qmp 的界面,这样我们就完成了今天课程的 第一大部分 kmp 的安装,安装完成以后,我们需要对 kmp 进行一定的配置,才能使用 kmp 的回测以及交易的功能。首先第一步是绑定资金账号, 我们登录 q m t 以后,需要将我们的资金账号绑定在 q m t 当中,我们点击左上角的设置账号管理, 在这里我们已经把资金账号绑定,这里我们可以在模型列表的右边,然后找到下载 python cool 这个按钮,我们点击 这里可以设置 python 裤的路径,我们选择默认路径就好,然后点击 python 裤下载, 当进度条如果能达到百分之百以后,就说明我们的 python 库已经下载完成, 因为这个库的数据量可能比较大,然后大概会有一个 g 左右,如果我们网速慢 慢的话,还请耐心等待一下。 当进度条达到百分之百以及提示下载成功以后,这样我们就把 python cool 下载到我们本地了,接下来我们来看一下第三步,补充历史数据。因为 q mt 回测都是在本地来进行回测的,因此需要把历史数据下载到本地。首先点击左上角的操作, 点击数据管理,选择补充数据。如果我们要回测股票的话,我们要在左边去勾选交易所, 还可以在下拉框当中选择你需要去下载 k 线数据还是下载财务数据等等,这里我们只下载 k 线数据, 然后还可以在右边去选择下载的区间,比如说最近一周,最近一个月全部或者是自定义区间等等。这里面因为演示的原因, 所以我们只选择了最近一周的数据。 周期的话,我们可以选择日线周期,一分钟数据和五分钟数据,这里我们选择日线 qmt 的话,还支持补充指定股品种的股票,当然你也可以啥都不填,如果这里啥都不填的话,默认是补充所有品种的数据, 这里我们下载沪生交易所最近一周的日线的 数据,我们点击补充,然后系统就会开始下载数据, 因为我们下载的数据量比较多,因此可能下载的会比较慢一点, 这里因为演示的原因,我这里就不给大家展示完全下载数据。 最后给大家提醒一下,就是 q m t 每天早上八点五十以及晚上八点五十固定的时间,它会做个重启,重启以后呢,我们这个数据下载就会断开, 并且迅投 qmt, 它是没有断点重连的功能,因此大家在下载数据的时候一定要避开这两个时间点。做完以上这三个步骤以后, qmt 就已经完成了 配置,大家就可以正常的使用 q m t 来做回测以及交易。好了,今天的视频就到这里,下一个视频我会给大家介绍如何用 q m t 来运行第一个策略, 以及介绍 qmt 策略的一些基本的框架。今天的视频就到这里,视频如有帮助还请点赞关注,谢谢!


哈喽,大家下午好呀,我是麻辣虾人。讲明,我们写 kmp 量化交易策略的时候,会把一些日志打印出来,用于查看信号是否正常触发,或者用来排查程序的 bug。 我们用的最多的可能就是在程序里面用 print 来打印信息,但是 print 有一个问题,就是当 qmt 关闭以后,日志也就没有了,或者说日志特别多的时候, qmt 是无法显示完全的。那有没有另外一种方法能够替代 print 来输出信息, 并且方便我们查看日志呢?今天我就带给大家介绍拍省的 logo 模块,并且把代码封装成了一个函数,大家需要的时候可以直接复制过去。使用这个函数可以实现在控制台输出日志,以及把日志输出 到文件当中。我们如果有需要的时候可以打开文件去查看日志,我直接给大家介绍代码。要实现日志的功能有以下几个步骤,首先当然是导入 login 这个模块, 然后要用 get log 这个函数来生成一个日志气,设置日志气的一个日志级别,这里我们设置为 debug 的级别。 第二步,生成处理器,处理器的意思就是日志在哪里显示,有两种处理器,一种是控制台,一种是文件。我们还是先看一下代码,这里我们先获取当天的一个日期, 然后设置日志的文件的路径,我们放在程序运行目录下的 log, 这个目录下 文件名就是日期,文件的后缀为点 log, 然后生成两个输处理器,一个是控制台,一个是文件, 意思是日志既可以在程序运行的界面看到,也可以写到文件当中,这里的 steam hand 函数 要用这个函数来得到控制器对象,然后调用 fairhand 这个函数来生成文件处理器对象。这里这个函数有三个参数,第一个是 日志的文件名,第二个是日志打开的模式, a 是追加的意思,第三个参数是编码,默认为有天 五八,还需要设置日志的一个级别,这里我们都设置为 debug。 第三步,设置输出的格式要用 formator 这个函数来生成格式对象。 logo 模块内置了很多日志输出的格式,比如 number 代表行号, their name 代表日志的级别, message 代表日志的内容, ask time 代表时间, 然后调用 set of format 这个函数来设置格式。接下来第四步,日志系需要添加处理器,调用 eight hand 这个函数来 添加这两个处理器。最后一步也就是打印日志了,然后根据参数的不同打印不同级别的日志,这里我们试一下,我们点击运行, 然后我们在下面看到了打印的一个日志。接下来我们来看一下日志文件, 我们可以看到已经生成的日志文件,并且日志文件里面也是我们打印的内容。好了,今天的视频就到这里,中文代码大家可以复制过去使用。关注我带你了解不一样的量化。

哈喽,大家下午好呀,我是麻辣虾仁,上一个视频给大家介绍了如何安装与配置 qmt, 今天我给大家介绍 qmt 策略的基本框架以及第一个量化交易策略。首先我们在 qmt 上新建一个策略,我们点击策略列表下面的新建策略 hasn't really, 然后系统呢,就会给我们一个默认的策略,里面有策略的一个基本的框架,可以在这个策略的基础上编写自己的策略,或者说把这个框架删除 自己重新写都可以。我们来看一下这个基本的框架。首先框架包括三个部分,首先是最上方的拍散库导入,我们可以导 导入一些第三方库,比如说 pandas 按需填写的你的策略用到了哪些拍散库,你就可以导入哪些。这个是 kmp 策略必不可少的一个函数。 innit, 顾名思义就是 initial, 初始化的意思,在每写每个策略之前,我们都必须初始化策略的一些参数,比如说策略运行的一个股票池,策略的资金账号以及这两个买卖信号。 这个函数呢,在策略开始的时候只调用一次。然后接下来策略的第三部分框架是 handleba 函数,这个函数是我们策略逻辑的主要部分,也是在策略里面必不可少的。这个函数的运行 机制就是根据我们选择的 k 线, 每根 k 线都运行一次,我们的策略逻辑都可以写在这个函数当中。 比如说在这个默认策略里面,首先他去获取行情数据,然后呢通过行情数据来计算一些指标, 最后通过这些指标来学的第一个程序往往是学会如何写 hello word。 今天我们就在 qmt 上用 python 写一个输出 hello word 的程序,这里我们把默认的策略代码删除, 然后呢,我们在 init 函数里面打印一个 hello unit, 然后我们在 handleba 里面打印一个 hello handba, 这样呢我们就实现了一个最简单的策略,然后我们再点击左上角的,我们先保存,然后点击左上角的运行, 我们可以看一下左下角的日志。 首先函数是调用 e d 的函数,然后输出了 hello innit, 然后在每一根 k 线上都调用了 handle bug 函数,然后输出 handle bu, 我们可以看到 他输出了很多,因为他在每一根黑线上都运行了一次。我们可以看到这样我们就实现了一个最简单的哈喽沃的策略,这个策略里面没有买卖的逻辑,主要的目的是为了让大家熟悉颗粒策略的基本框架。好了,今天的视频就到这里点。

哈喽,大家下午好呀,我是麻辣侠人,上节课给大家介绍了如何在 kmt 实现策略的回策,今天我就教大家如何把策略放在模拟以及实盘进行交易。 当我们写完一个交易策略并且回测效果还不错的时候,我们就想验证一下策略在实盘行情下能否正确的发出交易信号,这时候呢就得令到 qmt 的模拟交易的功能, 如果模拟信号也都正常的话,说明策略能够正常运行,那我们就可以把策略放到实盘进行交易。今天我就来给大家演示如何进行模拟交易以及实盘交易。 我们点击策略交易,然后点击左上角的新建交易策略,然 我们进入到了新建交易策略的界面,次的类型就是选择我们之前写好的哪个策略,这里我们选择之前写好了一个单均线的策略 主图代码,就是将我们的策略运行在哪个主图上面,这里我们保持默认的沪深三百不变。 然后账号类型,比如我们是股票的策略,我们就可以选择股票账号,如果我们是期货的策略,则我们选择期货的账号,另外还支持信用期权互港通和深港通。 接下来我们选择我们已经绑定好的我们的资金账号。最后我们要选择运行的周期,需要选择我们的策略运行在哪个时间周期上, 比如我们选择五分钟。这里需要注意一下的是,实盘交易和回测是不一样的,回测 只在选择周期的 k 线上运行,比如我们选择五分钟,则回测就是五分钟运行一次喊得罢。 而实盘无论我们选择哪一个周期,寒德霸都是根据主图的 teak 来运行, 每一个 tk 汉德坝函数都会运行一次,如果不是 k 线的最后一个 tk, 则前面的 tk 产生的信号都是虚假的信号,只有 k 线最后一个 tk 才实际判断是否下单, 并且在下一根 k 线的第一个 pick 才实际发单。这个特写呢,大家一定要注意。然后填完这些以后, 我们点击确定,这样我们就新建了一个策略,交易到这里还没有完全弄好,策略还没有运行起来, 我们可以看到这里还有几个按钮。首先是这个三角箭头,这个是用来控制策略启停的,当我们点击变成方形以后,策略就真正运行起来了,然后再点击一下,策略又停止。右边还有个运行模式, 默认是模拟交易,当我们点击运行,则策略是运行在模拟交易模式下,在这个模式下,策略只会产生交易信号,不会发出实际的买卖订单。 大家可以在策略信号里面看到策略发出的买卖信号,因为我是在晚上录的视频,因此 策略无法触发交易信号。当我们把运行模式切换成实盘交易以后,策略则运行在实盘交易模式下,策略的信号将真正的发送到线上的柜台,产生真实的买卖订单。 然后在委托这里就能看到委托信息,如果委托成交的话,则会在成交这里也能看到成交的信息。因为我是在晚上录的视频,因此策略没有真正运行起来,所以也不会产生委托和成交。另外策略统计这里, 他会统计各个策略运行的一个情况。好了,今天如何将策略进行实盘交易,就介绍到这里,视频如有帮助还请点赞关注,谢谢!

哈喽,大家下午好呀,我是麻辣虾人,上个视频给大家介绍了 qmt 策略的基本框架,以及写第一个哈喽沃的策略。写完策略以后,我们想知道策略在历史上运行的咋样,那就要对策略进行回测,今天我就给大家介绍如何用 qmt 来做回测。 如果需要回测的话,在右边有一些参数是需要设置的,首先设置回测的开始时间和结束时间,我们这里设置从二零二二年一月一日到昨天, 这里需要注意一下,如果我们对某个品种进行回测的话,在回测之前我们要 下载历史数据,这个我们在第一节课已经讲过,我这里呢已经提前下载好了数据,如果我们点击回册的时候呢,基准就是我们的策略与哪个指数业绩进行比较。 我们一般都是选择默认的沪深三百初始资金,就是我们给策略分配多少虚拟资金进行交易保证金比例,这个一般期货才会用到我们这里回测股票,所以不用管, 因为实盘交易时会有滑点。因此我们还可以在这里设置同一时间市场成交量的一个比例,比如我们设置百分之十, 则我们回测策略每天的成交量不超过当天市场成交量的百分之十。 另外除了回测参数这里需要设置以外,在基本信息这里还需要设置一些参数,比如说策略的名称,然后策略的快捷键,这个呢是根据名称的拼音首字母来的,不需要我们进行设置 说明呢,就是策略的一个备注,我们在这里函数,因此在日志中会输出 k 线的日期,回测完测的一个结果, 右边的数据也会跟着一起动,比如我们学位选择一天,然后右边呢显示截止这一天的年化收益,下铺比率等等一些策略评价的指标,以及买入和卖出以及持仓明细的情况。 我们可以看到在这一天当天是有持仓的,在持仓分析页面,我们可以看到所有持仓股票的权重。 在历史汇总页面,上半部分展示的是个股的一个盈亏汇总情况,下半部分展示的是板块的 一个汇总盈亏情况就是如何利用 qmt 来进行回测。好了,今天的视频就到这里,视频如有帮助还请点赞关注,谢谢!

哈喽,大家下午好呀,我是麻辣虾人,上节课给大家介绍了完成第一个单均线策略需要的最基本的几个 q m t 函数,今天我们就把这几个函数串联起来,组成一个最简单的单均线策略。 我们来回忆一下之前的课程,里面讲到了 qmt 最基本的框架,包括三个部分,第一个部分是导入拍省库,第二个部分是英尼特函数,第三个部分是汉德霸函数。 我们写策略其实就是填充这三个部分的过程。接下来我们来看一下单均线策略的代码,这里我已经写好了,首先导入第三方库潘的斯和安排 这两个库,一般我们的策略默认都会用到,所以导入就好。接下来是初始化函数 innit, 这个函数用于对策略进行初始化, 这就用到了我们上节课给大家介绍过的第一个函数 set 有点帽子来设置股票池,这里我们只设置一个股票, 就是平安银行。接下来设置资金账号,这里利用 contest info 是拳击对象的特性,把资金账号当成 contest 的 info 的一个成员。 然后设置均线的长度,这个我们也放在 contact info 这个对象下面,设置均线长度为二十。初始画了这三个基本参数以后,就完成了这个策略最基础的设置。 接下来我们来写策略的逻辑,也就是汉德坝函数。我们来回忆一下这个策略的基本逻辑,当股票收盘价上传二十日均限时买入,下传二十日均限时卖出。为了实现这个逻 逻辑,首先要获取股票的历史行情来计算均线,调用了上节课讲到的 get history date 这个函数,传入长度为二十一,然后 ed 代表一天, cross 代表说盘价。这个函数得到的是一个字典, 字典的键是股票代码值是股票的历史行情。然后我们传入这个股票以后,我们就得到了这个股票的一个收盘价的序列, 然后我们使用潘德斯的一个 roling 函数来计算这个股票的一个移动的均线,最后判断收盘价是否是上穿均线,上穿的意思就是前一天股价低于均线,后天股价高于均线,这就叫上穿, 转化为代码就是 cos。 负二小于等于 m 二零负二负二代表前一天的 k 线,意思是 前一天的收盘价小于前一天二十日的均线,然后口子负一大于 ma。 二零负一负一代表当天的 k 线,意思是当天的收盘价大于当天二十日均线。 这样呢就满足了上传的条件,我们就要需要做一个买入的操作,买入操作之前,我们首先要去获取我们账户的一个总资产,这里我们调用了一个我们自定义的个函数叫 get total value, 大家可以注意一下,除了 qmt 自带的函数以外,我们还可以在 qmt 里自定义一些函数,比如这里我们就自定义了一个函数叫 get total value, 这个呢是用来获取总资产的函数。函数 里面调用了我们上节课给大家介绍过的 get trade detail debt 这个函数用来获取总资产,这个函数返回的是一个列表,列表里面是账户的信息,我们有复循环 去获取总资产,因为我们的资金账号只有一个,所以这个列表里面只有一个数据。获取总资产以后, 我们就可以进行下单了,这里面用的是上节课介绍过的下单函数 old target value, 这个函数 传入股票代码目标仓位,因为我们是打算满仓操作,所以传入是总资产,后面两个是一个默认的参数,这样呢,我们就完成了下单,当满足下穿条件时,也就是前天的股价大于均线,当天的股价小于均线,转化为代码, 就是 cos 负二大于等于 m a 二零负二, cos 负一小于 m a 二零负一,则同样调用 old tag 的 y 六这个函数。但是这里需要注意一下的是,这里第二个参数是零,代表将目标仓位调整成零,也就是全仓迈出。 这样呢,我们就把一个单均线策略写完了,点击编译保存策略,然后点击回测策略就跑起来了。 回测完成以后,我们还可以看到策略回测的结果,我们可以看到这个策略在回测区间内的年化收益达到了百分之五十三,还是非常不错的。我们可以看到这个策略才短短的四十几行,但是几乎包括了所有策略 的基本要素,比如设置策略的资金账号策略的股票池策略、数据获取策略、下单条件以及实际下单。 大家有没有发现,其实写一个量外交易策略其实是非常简单的一件事情。好了,今天的第一个最简单的单间间策略就到这里,视频如有帮助还请点赞关注,谢谢!