粉丝5420获赞5394

哈喽,大家下午好呀,我是麻辣虾人,上几节课给大家介绍了如何回测以及如何实判交易。接下来我带领大家完成一个最基本的单均线策略。但是如果我直接给大家介绍交易策略, 大家可能听不明白,因此我首先给大家介绍组合成一个策略,最基本的 api 函数。 因为 qmt 提供了很多内置的函数,大家看的可能眼花缭乱,为了快速入门,所以我就只给大家介绍几个基本函数。介绍完函数以后,大家就可以将函数组合成一个最基本的量化交易策略。 在介绍 api 函数之前,我们来回顾一下单均线策略的基础逻辑,当股票的价格大于某根均线时则买入。当 股票的价格小于某根均线时则卖出。我们把这个策略拆解一下,首先我们要选择操作哪只股票,其次去获取这个股票的行情,还得获取股票的历史行情,用于计算均线, 因为涉及到股票下单,因此还得获取账户的资金。最后还涉及到股票的实际下单。 我们将把策略拆解开来,大概策略的逻辑就很清晰了。我们将文字转化为 qmp 的代码语言,首先操作哪只股票,转化为 qmp 的语言就是订阅股票 set universe。 这个函数的意思是告诉我们策略要操作哪些股票,它的参数是一个列表,里面就是股票的代码。我们来看一下这个势力 参数,里面是两个股票代码,我们可以看到代码后面还有后缀,点 s h 代表上海,点 s z 代表深圳。因为在 a 股市场,两个交易所有些代码是有重复的,你就比如说零零零零一, 在上交所就代表上传主数,在深交所就代表平安银行,大家在写策略的时候要注意这一点。 接下来是获取股票行情和历史行情,这里我们调用 kmp 的函数 get history date 来获取股票的历史行情。这个函数有几个参数,第一个愣是历史数据的长度, 比如我们要获取五十根 k 线行情,那就传入五十。第二个拍落的参数是历史数据的周期,你可以选择日线、 不同长度的分钟线、周线、月线等等。第三个参数 feel 代表数据类型,一般开线都有开盘价,收盘价、最高价、最低价,你可以自由进行选择。 低于点的 tap 代表负权类型,默认是不负权的,当然我们也可以传前负权后负权这些。 skip post 代表停牌期间是否用停牌前的行情进行填充, 默认是填充的。这个函数的返回值是一个字,典件呢是股票的代码值,是股票的行情。我们可以看到 这个获取股票行情的函数,他的参数是没有传股票代码的原因是之前我们订阅了股票,获取的就是订阅的股票池的历史 行情数据。接下来是获取账户资金的函数,这也是一个非常重要的函数,这个函数可以获取账户的资金,持仓、委托、成交等等函数。第一个参数是资金账号, 第二个参数是账户类型,可以是股票、期货等等。第三个参数是数据类型,比如是账户还是持仓,委托还是成交。函数返回的是一个列表,列表里面是某个数据类型的对象。 第三个参数传了什么,则返回的什么数据类型。最后介绍一下股票下单函数 q m t, 里面有很多下单函数,我就给大家介绍一个最基本的下单函数, old talkat value, 这个函数叫指定 目标价值交易,顾名思义就是把仓位调整到某个价值,这个函数很适合用于对股票值进行调仓。我们来看一下函数的参数,第一个 stock code 是股票代码,第二个它 y 柳是目标价值,就是将股票市值调整到多少, 然后是价格类型,包括最新价,买一价等等。最后还有固定的两个参数, context info 和资金账号。 好了,一个最基本的单键键策略要用到的 kmt 基本函数就到这里,大家是不是觉得很简单呢?只需要 kmt 四个基本函数就能实现一个最简单的策略。 后续我们可以看到这几个,或者说这几类基本函数就能满足我们策略大部分的需求,大家有兴趣的话可以把这几个函 说的文档好好的读一读。下一个视频我会给大家介绍,将这几个函数组合起来,就变成了一个完整的有血有肉的策略。今天的视频就到这里,视频如有帮助还请点赞关注,谢谢!

