在巨宽平台编写了策略,我想提升回测效果要怎么办?无论一个量化策略有多优秀,我们都希望能进一步提升他的收益率。 今天和大家分享在巨宽平台做提升的方法,简单而且实用。我先随便调一个巨宽社区中大神共享出来的策略实操来举例,这是一个名为高古稀低杠杆、小四肢轮动的策略,把它磕拢进来,进入编写页面,稍加修改 好,我们运行回测,得到一个回测报告。在报告中可以看见,这个策略在近三年的收益率为百分之五百零四。我们不纠结策略是否含有未来函数,先看看能否在此基础上进一步做策略优化。 接下来,我对策略建立了一个进化模型,并在代码中调用了这个进化模型,这是新的回测效果,可以看到收益率来到了百分之八百八十, 这是效果的对比。左边是原始策略,右边是我调用进化模型后的策略效果,收益率提升了百分之三百七十六,代价是减少了百分之三十四的股票,因为这百分之三十四的股票中的一部分是会带来负收益的。 那这是怎么做到的呢?首先,进化模型不是简单的将负收益的股票踢走,否则就是自欺欺人而已。它的原理是这样, 一、根据回测出来的股票明细表,上传给一个负责建立模型的运算服务。二、模型根据根据一个项量算法,翻阅这批股票,再买入当天的因子,其中有好的因子,也有坏的因子。三、算法提取出共性最大的好因子,将他们画像组合成模型专用的因子库。 四、最后对每只股票的买点根据因子库做重新给评估,符合要求的留下,否则剔除。具体来说,我会 会建立一个进化模型,然后导出巨宽平台回测后的股票明细表,将他们喂养给这个模型。模型开始根据每个股票在买入当天的特征做因子交集运算,得到结果后,模型就建立成功了。 我们可以通过一个 api 来调用模型成果,在巨宽的策略代码中拉到选择股票买入的环节调用借口。例如告诉模型我想在三月十七日买入六零零四六二这只股,模型则对应返回 yes no 两种应答结果, 也可以同时传入多支股票。我们简单总结一下,我的模型有三个原则,一、不影响原有策略中的业务代码。二、用 api 接口调用,直接返回匹配结果。三、模型性格根据自己需要可在保守到激进中灵活调整。好了,你学会了吗?
粉丝199获赞310