哈喽,大家下午好呀,我是麻辣虾人,前段时间出了一批关于 kmp 的量化交易课程,但是有的小伙伴反馈,这个课程对于初学者来说不太友好, 希望我出一系列基础的视频,就是从零开始教会大家如何使用 qmt。 为此我重新做了一系列课程,从 aps 里面给大家介绍 qmt 常用函数的用法,希望能够带领大家快速入门 qmt。 今天介绍 qmt 所有加油教官的函数。我们都知道 qmt 提供了非常多的下单函数,这里我把所有设计到下单的函数都总结出来了,大家可以看下图。 首先第一个是综合下单函数 plus o 的,这是我非常非常喜欢并且用的最多的函数之一。这个函数相比于其他函数, 最大的特点就是这个函数支持非常多的业务品种,比如支持股票、两融、期权、期货的交易。熟悉了这个函数的用法以后,交易都可以用这个函数。这个函数我会单独拿一个视频给大家讲解这个函数具体的用法。 接下来是 smart air go paso 的,这个呢是 passo 的函数的算法版,就是加上了拆单的功能。这个函数的使用方法跟 passo 的差不多,参数也是非常的类似。接下来是 get a tread detail date 获取交易明细数据函数,这个函数也是很强大,才能获取持仓、委托、成交和账户相关信息。这个函数是我们后续写量化交易策略经常能用到 的函数之一,具体的使用方法我也会用一期视频给大家介绍。然后是 get value by old id 函数, 这个函数是根据订单号获取委托或者成交相关的信息,他这里有个参数叫做数据类型,如果你传的是委托,则返回委托对象,如果你传的是成交,则返回成交对象。 接下来是 get last o 的 id, 这个函数呢,可以获取最新的委托或成交的订单号。 比如我们刚下完一笔订单,我们想获取这笔订单的状态是成交还是没有成交,那我们就可以通过这个函数先获取这笔订单的订单号,然后调用刚刚的函数 get y 六 o 的 id 来获取具体的订单信息。 can cancel o 判断订单是否可以撤单,他的参数是订单号。当我们下完一笔订单后,我们可以自行记录这个订单的 id, 或者调用刚刚介绍过的 get a trade detail dat 来获取所有订单,然后判断订单是否可以撤单。 看色函数,顾名思义就是撤单的函数,函数参数是订单号,这里有个小知识告诉大家,一般我们使用券商的系统,用的都是散户的集中柜台,这柜台撤单比较慢, 有时候撤单需要一分钟,如果我们想要提高撤单的速度的话,可以找券商要求切换到极速交易柜台上去,经测试,大概在一秒以内就能完成撤单。 cancel task, post task, resume task 此刻这三个函数都是跟任务相关的,比如说算法单或者篮子交易,他们生成的是一个任务,因此可以通过这三个函数对任务进行撤销、暂停或者是继续任务。 q m t 还给我们提供了两个止音止损的函数,就不用我们自己写代码去实现了,包括线下单止损和社交单止损,这两个函数还是非常有用的。 最后一个是 doo 的函数,这个函数实现的作用是实时触发前一根霸的信号,这个是什么意思呢?因为 qmt 它是竹霸运行, 并且是通过最后一个 t 可判断是否下单,在下一根 k 线才实际发单,这样对于日线以上级别的策略,下一根 k 线可能就是第二天了,所以模型当天以及第二天都无法下单。我们可以通过调用 doo 的这个函数来实现把上一天的下单信号发出去,但是这个函数实际当中我很少用,我一般都会用 passo 的来实现立即下单。 接下来我们来看看股票下单函数,这些函数还是非常好理解的,并且很容易调用,这里我给大家简单介绍一下。首先是欧德 los 函数,这个函数的功能是指定手术交易,就是买卖多少股首的股票,比如说可以买入一手 order y 六函数指定价值交易,比如说买入十万块钱的股票 order percent 一定比例下单,比如说零点一,意思是用总资产的百分之十 值的资金买入股票,正数是买入,负数是卖出。 order 他给的 y 六目标价值下单适用于调仓的场景,比如说把股票买到二十万吃仓, 如果当前持仓小于二十万元,则买入二十万减去当前持仓市值的股票。如果当前持仓大于二十万元,则卖出当前持仓减去二十万元股票。 or the target percent 这个函数呢,跟上一个函数非常类似,也是用于调仓的,不同点在于,这个是用的总资产的比例。 最后一个是 od share 函数,买卖指定数量的股票,比如说买入一百股股票,这个函数可能是我们用的频率最高的下达函数之一。 然后是期货的函数,这里我列出了每个函数具体的功能。期货函数比较简单,大家有兴趣的话直接去看 api 文档。另外还有些注意事项就是某些函数不能在回测当中使用,比如说坑 cancel o 的 判断是否能撤单的函数,因为在回测当中是无法做到撤单这么精细的,因此这个函数不能在回撤当中使用。另外其他涉及到撤单的函数都不能用,比如说 cancer, cancer task do all, 这些函数在回测当中也没有实际意义,因此也不建议使用。另外,在回测中,交易函数是使用虚拟账号来交易的,只会在历史 k 线上记录买卖点,用来计算净值,而在实盘 模式下是会实际下单的,模拟模式下只会有交易信号,没有实际的买卖。好了,今天交易函数盘点就到这里,视频如有帮助,还请点赞关注,谢谢!