大家好,我是 python 亮化交易的老湾,我们这一系列是介绍亮化交易平台,首先要介绍的是巨关,这个是大家比较熟悉的一个亮化交易平台, 我们怎么评价这个巨宽呢?先用一个六角形的一个评估图来看一下这个巨宽在各方面的能力是怎么样子,包括你需不需要编程能力,或者是你需不需要下载这个软件,还有如果你要做实盘的话,巨宽能不能符合你实盘的需求, 做量化交易肯定需要数据的支持。巨宽的数据能力是怎么样子,我们待会看一下。另外我们也会了解一下 客服的社群,他的知识度丰富丰富,如果有个社群或者是一个聊天群的话,跟不同的量化交易的朋友在交流上,不管策略或者是编辑环境上都能够得到比较大的支持。另外的话就是巨宽的交易品种有哪些,我们从这几个维度来评估一下巨宽他 的丰富度是怎么样子。我得先介绍一下巨宽的数据啊,巨宽的数据接口是非常丰富的,从股票上面的数据接口包括了财务数据或是 k 线,或者是从网面的数据, 这些个股方面的数据是非常丰富的。另外是有板块方面的数据,总可以找出不同板块的股票,你在做一些策交易策略的时候,这些数据能够支持你。那另外就是宏观的数据,还有指数上方面的数据。那如果你要做一些交易品种是齐货或者是齐全的话,或者是基金, 场内基金或者场外基金,这些都是很丰富。另外他有提供你的因子库,我们看一下他的数据库,我们看他的因子,他有提供各种指标,那指标是你直接可以去使用的财务指标或者是技术指标点进行一些回测,你可以知道这些数据他的分布情况是怎么样子,所以你对这些数据指标会比较有感觉。 巨宽的边形环境来看的话,我们先看一下之前在拍摄的边形环境这方面,因为我之前用的巨宽会比较多一点,所以巨宽 是我课堂的一个教学课程,他有分成旧环境啊。另外一个是回测环境,我们先看一下研究环境,研究环境是你在学习一些接口,或者想要测试一些数据 都是直接可以使用的,那是我在课堂上我自己的拍的电话交易课堂上面的一个范本,这是一个完整的 k 完整的策略代码。怎么去写成一个完整策略代码?因为他有数据接口,还有一些测试的 下单接口,所以你可以慢慢的写出一个比较完整的电话交易交易代码。如果你写成了一个电话交易代码的话,你可以在回测环境里面策略列表里面去运行一下策略环境,你可以每天可以回测一个小时,但如果你是跑个 呃一个月,两个月还行,但如果你跑个一年的话,一个小时真的是不够用。所以呢,这个同学在使用免费上,或者是你要买他的回测时间数,那大家可以考虑一下,如果你是真的要深入挖掘使用这些数据的话,要买他的会员,如果你只是想测试一下或者是学习的话, 拍拍审在句宽上面大概熟悉一下回车环境,学习好之后呢,再去找可以支持实盘的,不管是 p 出来 q and d 或者一串句宽 或者是绝经这些都可以实盘,而且它的数据你可以回测的时间会比较久一点,所以这是搭配使用的。这款对于基础的新手同学来说是非常友善。我们看一下社区支持,这是我觉得它比较特别的一个点了, 因为最快已经很久了,所以上面会有很多策略分享,可以在学习环境上面的话,同学可以再看看这些策略,看一下范例和他的社区里面有一些教学文章 些都有些犯例,或者是跟你解释这些策略的构成原因或怎么编写。但这个对于一般的新同学来说,如果你没有一些量化背景,或者不知道什么是编写一些策略,或者是你不知道怎么构建一些音质的话,这些参考 文档或者策略都是很很充足的。对于学习电话教育的同学来说,这个社群的支持率都是相当大的。 那我们再看一下他实盘部分,我要开巨宽的实盘的话要跟第一创业合作,不过第一创业我自己有开过,因为 巨宽跟低创业的巨宽其实是完全不同的版本。在巨宽上面,如果你有写一些回测策略,你要搬到一创巨宽上面是存在问题的,你要需要改写,所以在实盘的实用性上面,我个人觉得是有些难度的。下载安装部分,这是我对一些新手同学会比较建议去评估的。一点是因为巨宽他是直接在网页上 上面编辑的,所以你在任何时候,你只要笔记本甚至手机一开,你就可以去编写你的策略或者是回测。这样的电话交易软件的话,通常是要安装软件的,在一些软件上面进行拍摄,首先呢,你得下载那个安装软件,这个 网页上面编辑,对一般同学来说要接触拍摄量化交易使用,使用性是比较高的,你在任何一个网页都可以开了,你也不用去找任何的链接,因为很多同学会跟我要一些 petra qmt 的下载链接,不是不给,是因为没有账号, 这个巨宽就很完美的解决这个问题。我们回到这个六边形的评估表里面来看,首先是关于评估能力部分,我个人给他的是三颗星,因为编程能力这个是其实是一刀两面, 如果你的编程能力要求的越低,通常你的策略能够写的复杂程度就越低,所以呢,三颗星一方面是他能够提供的, 对于新手同学来说,对你的编程能力是有一定的要求,你必须会懂拍摄,但是他没有办法写太复杂的策略,这是对于班 编程量化交易来说,那是长板,一般也是短板。下载安装的部分,因为他是在网页上运行的,所以我个人给他最高分是五颗星,你任何一个网页上开了就行,他就可以支持你在网页上运行编写或者是回撤。 关于实盘交通开通部分,因为他目前只有跟一家券商在配合,我自己试用过的话,可能有一些呃弯路或者坑要走的,所以我个人会给他比较低的是一颗星的部分, 坏事数据的知识部分,我给他是五颗星,因为数据他是非常丰富,而且最重要是他是免费的,如果你脱离这个平台,自己要构建这么大的数据库的话,一方面你可能要去买,花钱去买,这方面你可能自己要去学爬虫。用数据这个接口来说,我想去宽 给的是非常充分的。那社群服务方面,我个人给他四颗心,因为在社群讨论上或者策略分享上面,他是非常丰富,积累这么多年的,而且他自己已经成立了私募团队, 这群的支持力度是相当大的,唯一的可惜度是五,他是没有 qq 群或者是微信群里,没办法在群里面跟同学去讨论,这是他唯一的短板。教育品种的部分,因为股票起货齐全, 一方面对于一般同学来说是够的,但是如果你要做比较其他的,加上他的实盘部分是不充分支持,你可以去交进交易的,所以在实盘部分给他扣一些分,所以我们总分来看的话, 他的长板是对于你下载安装或者是数据支持来说,或者是你要学习一些策略来说,这是非常友善。那这个角度是从 新同学接触量化交易来说是这样评论,那如果说你本身就已经很熟悉,或者甚至已经开实盘交易的话,对于自己的评估需求了还是最重要核心。那我们今天的巨宽先介绍这边,如果你喜欢我的视频的话,投币点赞加关注一件三点,下次见喽,拜拜。

给大家分享一巨宽一位用户分享的策略,那我回测了一下他二零二二年的回测收益非常非常的高,那么 我目前呢?还是没有时间去看,原码就是说,但是我估计他是有一些未来函数在里面,但是在基于这个策略,我可以把他的信号之后去看看他的年华到底有没有 真的那么高,因为他的年华回测出来,真的回测下来真的很夸张,有三百分之三千多,我靠,绝了。

好,我们接下来讲一个中小盘策略的一个量化模型,那么这个呢,是基于我们的一个聚合平台。 好,那么这个呢,我们是测试数据,是从二零一四年到二零二六年三月六号,那么这整个数据期间,市场经过了很多次的大起大落 啊,有横盘,有下跌,有上涨,那么这个呢数据啊,那么这个期间的数据呢,具有代表性。那我们来看一下我们这个体系,这是一个整个的一个收益策略,这是积分收益,积分收益对接的是沪深三百, 沪深三百。好,那么这个地方呢,这个体系我们来看一下他的其他的一个数据情况,我们来看这 看这个地方啊,来,我们在这一方呢,有一个啊,胜率啊,然后还有一个盈亏比,那么对于一个模型而言,比较重要的是胜率和盈亏比,这两者是缺一不可的 啊,有的模型甚至低,但是呢盈亏比很高哎,那也能够走出向上的一个曲线,对吧?我们来看一下他整个曲线的话呢,是非常的一个漂亮啊,是稳稳的,是往上面去走的,直到我们这个二六年三月六号, 对吧?哎,支持我们这个模型。好,这个模型的话呢,大家要注意一下啊,他这一方呢有一个问题,一个最大回撤,哎,这个地方最大回撤比较大,我们可以看一下这个图形上面给了一个东西,在哪里呢?是在这个地方 啊,这一方的话呢,他是二零一五年啊,是雄赳赳发生的啊,那么这个能够理解,那么在其他情况下,我们看曲线图都没有发生过大幅度回撤的情况,说明他整体上呢 是稳健的,对吧?我们通过下图比例去看呢,也是超过一啊,那么这个模型是 ok 的, 是 ok 的 啊,那么这个东西呢,我为什么要去讲他呢?就是因为我们很多同学去理解这个市场的时候呢,他喜欢这里看一下,那里看一下,而他们最喜欢看的是这种, 但是呢,任何模式都是有利有弊,他是盈亏同源的,他有这个,但是呢他也有这个这样的一面,利弊是相随的, 所以如果你只看一面,你是永远走不出来的。但是对于任何模型而言,他都有上也有下,我们不知道他到底能不能行, 对吧?我们就得看他这个底层逻辑行不行。但是呢,我们散户啊,大多数那个认知水平都没有办法去判断一个模型的底层逻辑到底是不是 ok 的, 对吧?所以我们干嘛?我们这个圈子干嘛?我先给你看到这样一条曲线,然后呢我再去给你讲他的一个底层逻辑,那么在这个曲线里面,你就能去理解他一个上下了,我们要看到好的一面,上涨一面,也要干嘛也要看他回调的一面,任何模式都有这两个面, 所以呢,我们干嘛先看到一个长期的增长曲线,然后呢我们再去拆解他,哎,让你呢去学到,去理解到事物发展的一个本质,这样的话呢,你才能提高你这个认知, 所以我们是干嘛呢?哎,基于这个巨宽量化平台,大家注意一下,我们有几个点,第一,拒绝机器学习,因为机器学习会有一个过你和的一个情况出现,拒绝未来数据啊,我们会现场去拆解逻辑啊,明天下午 我们干嘛把逻辑一点一点拆解,从代码从这个最开始到结束,他的逻辑是什么?用了什么数据,对吧?我们是一个一个去拆解,并且呢我们通过通达性去复现他出来,写成一个战法, 让通达信去复现出来,我们可以通过通达信的一个指标,再加上人工的方式,哎,可以呢,把这个体系的一个买卖逻辑给提炼出来,我们可以人工去运行它,所以呢我们明天也能干嘛?哎,去弄一个战法出来, 好,所以说逻辑才能穿越牛熊,我们先看数据,是先让你看到答案,然后呢我们再去把它的逻辑给提炼出来,这样的话才是对你最有帮助的,这也是我们要给大家呈现出来的啊,好,然后这里面呢,在这个地方啊,这里 啊,大家可以去看一下,对吧?明天下午啊,明天下午我们就正式开讲,把它逻辑都拆解,然后呢怎么通过通达信去复现它啊?这个怎么那个筛选,怎么那个介入,然后呢?怎么一个出局, 对吧?哎,把它做一个整个的一个文档出来。好,大家注意一下,好,我们这个数据 啊,这地方哎都很清楚,对吧?有日期啊,有这个策略收益也有这个基准,基准是基于沪深三板,还有其他的一些评价体系。好吧,朋友们,我们就明天下午见啊,记得点赞收藏加关注。