哈喽,大家下午好呀!我是马拉萨人,想必我们用 tmp 做量化的朋友,在全球化下单以后,都想第一时间看到委托订单的状态。有两种方法去获取订单状态,一种是我们主动去获取,调用 get trade dtet 函数, 如三秒去获取一次。另外一种方法是通过 qmt 的委托主推函数来获取订单的状态。主推的意思就是 qmt 主动给你推送消息,所以获取委托状态的速度会更快, 一般都是实时推送。今天我就给大家介绍委托主退函数的用法。首先我们来看一下这个函数的定义。这个函数的主要作用是当某笔委托状态发生变化时,系统就会主动调用这个函数。比如新下达一笔委托时,则系统会运行这个函数。 比如某笔订单状态发生变化时,也会调用这个函数。接下来我们来看一下这个函数的两个参数,一个是 contest info, 这个是特定的对象,也是我们经常能用到的上下文对象。 另外一个是 od info, 这是一个 od 对象,里面存有委托订单的信息。我们要如何使用这个函数呢?我们需要把这个函数放在我们的代码当中,然后在函数中去实现我们想要的逻辑。 举个例子,当我们对某笔已经撤销的订单进行补单时,我们可以从 old info 这个对象中拿到这笔委托的委托状态, 判断委托状态是否是已撤或者是不撤。如果是,则我们可以在这个函数中进行下单。接下来我用一个很简单的例子给大家介绍如何使用 委托组队函数,这里我用委托组队函数来实现了定时撤单的功能,比如某笔订单超过六秒没有成交,则我们撤销订单。 我们来讲一下策略的思路,因为委托主题函数实现的是每笔委托状态发生变化时,则系统会调用这个函数,那么我们可以用这个函数来维护一份未成交委托的数据。当来了一个新的订单号,说明来了一笔新的委托, 判断订单状态是不是未报代报布撤,已撤已成。如果都不是的话,说明订单是未完成的,我们就把订单维护到数据当中, 数据可以用字典来存储,字典的键为订单号,值为委托状态下单时间, 以及再加上一个计数器,这个计数器的目的可以用来计时,新加入的订单计数器设置为零。当订单号在原有的字典当中,说明状态 已经更新了,判断订单是不是不撤,已撤或者已成。如果是这三个状态,说明订单已经结束,我们就把订单从字典中删除。 如果是除了以上三个状态的其他状态,则我们更新委托状态,委托时间和计数器都不变动。 这样我们就用委托主推维护了一份未成交的委托。接下来我们自定一个定时函数,比如每每秒钟运行一次,然后轮寻未成交订单的字典,判断计数器是否大于等于六,大于 等于六,说明过了六秒,然后就进行撤单,如果没有,则记住其加一。这样我们就实现了六秒未成交就撤单的功能。接下来我们来试试。我们已经在策略交易中添加了撤单的策略,我们点击运行, 然后切换到手工交易,再来一笔跌停价的买入, 我们可以看到订单状态为已报。接下来我们回到策略交易的界面,这里已经打印了下单时间为十三点二十二分二十一秒, 然后过了一会就发出了撤单委托,时间为十三点二十二分二十八秒,这样我们就实现了超过六秒撤单的策略。好了,今天的视频就到这里,关注我带你了解不一样的量化。

大家好,我是方圆,要学会量化交易,我们必须先了解量化交易平台, 我的量化交易课程主要是基于 pk 量化交易平台。我们第一节课先来认识 pk 软件, pk 的设置按钮在右上角,主要有六个。第一个是焕肤,这个按钮可以让你更换软件,颜色 有黑色和白色两种,我一般都使用黑色,你可以选择你喜欢的颜色。第二个按钮是多账号管理,你可以在这里管理你的账号。 第三个是转账按钮,你可以在这里进行资金的转入和转出。第四个是锁定,你可以点一下,然后你的 pk 软件就会被锁定,这个锁定功能可以防止别人在你不在的时候操作你的 pk 账号,如果你不操作的话,过一段时间你的 pk 也会自动锁定的, 你要输入 pk 的密码才可以解锁。第五个是系统设置,你可以在这里自定义快捷键,或者进行一些个性化的设置。第六个是帮助,你可以在这里查看帮助文档, 值得注意的是,在劈翠里面有两个帮助文档,这里的是对劈翠功能的介绍。还有一个帮助文档是量化的 api 文档,这个文档专门介绍量化框架和函数,你也可以在这里查看程序版本还有设备的信息,比如 cpu 序列号,你 你的账号只能在绑定的电脑上才能登录,你也可以在这里进行功能的反馈,技术人员在看到你的反馈之后,可能会根据你的需求来进行一定的优化。 p 区亮化交易软件主要有五大功能,分别是行情交易工具、量化日内,你可以在行情处查看行情信息,也可以添加自选股,这跟你在其他炒股软件是一样的。 在交易处,你可以选择办理股票期权融资融券业务。在股票业务下,你可以手动买卖股票,购买力回购、申购新股等等。 买卖股票的话,你只需要在框框内输入信息就可以了,其他也是一样的,就不一一最数了。我们来看看交易工具的功能,在这里你可以使用一些交易工具,点击左上角加号就可以 件工具,比如网格交易、 etf, 趋势交易等等。在日内这里,你可以进行键盘交易、鼠标交易。 量化功能主要分成四个部分,分别是研究、回测、交易帮助。在研究环境下,你可以储存数据,也可以新建猪皮的 nobo 进行研究学习。在回测框架下,你可以对你的策略进行回测。 在交易框架下,你可以进行量化实盘交易帮助中详细介绍了各种函数的功能,以后我也会出视频对这些函数进行详细的解析。 另外你按 ctrl 加 tab 键,可以在这几个框架下来回切换,在你编写代码的时候,这个快捷键还是很有帮助的。

啊,大家好啊,那这个视频呢,我们将一起来学习写一个啊实战性的一个回测策略, 通过这个策略呢,我将嗯带大家一起了解一下 pg 的量化,他一个回测的整个一个框架和涉及的一些设置的一些呃接口和一些函数。 那这边呢,我已经呃新建完成了一个叫做日线回测策略完整框架每个策略啊, 这就是啊这个这个策略的一个代码啊,这边我对一些部分都做了一些注示意啊,这边可以看到第一个部分叫做初始化模块, 第二部分叫做盘前处理,第三个部分叫做盘中运行,第四个部分叫做盘后处理。啊, 那这这当中呢?因为上一个视频呃,我们已经嗯了解过一个最简单的策略,他是两他的一个构成情况啊,最简单的部分,呃策略他只需要一个初始化模块,就是这个隐居性 nice 啊,这个这个函数和憨豆第一场啊,这个函数盘中逆袭, 也就是说盘前处理和盘后的一个处理,他并不是必须的啊,并不是必须的,那其实在实际的啊,策略设 过程呢,其实像盘前处理他是非常重要啊,那盘后处理呢,也可以按照个人的一个习惯,这可能使用的频率并没有呃盘前那么高啊, 所以啊,那我们就知道他一共四个模块,但是我们常必须的就是初始化和盘中,那盘前我们也是比较常用,那我们就一个模块一个模块来进行一个呃,熟悉啊,引起来是这个模块呢,主要是用来设定一些 呃参数的初始化和对一些全局变量的一些设置啊,这个呃模块他只会在策略运运行的最开始运行一次啊。假如,嗯,也就是说回测,假如你回测从六月 三号到六月四号,我这边设置了是两天啊,他只会在六月三号最开始这函数开始运行,这个策略开始的时候进行一次运行,那到六月四号他就不会再运行了啊,他里面呃 设置了很多啊,这边设置很多,那其实像,嗯这些设置也并不是必须的,并不是你一定要去设啊, 你不是也是没有关系的。那我们实战角度来讲像设置一个,嗯,这个设置基准啊,这边末日是是一个相当于是 呃给你的策略做一个基准的指数去设定一下,你如果不设定,那他默认就是 步升三百啊,你我我们我们这边给他设成了一个上身五零啊,零零零幺六上身五零啊, 接下去像设置佣金费率 cxccomes 啊这边,嗯设置固定滑点,设定滑点比例啊,设定成交比例这几个,呃函数呢?这四个函数其实并不是说你一定要去设, 那如果不设的话呢,我们这边都会给了一个默认值啊,我们都会给默认值, 但是呢,呃大家也最好自己去做一个设定啊,按照自己对回测要求的一个,嗯, 严谨性啊,大家可以去设。像这个佣金费率,我们这边默认也就是万三 和呃最低五元的一个佣金啊,然后固定划点,他是一个伟特价格于最后成交价格的一个差,呃,价差默认是零啊,那其实零肯定不是一个实际的交易情况吗?啊,大家肯定也知道,所以 大家呃可以在这方面,在在这些函数上面就设定的稍微大一点,这样会比较严谨一点,比较逼近于真实的交易情况啊,那你回测出来的有效性就会提高啊。 这边是一个滑点,默认是零点一啊,我这边设置零点二,然后成交比例,也就是说你这个策略 在某一个周期内去下单的时候,不能超过整个,呃,市场, 整个这个周期内整个市场他总成交量四分之一啊,你不能超过我这边设设成了零点二,这些都是为了让你的回册比较有效。 好,然后最后你再设定一个股票池啊,啊,这是你这边不设,然后在那个盘前比货区定时大车也可以去做,也可以设置啊。 那说实话我们就做了一个,呃,就是用来设置这些固定的一些参数啊, 好,盘前处理。那为什么我们要做盘前处理呢?其实,呃,因为 借口,就像获取股票股票列表,像这种借口,因为我们知道富生三百指数,他的成分股啊,包括每一天市场的成分股,他都是在 变的,他都是在变化的。假如我们把股票词在引流,选 nice 这个银,选 nice 这个部分,我们就给他做了一个固定的话, 那么后面每一天他处理的这些股票是都是固定的,他不会每天更新,那实际上这种就不是一个真实的交易 场景,所以我们每天都需要在盘前或者盘中去对一个股票词更新啊。那为什么我们要在盘前做呢? 因为假如你是一个全市场的一个策略,在盘中做,他所消耗的时间是非常多的啊,因为三千多股票他去处理数据会非常慢,所以我们是在盘前处理,那盘前呢?他是在每天我们这边默认是在九点十分啊, 进行运行一次啊,那在离九点三十分还有很长时间,那这段时间内有足够的时间去做这些 啊,数据的处理这么一个动作啊,所以我们建议就是在比佛确定是大的进行处理好,我们这边简单做了一个视力,那我们看在盘前会做哪些动作? 常规的动作啊,这边是设置了一个呼声三百的股票池,然后呢,我们通过一个该的是的这么一个接口,我们可以把 st 的平台的退市的这些股票,他的一个状态我们都取出来啊,我们把它呃这边做了三个变量的负值。好, 然后呢,我们这里做一个呃股票池的一个便利,把这三种状态下的股票全部剔除,将 从这个股票词里面基础,这样的话我们就可以每天只做一些非 st 非亭牌非退市股票的一个交易啊,这就是毕竟真实的交易场景啊 啊,在接下去我们就可以,因为我们做交易肯定需要用大多数都还是需要特别量价的策略,都需要历史数据吗?所以我们也可以在别服确定是拉着这个弹琴处理的环节,我们把数据都准备好,这边有一个函数是 get 黑石锤啊,这就是获取历史数据, 这边呃可乐欧式是一个收盘架,这边是成交量,我们把它取出来,然后进这里进行一个处理啊, 先略过好,通过这边再一个便利,我们把呃停牌的股票啊,通过成交量判断,把历史中 停牌的,呃,停牌,停牌的一些交易数据过滤掉,然后假如,假如非停牌的是,呃,哎呀,这边是进行处理,假如他这个停牌的 非亭牌的是小于十,啊,非亭牌的日期小于十,那我们就把这个股票从股票池里面剔除。啊,好,那通过一个历史亭牌数据的一个过滤,我们就把每一只股票 他的一个历史收,历史收盘架的一个数据,我们存在一个,存在一个全局变量的一个字典里面,这就是在比佛区 excaz。 啊,然后我们再对一个 这个过滤完,那一个股票池进行一个三七,有,你问老师一个设置啊,那我们在盘钱的处理就全部结 数了。好,那也就是说我们在盘点把数据,把我们要交易的股票列表和这些股票所对应的,嗯, 一些历史行情数据我们都已经存储好了,然后我们到了就开始进入盘中运行,也就是说我们计算了一个组组逻辑的一个处理的过程啊, 寒冬运行,寒冬,寒冬堆他这边。是啊,这个函数我们是必须要用, 必须要写,你如果不写呢?可以,如果你到皮肤确定是他的就结束了,那你可以用一个 pass 啊, 你可以直接把它 pass 掉,那就不会运行,但是不会报错,你如果不运行不写这个,看到这场系统是会报错的。啊,好,那这边呢,我们就写了一个简单 那个逻辑啊,今天上传十日均线的股票啊,买入两万元。好,那我们就是对所有的股票进行一个便利啊,做这么一个简单的一个啊,交易逻辑啊处理啊, 然后完了以后我们最后再看一下啊,不是确定按的啊,不是确定按着呢。呃,因人而异,大家如果在盘后希望去做一些统计啊,那可以在这部分做啊,我们这里就做为了失利简单就打印一下当日成交结束以后一个磁场情况啊。 好了,那我们这个四个部分我们就算,呃,四部分就算写完了。然后呢我们看一下啊,看一下这边一样的,就是有一个回测时间和一个 初始资金的基准,然后跟周期,那我们这就是强调一下,如果安日啊,安日,那我们这个策略,他每天是在下午十五点啊, 他会进行一个呃,所有的一个处理啊,所有的一个处理,所以他的盘中是不会有打印的,那也就是说憨豆堆,他,憨豆堆他这个 这个函数,他只会在十五点整,他进行一次运算。好运算我们看一下,那我们这个就是日线回测啊,对,完整框架,那我们就进行一次回测,我们看一下情况,这里可能要有半分钟的运行时间,大家稍等一下。 好了,我们这边已经运行结束了啊,运行结束我们可以看到有日志啊,这边有一个委托的一些日志,然后呢我们都是在 都是在十五点啊,十五点进行一个打印啊,好,这就是在十五点三十分阿布的确定,阿布的确定按的 就是盘后处理,这边有一个我们进行的一个打印,持仓股啊,他的一个列表这里看到我们就买进了粮食股票,那这就是一个整个框架 的一个介绍啊,那这边是日线回测,那我们这边再试一下,假如我们这边调成分钟,那是怎么样呢?啊? 好分钟,我们整个都一样,只是对黑头的他这边进行了一个改动啊,进小小的改动,我们这边就是只会在每天的第一分钟进行一个这样一个逻辑预算, 那我们这边就是需要把它改成分钟了啊,刚才是日线啊,前面的呃,英雄 xlax 跟别说确定是大字,还有 fuss 确定的,我们都没有进行改动啊,我们这边进行一个回测,大家看一下 好了,我们这边可以看到他的一个打印时间就是在九点三十一分啊,那也就是很多的地毯,他是在九点三十一分进行的一次运算处理, 然后到下午啊,到一个十五点三十分他进行了一个啊,不是确定硬的的一个处理啊,所以这样大家就通过这两个案例大家应该能够理解啊,怎么样去? 嗯,写一个日线的策略进行一个回测和一个分钟的一个策略进行回测啊,主要不同点是,呃日这边进行一个周期的选择,以及在黑诺基塔里面进行的一些逻辑的一些处理啊, 那这个视频我们就到此结束。