今天分享一下巨宽,首先我为什么会选择巨宽?一是他是网页端,他不像 betrayed 绝经,他依赖 pc, 而且只能是 windows, 对我们这些麦克用户不太友好。 另一方面就是他的数据更精确啊,也更丰富,这是为什么?选择去框,然后我们按照 battle 的一些思路,我们看看回测参数的,我们先看看回测参数的设置啊,然后再看看 security, 我们先看回测参数的设置有哪些回测参数, 这是他的 api, 我们这些都会考虑到。首先是设置基准,然后设置佣金印花税,设置划点, 是否考虑动态负全真实价格模式,这个就体现了他的数据更加精确。如果我们直接用二零二二年六月份看以前的话,他的数据是不真实的, 然后用动态付权的话,比如说现在二零二二年六月一号,然后你在二零二二年一月一号,到时候啊,怎么说呢?他那点的话就不会受现在付权的影响。 然后这个是设置成交量的比例,然后是否开启盘口撮合模式,只对模拟有效。 然后我搭了一个基本的一个回侧框架,听说这里有回侧参数, 右边的话是那个配置文件,比如说基准,就是呼声三百,然后涉及到那个印花,这个是设置基准 啊,左边是设置基准,设置硬化税的佣金,然后他的一些参数的话就在这,比如说开开餐,没有那个硬化税,嗯,平昌的话就有,股票的话就是卖出, 然后开餐的佣金的话是万三,卖出的佣金也是万三,然后这一次这个手续费是五块钱。 然后再然后就是设置滑点,滑点的话这里他这里设置的。是啊,固定滑点,然后这里是,嗯,没有滑点零,这把滑点也设置了。然后 use real prize all the warning ratio, you can measure with all the book local level 啊,就配置好了。这些其实基本上都是固定下来的,然后所以这部分也是固定的, 这样可以剪掉。然后再还有一个就是 set period, 就是周期函数,一般的话也是比较固定的,这个开盘每天的开盘前运行一个函数,开盘的时候运行一个函数,以及收盘后运行一个函数, 然后他运行的函数名是 b fourmake open, 他的时间点的话也是在这里设置的 b four open, 他叫等价于九点,然后他参考的证券代码的话就跟变成 mark 一样,他的作用他只做种类区分,就是那 个交约时间的,就是让系统知道你的交约时间,比如说期货,有些是夜盘,然后股票的话就是九点半到是十五点, 然后开盘时运行的话,那他的时间也是,他就是 open, 等于九点半。他的参考的,他的参考的 security 也是 benchmark 啊,这里有个 case ratio 就是,嗯,最高有几层仓位,保留一层现金的话就是九层仓位,现在还没用到。 然后这是盘后的一个,就是 up the close, 就是十五点三十时候运行的,嗯,这个参数文件就是为了更好的回册用的,然后他的数据更精 正确,嗯,我们可以看一下要点一下边音运行, 我们可以看十九号啊,十九号 是九号的话,你看啊十八号还是五十八,然后十九号就变成十九,这是从从二十号看十九号的数据就变成三十五了,这个就进行了一个潜伏权, 这个股票的话他是三零零八零六,如果我们打开手段放财富,你魏富强看到的十八号是这个,然后是 小号,嗯,也会是这个,嗯,这个怎么说呢?就是你如果用从现在开始用前夫传去看的话,是小号的指,他是二十多块钱, 那就是太所以回撤的时候就已经失踪了。就是我们用之前那个 bike 吹的那一套的话,然后动态潜伏船的话,他就会保持当时真实的价格,就算是数据更加精确体现在这里, 有兴趣的可以看一下三零零八零六,五月十八号到五月十九号。 然后这里再讲一下下单函数吧,下单函数一般有四个,常用的四个,然后还有一个私家单和限价单。 常用的下单还是一般有这么四个,一个是按股数下单,一个是下单达到目标股数,一个是按价值下单,一个是下单达到价值金额,其实都很好理解。 然后还有一个试驾单和现价单的区别,比如说这里是 markey all the style, 这是试试驾单,看最后他是六月一号,是三十块五, 这是四周单成交的,这是六月一号的开盘价成交的三零零八六六。 如果我们以限价单成交的话,我们再运行一下这个 prise, 它是五百 三十一号的收盘价,他就会是三十块零五,五月三十一号的收盘价。 然后这些教都是符合语气的,今天就分享到这里。

好,今天给大家介绍一款可能是最好用的量化回测框架 backtrade 啊,可以实现多资产多策略啊,或者是多周期的这样一个策略,回测关键还是开边的。 在发展到今天,我们知道其实线上的话其实有很多非常成熟的这种 开源平台,里面包含了框架社区啊,啊,像是 vpi, 或者是很多这个什么局框啊等等等等,非常多的这种平台,但是有的时候我们可能出于这样那样的原因,还是希望说本地部署一个属于自己的这个会测的一个工具, 对吧?那么呃,可能,呃知名度比较高的这个 back trader 啊, back test 和 supply。 那 back back test 呢?这个东西很多年前以前用过啊,我印象中是 非常简单好用的啊,但是可能功能上不是很完善。然后 zpi 呢?可能如果你在国外的话,可能会用的比较多,然后它支持实盘会比较强。然后 bacterid 呢?我认为它的一个优点很多,对吧?多资产多策略啊,甚至可以多周期,然后关键还是开源的, 对吧?然后还会很稳定啊,其实稳定性这一点很关键,然后对于主流的一些库都有一个不错的支持。然后你要说 backtrade 的缺点呢啊,其实也有两个,一个是对于实拍的支持比较弱,对,他可能支持部分的国外的平台啊,国内是没有的。 然后呃第二个呢,如果你的回测的数据量比较庞大呃,比如说股票大几千支股票做一些呃频率稍微高一点的这种,这种策略的回测可能就会比较吃力了 啊,但是我们期货不管这么多,对吧?一共几十个品种啊,所以无所谓,不影响。好,那么我们接下来开始一个正式的介绍,然后里面会有些小技巧,可能小坑,但会给大家特别注意一下,应该说能够帮你审审很长时间啊,因为有些问题我确实也搞了很久。 那么首先这是官方文档啊,你有功夫最好是这个一个都看一下,然后他的一个速栏,这 quick guide 里面是大致介绍了整个流程。好吧,你有时间可以每每个都看一下,只不过他你们可能有些语法比较老,对吧?可能影响你的阅读效率啊,但是,呃,这个 有功夫的都看一遍,肯定是比较好的。那么当然在我们这边给你简单介绍一下一些简单的不太复杂的一些策略啊,能够让你实现一个快速的上手啊,是没问题的。好吧, 所以我们直接开始,那么其实对于一个量化回测框架来讲,其实比较重要的是他的数据和策略的 编写,对吧?最核心的肯定是策略这边写,那我们待会会重点介绍。我们先介绍一下整个大致流程啊,首先你要去这个导入一些库啊,都是常规库,只不过这里要特别提一下这个 constrats 啊,一定要一定要用这个,但对于你结果的一个展示非常重要。 好吧,那个这这这个点呢,我待会会讲,为什么非常重要?因为我之前踩了一个坑。好,那么他的整个流程先看一下,对吧?其实他的一个核心就是他的一个 server 啊,这个西域里面的一个大脑,对吧?你要先定义一个这个 server, 然后去把数据喂给他, 那么数据的话会有一定的格式啊,我待会再讲。他为什么说之前说的一个资产呢?比如说他,你这里只要可以 他二对他三都可以,然后取名这个,这个铁矿啊,可以多资产一起搞。那么如果说你是股票的话,对吧? 这可能是这个几千个也都可以,当然你写法上要注意一下,但我这个是笨办法。你,然后这里策略也是一样,对吧?你,你这个策略是一个类啊,你 plus 定义好之后啊,可以有多个的策略可以同时加载啊,啊,都是没问题的。那么最后 一个分析器啊,一个结果的分析, analyzer, analyzer 的话,这里啊,这个是内置的。好吧,你直接去读入好了,跟我们后面的这个 constraints 会有一个结合 啊,然后这里定义你一个初始的一个资金到我们这里先用一百万或者多少都可以,这些都是不重要啊,这些都不重要。然后一个 commission, 你的一个佣金, 对吧?呃,手续费是这个千二啊,或者是你根据自己的实际情况来。对,最后把 resorts 去保存到你这个啊,让让让,他跑就可以了,好吧。然后最后是一个分析器啊,最后一个结果的分析器。好,那么我们最后再讲 好,那么整个流程啊,非常简单,对吧?定义好你的这个策略,这个大脑,然后把数据位给他,把策略 写好。策略以后啊,喂进去,然后再定一些。这个啊,相对来讲没那么重要的,你出出使资金啊,你的这个 broker, 这 commission 啊,对吧?然后就跑就好了,然后把结果存进去 啊,那么我们先演示一遍效果,好吧 好吧,这是一个以这个军线策略为例啊,应该大概就是上坡买啊,上坡买的这样一个策略啊。这个,呃,从它内置的这个 plot 里面呢?其实我们 已经能够得到一些信息了,比如说你的整个资产的一些运行情况,对吧?蓝线是你的现金,然后下面这个值应该是你的一个资资产的一个价值, 好吧?比如说,呃,这个策略是螺纹,对吧?这这个买,买了螺纹之后,你的一部分资产会变成这个,呃,螺纹。 然后第二个是你每笔交易的一个,是啊,盈利还是亏损的一个情况分布。那么第三个是在图 k 线上,或者说图形上,对吧?这个图形你可以设置它是这个 candlesty, 是这个 k 线图还是只是一个线?好吧,那我们这里粗粗看一下,就用线就可以了啊,包括这里你可以细细看一些指标,当然他这个指标有一点需要注意,他是一个外国人思维,对吧?红色是空, 绿色是多啊。然后其实我在设置里面去看文档看了很久,说实话没找到怎么调这个箭头啊,所以我们只能去适应他这个这这这个这这这样一个展示的方式。好吧,那我们接下来有三个重点,一个重点是贼塔,对吧?怎么 把数据喂给他?第二个重点是这个 stretch 的东西可能会讲的稍微多一点点。然后第三个是这个结果演示啊,稍微提两句。那么第一个他对于数据的支持其实是比较丰富的,那有很多种方法都可以导入数据,那么我们习惯上可能是用 pandas data, 对吧?就是你先把这个你的数据导入进来之后做一些处理,然后再喂给他,那么你也可以去,呃,你也可以去这个直接 csv, 可以可以,直接导。 呃,应该是未数据的时候,你看未数据的时候,这里是 btfed pennies data 啊,你可以这个也可以用 csv data 也是可以的啊。当然如果你在国外的,可能是一些养护的数据啊,都可以,它对于新浪数据可能是不支持的 啊,所以我印象中是不支持新浪数据的,但是我们一般其实还是会在本地做数据,对吧?因为无论是 cp, csp, 还是你直接去导到那个 pentas 里面,好吧,这里有个点需要注意的是,对吧?这个是官方文档上写的,你的字段的 命名要符合 backtrade 的要求,就一定是 open o h l a c 格式,对吧? open 就是 open close to close, 嗨就嗨, low 就 low, volume 就 volume, open interest 就 open interest。 那么这里有两个点需要注意的是,一个是,呃,你的命名不是不能错的,但这个持仓量我印象中是有一横的,我一开始可能把这句语句都删了。对,所以你要 renam 一下,把这个,呃,如果你的格式的名字不对的话,可能会有一些这样的问题啊。 open inters 当中你的持仓量当中是没有一杠的, 没有,下面那个杠是连起来的。那么同时第二点,你的这个,你的这个 index 啊,是要做到是一个时间的日期的啊,所以你要稍微转换一下,不像我们这个,其实输入的时候这个日期,其实 大家看其实是这个这这这个这个这个这个 star 格式的,对吧?你要把它改成这个呃时间格式的啊,是要稍微注意一下,完成了这一步,让你的你的数据完成到这一步,展示出来是这个样子,那基本上就 ok 了啊,你可以在呃,你可以直接把数据位给他来,已经没问题了,就不会报错了。那就期货的六个关键数据, h, o, l, c 和这个 volume 和这个 open interest。 那么需要注意的是,如果你要有一些自定义的一些 一些这个这个大做做量化的情况下说这个 feature 或者是 variable, 对吧?或者我们简单讲,你要自定义的一列,比如说 a 列,你要等于一好了,对吧?那么这些自定义的 这个 feature 你要去导入的话啊,需要去做一个小小的改变,他这个支持也是比较好的,你只要自先自定一个这个呃类,比如说我这里叫 it feature, 然后去继承这个他的一个 pandas data 的一个 这个这个这个类就可以了啊,你你的这个行名字,对吧?比如说这个我这里上面是 a, 那么你这里要就要写 a, 好吧?然后这个 powermes 你在第几列一定要写清楚,那比如说我这里是一二三四五六七,到第七列,这里用的是那个 index 的缩影,好吧? 然后注意这里一定要有逗号啊,这里一定要有逗号,没有逗号会报错。好,完成了这个时候你去在下一步之前给大家展示位数据那一步啊,直接用你这个克拉斯就好了,因为他继承了这个 pandas data 的,好吧?这样的话,你的自己的一个自定义的 feature 或者是 arrival 都可以读到这个这个 backtrade 里面, 好吧,这是一个呃小技巧啊,之前其实我也有一段时间没没没搞明白,怎么去把你自定义的一些这个需求给搞进去,好吧,这是第一个点。 好,接下来我们开始一个策略的一个部分,那策略部分里面,你的策略里面肯定会有这样那个参数,对吧?他的策略写法啊,这个也非常简单,直接把策略的名字和参数具体数字写进就可以了,还是别忘了 千万别忘了这个逗号啊,没有回报错,那么如果你要多个参数的话,就继续往下写好了啊,这个括号里面继续往下写啊,只是别忘了最后一个逗号,那么他对于参数调优的支持也是比较好的,对吧?如果你有很多的 呃这个参数,比如说你均线要在五到三十之间找一个最优的,那么他也会有一个自己的写法啊,不用你这个非常麻烦的去去去去再去做循环了。所以这里我们就先找一个这个以实物为例啊,给大家做个例子。 然后第一步是要初始化,其实理解这个框架非常简单。为为为什么说他比较好的地方呢?就是他非常的符合的我们的直觉,你只要理解他里面有一个 line 的概念, 他一个烂是什么呢?一个烂其实就是一个,但从数据的角度上其实他就是一列,但就像这个,我们这里这个 date, 对吧?就是一列。然后你的这个新增的自自定义的一个 feature, 这个 a 就是一个 line 啊,每一个 line 就是一个列啊,就是字如其意啊,就就名字是字如啊。这个, 呃。一如其名。好吧。啊理解了这个,那我们看他你要自定一个 self 点呃,假如初始化,初始化的时候你的一个这个收收盘架到 self 点 self 就是我们这个类嘛,点 datas, datas 零啊,就是我们未进去的一个数据点 close 啊,写法也和其实 pandas 差不多。 对啊,这些其实都是也是官方文档里有的。然后你的一些,呃需要用到的一些东西啊,这个 order 啊, 哦的你的买入卖家,其实这这些也不是太关键,对吧?有些你用到的话你可能要出手换下,不用到也就不用了。然后关于指标的话,这里他做的非常好的,是支持的这个功能非常多。对,首先他支持贴力,贴力的话里面有很多非常常用的一些技术指标,你可以直接用。 好吧,写法也其实也适合这个类似的啊,非常简单,把数据喂给他就好,只是说有些自定义的一些 feature, 你要喂进去的话,呃,但是贴定本里面其实没有什么自定义的,用不到什么自定义的一些 feature, 对吧?只就是 o h i c 格式,再加上这个成交量和值套,但你要喂的话,对吧?比如说你要去去去 就是这个最高价,对吧?和这个 colours 写法是一样的,对吧?这个是和 panas 写法是一样的,就就稍微改一下就可以了。 那么另外一个是你和自定义的指标对,写法很简单,直接去这个这个官方文档 在 indicate 里面啊,直接复制一下你就知道是怎么搞了。那么这是第一种方法,第二种方法是你自定一些指标,你可以先把它这个呃离散化,然后直接打上标签。呃,比如说我,我比如假设说 随便说有个策略是当收盘价大于四千五的时候,那我去触发一个条件去买或者卖啊,那我就可以直接把这个, 我就可以直接把这个触发器啊这个 feature 离散化之后,对吧?变成一个触发器,然后呃直接标记到我的原始数据里面,对,然后我再把这个 trigger 这一列呃加到 我的鱼,呃,用我刚才所说的一个去自定义 feature 东西加进去, 是吧?然后我读数据的时候包都把它读进去,那么我这里就会有一个 trigger 了,明白了没有?那么 那么接下来我去做一些策略的时候啊,我只要判断这个缺个一等于一,那我就去参与市场, 但或者说我可以定义更多的这个出发器,这个二三也好,对吧?到了之后一旦到这个数值判断等于一, 那我就入场或者离场啊,这这是我比较喜欢的方式啊,因为这样非常的简单清晰,而且可以把这个那些思路是独立在框架之外啊,可能有的时候会比较清晰点,因为所有东西你都写在框架里面的话啊,可能会有些乱, 好吧。那么剩下的这些这个 order 啊什么的,这个这个呃 order 的一些状态啊,如果是回测的话啊,有的时候会用到啊,但是你不用到,你就不用去定义,也就不用管。好吧。那么啊指标 这个讲到这里,然后它这里有一个 self 点 log 啊,就是输出一些屏幕上的一些,呃,输出 啊,这个东西呢,其实啊不太重要,说实话不太重要,但是我印象中他这个官方文档里面花了很大的功夫去 去记录这个,这去做这件事情,包括他这个有很多什么 notify order 的的,就是你的订单出发之后一些反馈,可能,可能你做实盘可能用的比较多,但回测的话其实不讲究这个啊,五大所谓,但是你要知道他的一个 大致的这个逻辑,就是能够帮助你实时的输出一些啊,回测的正在进行的一个情况,比如说开仓了会给你一些信息等等等等啊,这个相对来讲没这么重要。然后 next 也是一个需要注意的地方啊,也是它这个核心的, next 是它的一个 呃,是一个叠带器,但他从会从第一行数据开始慢慢的往下读啊,每一个,呃,每往下一步,对,叠带器每往下进一步就是你读一行的数据,那比如说 这里短,这是我的原始数据,他会从二零一零年一月四号开始读啊,每一个 next 之后,你的一个数据就会变成下一行的数据,或者说下一个时间周期的数据。好吧,那么接下来策略的核心部分, 其实这里有两种写法。 no, 那这里是一个官方的写法,如果没有尺操 再判断啊,完满足了你的一个入场条件,对吧?比如说收盘价大于一个均线栏,那你就买啊,这里 size 也可以自定义的啊,你你,你可以把 筷子变成一个,你的自定一个参数都可以,是吧?自定一个参数,在刚才上面讲的这个 powers 里面都可以去设置。 呃,然后如果有直操,对吧?然后这个下穿了,那我们怎么就把它 close 掉?那么当然这里你用 sale 也是可以的 啊,他这个 close 是指平操啊,不管你这个啊方向,那你也可以直接去,因为你之前是掰的嘛,所以你的 close 一定是 sear 的,对吧?这个是这个小细节,咱也不太重要,那么需要注意的是这里有一个 小,呃,也不算技巧,可能是我觉我觉得会比较合理的,是,对吧?其实这么写会比较, 呃,不清晰。那么我认为可能比较清晰的一个写法是直接把它变成一个触 发器,会,这样会比较好啊,你先把你的一个条件或者你开仓平仓那个逻辑变成你那个出发器,或者我这里写的再好一点是开仓的开仓的一个 trigger, 然后接下来你只要判断 这个就可以了,明白了吗?这样的话我觉得会写法上会比较清晰,而且看起来也会比较清晰。那么接下来如果你要改你的逻辑,其实你就可以再改你的这个缺格就可以了,那么接下来也是一样的,对吧?如果是你的对应的所一个平仓逻辑 就是小于嘛,那么再去你的这个平操逻辑啊,就平操这样的话,呃,我认为写法上 和读起来,然后改起来都会比较的,这个方便。好,接下来我们跑一遍啊,看一下这个 结果啊,这个,呃,最终的你的资金量就用 server 点 broker 点 get by 六就可以了啊,可以发现啊,出示一百万啊,反正到最后只有七十九万了。那么他这里有一个他自己的一个比较简易的这个结果的图的一个展示啊,你的,呃 呃有有一定的参考价值,那么接下来就是介绍,呃,你要去分析结果的话,呃,其实他官方文档里面写的是这个 p y four 六这个东西,但是我试了很久老是报错好的,然后试了网上各种方法都都不太行,所以大家一 开始讲了我们要去 pro 的这个 constrats, 用 constress 去看的话啊,去分析结果的话,目前看是没有报错的。好吧,我们先把这个主要是这个 returns 读进去啊,写法这里就直接复制就好了,得到我们的 returns 就是这样一个按照时间来看你的这个收益率,好吧,那么用 constraint 之后,它可以非常方便快速的去输出这个结果。 呃,然后 constraint 呢?它的展示应该是,呃信息就相对刚才那个它自己的一个 protot 的东西就比较多了,但是它在下普比的时候,对吧?有个那个 restophire, 你这个需要可能需要自定一下,它里面内置的可能是零,包括 应该累计收益,对吧?你兑出收益,然后一些收益率的一些,呃,情况分布是吧?还有一些这个滚动的什么夏普比呀,什么什么都有好吧,还有每年的一个 这个这个每年的平均收益的一个统计的最好最差的一些情况,相对来讲就比较呃丰富一点,但每年的一些情况,累积情况和单一的情况, 好吧,然后最大回撤等等,好吧,就这个 constraint 支持是比较好的。虽然说图的话,我看了一下那个 p y four 六可能是更加好看啊,但是那个 如果有人知道这个 pianfolio 该怎么该,该该该怎么搞,对吧?也可以跟我们说一下,反正我是呃各种方法,网上说的各种方法都试了,都没试出 pianfolio 的一个方法,所以后面 用的是 constrains, 而且就一句话就生成了,也是非常的简单方便。好,今天我们的这个 backtrad 就介绍到这里啊,一个流程下来,应该是能够把它的一个最核心的东西,还有一些小坑小技巧呃给讲明白了。然后如果说 啊,有想一起讨论交流的,我们也可以这个继续保持联系啊,交流,好吧。