大家好,本次视频我带大家一起了解一下 pk 的量化平台中关于除权处理的一些方式方法啊。 应该说对于回撤角,对于回撤来说啊,搞清楚一个呃除悬的机制啊,他是非常重要的,否则我们很有可能在啊回撤过程中踩到一些坑啊。 这边我们首先啊了解一下 p 区的一些获取历史数据行情的一些接口啊,这边有个 gat ace 区和 get a price 这两个方法都能够取到历史行情数据啊, 那他们的入餐里面都有一个叫做 fq 的入餐,这个入餐呢就是除全方式啊,一共包含四种,一种是普瑞钱不全,第二 第二种 pose 的后付权啊,第三种是 dy pray 动态前付权,第四种就是 non 不付权啊。前付权跟后付权大家应该都比较理解,他都是按照现在一个试点往前去推啊,一个是用前付权因子,一个是用后付权因子获取到的数据。 那动态前夫拳呢?他跟前夫拳是相对应的一种啊,一种方式啊,他是站在回侧日的当天 啊,以这之回测日之前的一些储存因子去计算的一个啊呃去做前付全处理的一个数据,那他对于这之后的储存因子是看不到的,所以他会更贴近一个真实的交易场景。 好,这边我就拿一个股票的做一个例子吧啊,零零零五四幺佛山照明在二零一八年五月十日十一日之后,他 有三次除权,那假如我们取当天的一个五月,二零一八年五月十一日当天,呃,当天去取呃前一天的收盘价的话 啊,我们假如取二零一八年五月十日的收盘价,但是我们在二零一八年五月十一日这一天去取啊, 假如我们是用钱付全取的话,我们啊是在二零二零年十一月份往前所有的储存因子做一个处理之后得到的一个储存价格。那二零如果是弄来钱付全呢? 他在二零一八年十一月十五月十一日之后的两次储存因子他就看不到,所以他是站在二零一八年五月十一日这一天啊,往前去做钱付全计算,得到了二零一八年五月十日的数据啊,所以啊,动态钱付全拿到 出去肯定会比钱不全拿到数据,取出来数据他会价格会更高,因为每一次出钱都会让价格变变低嘛。啊,所以钱不全跟动态钱不全他会对于一些不同场景的计算他会有影响,那最大的影响就是 按照价格因子来做策略的时候,因为价格策略呃,他是按照,比如说我们是拿一个呃,就是大于多少价格我们去进行 啊,选入股票池,如果低于某个价格,我们就不加入股票池的话,那你这个潜伏全跟动态潜空军就会不一样了。那如果是你是按照一个价格时间序列 去进行一些计算的话,那其实问题不大,因为他们都是价,每天收寒价之间只是一个比例关系啊,这道问题不大好啊,说完这一些呢,那我们就是第一点跟第二 第二点,这个潜伏权跟动态潜伏权的介绍啊,就差不多说完了。第三一点呢,我们介绍一下 data 取 data 这个呃取数据方法啊,除了 get 黑水跟 gat plus, 我们可以取历史数据以外,我们在回射当啊,我们还可以通过这个 data 啊,这个 data 呢,它是放在杭州 data, 这个每日, 哎哎,那个就是每天或者每分钟处理啊,处理交易这个流程啊,这里面啊,在这个接口这个模块里面放的一个啊,呃,每个已订阅股票的一个,呃,当天行情数据的这么一个, 这么一个存储啊,存储期啊低,它里面我们可以取到,如果是按日级别我们去取,就是取到每一天的收盘价,如果按分钟去取的话,就是每一分钟的他的收盘价,那这个数据取出来的他的都不是 负全数据啊,它是一个不负全数据啊,也就是说是一个真实交易场景交易,交易价格啊。那我们第四一点,我们再看一下它的一个回侧框架啊,回侧框架的一个撮合成交的机制,它是不负全的, 也就是说他这个我们整个一个回册里面撮合的啊,他这个机制,他这个基准跟这个得塔,他这个基准他是一致的啊,他的除全基准是一致的啊,都是一个不负全的啊,基准啊。 好,这边简单介绍,完了我们就看一下数据啊,我们打会对,呃,零零零五四幺,这个股票在二零一八年五月十一日出选,我们就取左一天、右一天、三天的数据,我们通过七种 方式把数据取出来,我们来看一下到底到底有哪些不同啊? 这边我们已经取完了,我们就直接来看啊,啊,首先看一下是前付全,不包含当前价啊,也就是我们在六月十号取前三天嘛。呃,五月啊,五月十号取前三天,五月九号,五月八号,五月七日,因为它是前付全,就是按照当下这个价格来取 啊,我们这边交易软件上这边就是用的前付全,那我们这边就是啊,五月我们看到这个价格就是前付全价格,五月啊啊是一致的。好,然后我们看这个,呃 呃,包含当天价啊,也就是说啊,五月十日取,包含当天的一个价格,一共取四根,也就是九七八九十四天啊,那我们在当天补上了一个,呃,五月十一日的,因为我们是前付全取的,所以当天的价格 我们也做了一个储权的啊,钱付权的处理啊,他们的基准还是一致的啊,然后看动态钱付权,动态钱付权我们这边看到他价格就啊就明显比这个要大很多了,因为他只他后面两次储权没有参与到, 所以他取到的是七八九三天他的一个啊,动态的一个小福全的价格啊,然后取了,然后我们取啊,包含当减价,就是把五月十日当天的价格啊,也是 用动态潜伏圈,我们去取啊去取,然后不负全的价格,我们看一下不负全价格七八九。这三天他跟动态潜伏圈是一样的啊, 因为在这一天他还没有啊,没有出圈的情况下,在回撤日这某某一天没有出圈情况下,动态全部全跟不全价格是一样的,是一样的啊,这 这边就完全一样。然后我们看十五月十一日,五月十一日这一天,我们去看啊前付全他的获取数据,获获取数据啊,都是啊,六块多,那基准都是前付全,然后动态前付全这边就有点不一样了,我们看动态前付全取 不包含当前价,也就是说我们相当于取的是历史数据啊,当天以前的历史数据啊,我们并没有对这一天进行除圈处理啊,当动态写不全不包含当前价的情况下,我们不会去做一个除圈处理啊,取到的是跟五月十日这一天回撤他的一个基准式啊,除圈基准是一致的。 那到了,如果我们用了动态潜伏权包含当前价的话,情况就是说我们这一天把五月十一日包含进去了,这时候我们会把取出来数据都用当天的除全因子去算一遍, 所以他的价格就啊变小了啊,变小了。好,然后我们看一个,然后我们来看这个不付全的价格啊,不付全我们不包含的情况下啊,取到的也是一个啊,前一天的数据我们不会去做除全啊。 哦,我们然,然后下一个,我们来看不付全包括当前价不,不付全包括当前价,我们看五月十一日这天的价格已经变小了,因为不付全的数据他是不做任何除权处理的,所以他前面取到的前三天的价格仍然是在当天除权之前计算的价格啊, 所以这里我们就看到有不一样地方了啊,动态潜伏权如果在除圈日当天,我他是可以会,对啊,如果是按处来取的话,他是会把历史数据进行一个除圈处理的,但如果说 你是不把当天的价格包含进去,那渠道的仍然是一个前一天除权方式。呃,除权因子啊,一个基准下渠道数据, 那这里就会有一个情况,就是假如我们一直都是用动态潜伏权去做整个回测去取数据的话,就在这一天五月十一日进行了回,他已经做了一天的 除悬了。那我们当天假如这个数据是在盘前做了,其实我们这种情况,这种包含的情况,其实我这只是举例子,我们真实设计策略的时候是不应该去做包含的,因为你在我们一般都会在早盘去处理数据,早盘你是获取 不到当天数据,所以你这个 q 是不能用的,那我们这里只能取到一个当天没有当天没有除权的数据。我们其实后续接下来我会给大家介绍一个,通过除权因子把这个数据 转换成进行一个计算,转换成这这这三个的价格啊,经过除醛之后的一个价格,把这个啊八块三毛六转变成七块三,这样的一个方法啊,待会我在后面会介绍给大家,这样的话呢就是能够 贴近很真实的交易场景呢,我们就是其实正常情况我们都是用动态全部全数据去取,取完以后我们可以再去识别当天是否出全,如果出全我们就把价格进行一个出全日的转换,然后把它转换之后呢它的一个数据的 啊,出圈基准就跟当天我们用 data 去取的一个,取的一个数据就不复全数据啊,就呃是完全一致了。好,接下去我们看这个当天收盘价啊,当天收盘价就是一个呃七块二毛三啊,就是 不负全的,就不负全的。然后就是啊这边动态前不全进行除全之后的一个价格啊,这三个就是一致了,对,在一起了啊。然后我们看五月十四日,五月十四,十四,因为已经是除全日的后一天了,那这一天我们去前不全仍然是没有任何变化啊,都是 按现在基准往前进行。一个啊,除全了,那动态前复全,我们看他都都已经变成了啊,都已经变成了,呃,五月十一号除全之后的一个基准的节价格啊,因为在五月十四当天来看渠道的往前取历史数据,他已经是 在五月十一已经储存掉了,已经储存掉了啊,啊,这个是啊,不付全的价格啊,不付全价格仍然是啊,五月十一日 他是一个,呃,五月十一日他是一个,呃,除悬日啊,他是一个,然后之前呢?他是没有除悬的,这个没问题, 本次视频的内容就差不多到这里,那本次视频我们对啊数据的一些对比 做了一些讲解。那我们下一个视频呢,会给大家讲解一下如何把啊动态前付全或者前付全数据啊转换成在除权日转换成一个不付全的数据啊?这个转换的方法我们做一下讲解。 好啊,谢谢大家。