大家好,我是巨坤的王恒鹏。量化投资呢,在国内发展已经有十来年了,但直到今天为止,我们发现包括我们的投资者、社会大众,甚至一些行业内人士依然对量化呢有比较偏颇的认知。 有的人呢,认为量化一无是处,有的人呢,认为量化无所不能。这种两极分化呢,我们认为很大程度上是由于大家对量化这个新生事物的底层运行机制的缺乏了解所导致的。 对趣宽呢,一直以各种文章在给大家分享量化,接下来呢,我们会尝试通过视频的方式给大家做更多分享, 我们希望帮助大家更加底层的了解量化,更加客观的看待量化,更加科学的投资量化。 所以呢,我们今天分 讲的第一个话题叫做分享一个量化投资的底层运行机制。这个话题的结论呢,总结为一句话,就是相对收益的预测难度要远远低于绝对值预测的预测难度。 那么我们今天探讨的范围呢,是国内当前主流的量化选股策略,比如指数增强。 那么我今天会以一个比喻的方式给大家讲解,比如我们可以把国内 a 股四千多支股票比喻为四千多个学生,我们来预测四千多支股票未来某个时间点的股价, 以及他们所对应的指数点位的绝对值的涨跌。可以比喻为来预测四千多个学生下次考试的成绩,每个人的成绩和他们的平均分。那么大家思考这种绝对值的预测是否容易, 实际上是非常难的,比如四千多个学生下次考试的成绩,他很大程度上受制于非常多的外界因素的影响,比如其中一个因素就是下次试题的难度, 如果下次老师的试题非常难,那么大家的分数都会比较低。相反,如果试题非常容易,那么大家的考分会比较高。 而试题的难度这种外界因素,我们很难提前预知,所以绝对值得预测,难度非常大。而股票市场也是如此, 四千多只股票的股价的涨跌,以及各大指数的涨跌,很大程度上受制于纷繁复杂的各种外界因素的影响,比如俄物战争的发展,比如货币政策的改变,比如疫情的发展等等等等。而这些纷繁复杂的外界因素的变化, 我们同样很难提前预知,也很难量化入魔。所以这种绝对值的预测是非常之难的。这种绝对值预测的难度,其实在业界也有广泛的共识。 比如在巴菲特二零二零年的全球投资者大会上,他提出,他说,或许我有偏见,但我不认为有谁可以准确的预测明天、下周、下个月,甚至明年市场将会怎样的预言。 相比这种绝对值得预测相对收益的预测,难度要低很多。 我们再说回四千多个学生,尽管我们很难知道下次考试每个人的绝对分数,但我们很容易可以预测,在过往一段时间考试成绩一直很好的学生,在下次考 考试里面,他的排名应该比较靠前。相反,过往考试比较差的学生,在下次的考试成绩也相对更差。而股票市场也是如此, 再逛一段时间,如果四千多只股票里面有几百只股票在基本面没有问题的情况下,因为某些机构或资金的调仓卖出,导致这一类股票的价格有所超跌,或者说低于了短周期的合理价格。 那么从价格回归价值的角度,在未来一段时间,不管面临相同的、更好的还是更差的行情, 这一类更便宜超跌的股票往往他的涨幅更大,或者说未来一段时间的表现相对更优。而相反,那些没有超跌的,没有更低价格的股票,在未来一段时间的表现相对更差。而且这些规律我们是可以 通过历史数据来总结的,他不太受制于刚才所提到的未来那些纷繁复杂的变化的外界因素的影响。也就是说,未来一段时间,不管指数是涨是跌,这些超跌的、更便宜的股票都会大概率表现相对更优。 所以,如同预测学生考试成绩的相对排名的难度一样,预测股票在未来一段时间更优和更差,这种相对的预测是更加容易的。所以讲到这里,大家会发现,量化模型并不是无所不能, 也不是一无是处,我们只是在尝试预测那些更容易预测的信息,去补货那些更容易补货的收益。大家都知道,指数增强这一类产品量化管理人的贡献其实是超额收益。 也就是说,模型每天都在做同样一件事情,持续每天选出来未来一段时间表现相 相对更好的股票,让我的模型持仓持续的跑赢指数,不断的积累相对收益。当模型运行了一年甚至更长的一段时间以后,把我的收益积累到比较可观的程度, 再加上长期国家经济发展所带来的正的指数收益,正的超额收益加正的指数收益,最终获得一个正的绝对收益回报, 所以最终指数增强给客户获得的是挣的绝对收益回报,而挣的绝对收益来自于相对收益的持续积累,因为我们要持续最大化的积累,相对超额,所以量化指增往往是接近满仓运作。 同样的,因为绝对涨跌的预测非常之难,所以量化指增往往不会做主观仓位责。 所以当我们了解到这一点,大家就不会重复去问量行管理人,你们下周空仓还是满仓呀?你们怎么看接下来一周一个月的行情啊?这些我们都是非常难以预判的。 所以就像刚开始提到的,大家对于一个新生事物的认知,首先起源于对他底层运行机制的深刻了解, 这就是为什么我们今天第一个分享的主题就是一个量化投资的底层运行机制。接下来我们会尝试做更多的分享,比如相对收益是如何持续积累的, 比如量化行业的发展趋势有哪些,比如量化交易对市场的影响是怎样的,比如如何更加客观科学的决策对量化产品的投资。欢迎大家期待,谢谢大家!