大家好,我们在之前的视频中已经介绍过如何去建一个实战型的回侧策略,那本次视频呢,我们会给大家介绍一下如何将回侧型的策略转换成一个交易型的策略。 那我们这次是把一阳川三线这个回测策略,把它转换成一个交易型的策略啊,我们把这个处理的方法给大家做一个介绍啊。 首先我们看一下 initialize 这个模块,这个模块呢,他做一个基准设置跟费率设置呢?这部分内容都没有做改动啊,我们只是在 initialize 这边多了一个 run interval 的进行一个设定,那这个模块呢?它是处理 级别的啊,在我们 p 区的里面做 tik 级别量化处理,有一个 rangelo 跟 tickadata 这两种,那我们这里呢,选择了 rangetable, 它实现的效果是一样的啊, 我们这里面在装英特否里面设置了一个 handle interval 的一个函数,然后我们让他每隔三秒钟进行一次运行。 那我们在回册当中的易烊川三星策略,他是在尾盘进行卖出跟买路啊,我们在实战策略这里做了一个例子,知识啊,是把卖出部分转换成了一个 tt 级别处理,结买路部分仍然是做一个分钟级别的一个处理。 好,接下去我们看一下也,那也就是说我们这个 rangelo 会直行迈出啊。好,我们看一下比佛确定 start, 比如说确定 star, 这边跟回册没有大的不同啊,他主要也就是获取股票值,进行 st 停牌退市的一个处理,然后对历史数据去做一个 啊处理啊,他做一个停牌数据啊, k 线长度的过滤,然后除全数,把数据进行一个除全处理啊,处理完了以后就把一个历史数据,每个股票历史数据通过一个全剧变量的字典给他存储起来啊,在后面的过程 弹出中使用啊,我们在比佛确尼斯大的这边呢,初始画了一个变量,叫做 g 点 first handle data 啊,他也就是呃 handle data 第一次运行的一个控制开关啊,控制开关啊, 这个开关后面有什么用?我们在后面做一个介绍啊啊,在,然后我们就进入一个汉德贝塔啊,刚刚说了,我们把 一阳川县测一阳川三线的策略改造成了一个买路是分钟级别,然后卖出是 t 格级别,所以我们在汉德爹塔里面只做买路部分的执行好,然后我们看在呃 产自利塔的第一分钟,我们做了一个啊股票池的持仓的一个初始化啊,持仓的一个初始化啊, 那我们呃这个为什么要在第一分钟做呢?因为我们在盘前是取不到当天的一个持仓列表的,所以要在啊,要在 第一分钟去处理,去处理啊,然后呢,这个级别我们的一个卖出其实都依赖于这个啊,这个呃股票池,所以我们这个这个级别要在 获取股票池这个处理之后才能去运行啊,才能去运行。所以这边我们就是啊希望啊先运行这个这个部分, 先运行一次 data, 然后再去运行 handle interval 啊啊,因为我们的 handa interval 呢,跟汉德爹他是分现成的啊,其实你也不知道哪一个会先运行, 那我们这个在比货确定十二节里面进行的一个边聊设定,就是这个用啊,啊,当是否的时候啊,是否的时候,那我们就进行一个 说实话,然后把它这个变量制成为去五啊,制成为去五,然后每三十十分钟,呃,到两点五十分,我们去处理一个白方巡啊, 然后我们当啊,当他为去的时候啊,当他不是去的时候呢,我们就返回啊,我们在装因之后就不执行,然后当他为去了,我们就会执行一个卖出啊,这样的话他一个先后关系我们就理清楚了 啊。接下去我们就看一下白方的信用我们是怎么做处理的。在回测当中我们并没有传入 data, 我们而是把 data 变成是做一个全局变量来用, 那这里我们就是另外一种方法,就直接把这个得塔传入进来啊,这两种方法都是可以的啊,都是一个得塔的行情数据啊,我们看一下摆放过去啊,我们这边 啊,主要就是这个 gat by stalk 是获取股票持啊,获取股票持啊,然后这边就是把这个 data 我们传入到这里面,因为会用到啊,我们看一下这个 gat by stalk 是这个函数的处理, 这边他的一个就是易阳川三线各股筛选的一个主逻辑,就在这边进行一个处理,那这里面呢,他的数据获取方法会跟回册有一点不一样,我们这边做一个介绍啊,我们这边看一下获取一个最新价, 好,仍然是用 data 来取 price, 我们没有做改动,但是呢科冷特欧本就是当天的开盘价,我们用了不同的方法取,我们这边直接用了 data 来取数据啊,然后没有用啊,没有用这个 全剧全剧变量字典来存储这个数据的方法。在回册中,我们是在汉州电塔里面第一分钟把开盘价存下来,然后到后面的呃函数中去调取使用啊,因为在交易跟分回册当中,他一个得塔的一个 数据是不一样的啊,得塔中他是每一根 k 线的数据,我们传到得塔里面,但是我们在交易当中他这个得塔呢,取到的是当天的数据,当天的数据也就是跟 snap 校的是一致的,跟 snap 校的是一致的啊, 然后我们取到了以后,接下去就是一个呃一阳穿山线,他一个主主逻辑的处理部分啊,这 个在回册中介绍过,我就在不多啊,这边就不在最数了啊,然后接下去我们就看啊, 就看白方巡的啊。后续部分,我们拿到了股票值,然后呃再去取一个呃可用资金,然后通过一个尺仓,最大尺仓数量进行一个均分,然后我们再做一个 啊,初始啊,涨停价的一个股票处一个过滤啊,处于涨停状态的一个股票过滤里面,我们用仍然用到了地踏数据,所以会把地踏传进去啊,通过这样的方法处理啊,后面就是跟 回测是一样的,我们这边就不在最数了啊,然后进进入到,然后我们这边摆方形啊,介绍了,我们就看一个 cf 啊, cf 方形,那 ci 方形我们放在 handa etopo 下面,我们每三秒进行之处理啊,我们看一下他一个获取数据的方法啊,我们进来以后啊,因为我们这边并没有用到 data 数据,所以我们没有往 da 把 cia 方群里面去传这个 data, 这个啊,入餐啊, 我们去便利一下持仓列表,然后通过 gat snap shot 的方法,我们就去取到每一个股票的 snap shot 信息,因为它是一个字典啊,假如是取到有信息的情况下,我们就去啊,就去取一个,就把它的一个最新价啊,拉丝劈叉这个字段 传给最新价这个变量啊,那如果说啊,这个 snap shot 取不到,我们就跳过便利下一个股票,然后接下去呢?啊,我们假如做一个数据保护,假如等于零,我们 就把它给跳过了啊,好,这边这边我们接下去渠道出去以后就是做一个赛欧过程的一个处理,赛欧过程的处理啊,这个逻辑也在回射中说过,我们就这边就不再重复了啊,那 啊,这边主要的一个内容就是这些关啊,回册跟交易中的一些一同点,这边也做了一些介绍啊,希望大家能够。啊,通过这个例子呢 啊,大家能够了解到怎么样去把回测改造成一个啊,可以做实战交易的一个策略啊, 中间一些需要改造的点是哪一些啊?包括分钟级别的啊,交易是怎么改造的? t 个级别的过程是怎么改造的啊?那主要也就是说这一些。好,那本次视频的内容就到此为止,谢谢大家。

今天分享一下因子这写法,前面都是一样的,就不追数了。这里定了一个简单一段平均的因子,有两个参数,一个是 window 等于二十, 然后 k x 是 a close 也是。也就是说对收盘价进行二十日简单移动平均。 然后前面都前面讲过了,就不追数。然后这个就是计算因子的值,然后打印出来。 这里就是打印的结果,他就会多一列。这是二十的移动平均。让我们看一下他是怎么实现的。 呃,像这个实现的方法,前面在 pandas 因子里面讲过了,然后再简单问一下吧。这是 建议两个差数。这是要括号人的名字,这个是把括号的名字返回。这个是他最短需要多少长度,那么就是这个就是计算。 首先这数据的长度是最小数的长度。加一个断言。 这里需要指出的是在部署代码中扫余额设置,不然容易有策略中断的风险。都用 try catch, 这两个就用 try 啊, try except, 用 try except 补货。 这时候取到这一列,然后进行按窗口黄龙平均,然后再把结果复原。这一列如果有问题的话就会直接返回 sample。 大概就是这样。这里就分析到这里。