入门培训的第二次课程。 昨天是给咱们投资者分享一下量化交易入门的一些必知的基础知识,讲了一下什么叫量化交易对应的一些总的模型分类有哪些,以及量化交易的优劣势的一个对比,常见的知识误区,以及量化交易和传统人工的这样的一个对比。 今天我们第二部分是重点介绍一下量化交易的核心要素和基础框架。 如果对量化交易感兴趣的话,这一周的话周一到周五每天下午同一个时间段,三点半到4点15分都会有量化的一个基础的课程。 所以大家要准时到我们这个直播间来收听。 首先我们先看一下量化交易的核心要素和框架。 核心要素无非是四个方面,第一个就是数据。 昨天其实也有提到我们常规的数据其实基本上就是K线的价格数据以及成交持仓的数据。从K线上我们看到,比如说我们就选这个互同,假如说我们以互同的15分钟级别的K线去做一些指标的判定的话那这里我们打开是互同2609的这个合约。 我们看到这个合约当中的话,我们在K线图上能看到是K线的高开低收,以及下方的成交持仓。 这些是交易所反馈回来的一手的数据。 当然了这个只是跟期货相关的一些交易数据,它没有涉及到期货基本面的这样的一些现货的价格数据,或者是供应需求相关的一些数据。 基于K线的高开低收以及成交持仓这样的一些内容,我们可以构建相应的一些指标对吧?或者说简单来说,我们看到指标有很多,我们把这个是文化可能有投资者说,这个指标对我来说好像没有太大的用处。 其实你在研究的过程中,可以花一点时间去把文华的这样的一些指标一一给它撸一遍。撸一遍的目的是什么呢?因为这里面有很多指标,它会有一些计算的方法,并且也会告诉你我这个指标判断的方法是什么样子的比如说我们这里给大家介绍的这个是谭江通道。谭江通道的话其实它很简单,它无非就是最高价和最低价向上向下的这种移动。 但是你要知道,我们我相信大家对于海归交易法则都不陌生。 海归交易法则它其实就是在谈钱通道的基础上衍生出来的,所以不要去小觑我们现在软件上可能给大家能看到的这样的一些指标。其实这些指标都有它的一些用处。当然你在使用的过程中还是要分析一下,要寻找到适合自己的这样的一款指标,而不是说我要把所有的指标都应用到我日常的教当中。这里我们看到第一步,这里指标比如说像趋势摆动量仓对吧?常见的趋势指标可能类似于像双均线,像布林通道,还有像什么多空线,还有弹枪通道都属于趋势线。第二个就是摆动分析指标。摆动分析指标一般是比如说我们常用的像这个RATR真实波幅,还有像这个怪利率,对吧?还有像KDZ,还有像这个mcc d。因为它其实大家可以注意到,像这个摆动分析指标,一般它对应的就是相对值,它不是绝对值。那绝对值我们看到趋势上面基本上都可以加载在我们主图上,作为附属指标去使用的。那么相对值比如说你要放在主图上,它可能会被压缩的非常扁。所以它像这些摆动指标大多数都是放在我们附图里面。我们常见的像KDZ对吧?ATR平均真实波幅,还有像什么MACD对吧?这些都是相对指标。所以它其实是计算波动的计算波动的那这些指标也可以用,当然可以用。比如说我在用这个ATR经常会依托att R的这个值做移动止损。好,那么常见的是趋势和摆动。接下来我们看一下量仓。因为每次我在跟咱们投资者分享品种的技术分析的时候,除了讲K线的一个盘面上走势相关的一些分析以外,同时我们也会讲到下面的成交和持仓。因为期货对比股票它不一样的地方就在于期货多了一个持仓,期货它实际会以仓换月。所以在某一个期货K线图出现趋势行情的时候,如果没有主力和约换月的这种情况下,对比盘面上出现这种单边的趋势行情的时候,会有很明显这种持仓的配合,会有很明显的这种持仓的配合。那这个时候你做趋势交易的时候,或者说假如说趋势交易里面我们还有这个突破,对吧?那突破里面我们可能就会用到成交量和持仓量的一个配合,把一些无效的突破给它过滤 掉,把有效的这种突破给它保留下来,尽量过率无效,降低这种被止损的这种可能性。所以我们最开始做量化的这个逻辑的来源,主要来自于我们指标,所以不要脱离指标说我上来就要去搞一些什么机器学习的模型,要搞这种非常高深的学理论模型,没有必要,真的没有必要。 因为其实我们看过很多专业的这些技术相关的一些书籍,人家做了很长年份,可能是甚至30年以上的这样的一个历史数据的统计。 如果只要你能拿得住双均线,也能够让你创造足够大的收益,问题是你能不能拿那么久,对吧?所以这里面虽然说有些指标大家也知道它的问题所在,但是我们也可以利用指标的优势,再找到其他的一些配合的指标,规避它的劣势,从而提高以指标为基础构建出来的这样的一个程序化交易策略。 这里面为什么用程序化交易策略呢?因为确实指标它属于比较入门的,它是上升到量化可能是有点高了。 因为量化的话可能更多。 包还是基于我们昨天讲的这五大模型里面,量化可能更多还是基于比如说像机器学习,高频,还有多因子这些。 那普通的这种指标类的话,其实可能就要稍微降低一点档次的程序化交易程序化交易。 好,因为刚刚我们讲到这个数据提到了,盘面上我们遇到的用到的无非就是高开低收成交持仓。 那么高低收成交持仓这些数据我们知道了,对吧?那接下来我们就基于这些数据构建这些指标。 那么构建这些指标我们可以干嘛做一个性,就是这个条件的一个判定。 简单来讲,比如说好,我们找一个找,比如说我们就按这个纯简,那纯简的话这种走势简单来讲,我们就以多周期均线这种发散排列。 那这种情况下,其实纯碱很明显是在一个下跌的趋势当中,中间其实还是有很多次进场的机会的那比如说我这里简单来讲,我就拿这个五周期的均线做一个排列,比如说短周期均线依次从上向下排到长周期均线,对吧?然后我默认为它现在至少是在一个上涨的走势当中。 反过来如果短周基金线在在下,然后常州均线依次向上排列,我认为是向下发散,属于一个空头的趋势。 那么可能有投者说,那你过程当中的话,我不能每一个点都作为我进场的一个时间点,对 吧?我可能还是要做一些筛选,好多周期均线选择方向。 那么短周期均线的金叉死叉就可以进入你阶段性的这样的一个进涨点,不一定要停留在日K线上,我可能要停留在小周期,比如说小时线或者30钟级别。 那这个时候其实你就存在着一个使用的方法,叫跨周期。 你不仅仅用日K线去判定方向,你可能进场的时候要用小时或者是分钟级别的K线去找这个进场点。 这时候其实我就要订阅的就不是单周期K线了,就类似于我们在多周期同列的这种情况。比如说我可能会用日K线去看方向,然后进场点我可能会用这个15分钟级别,像大小周期共振的这种情况下,我去甚至也可以用三周期、四周期更多都可以都可以。 好,这里面讲到是最基础的这个数据,当然我们还会用到,比如说我们前面提到了一些个多因子模型,对吧?多因子模型这里面是股票,那我们提到期货的话,那么可能会基于期货的这样一些基本面数据,去做一构建一个多因子模型。 那这里可能我们要用到,比如说我们可能要自费去购买一些基本面相关的数据。 通过万德、同花顺或者是上海高年等等,要看你交易的品种是哪些。 一般的万德和图话生活比较全一点,但是专业的比如说像能化的数据,对吧?黑色的数据可能对应的纲领会更专业一点。 因为他们可能有很多的调研的人员实时去更新对应的现货的这样的一些相关的数据。 然后你可以在当年的这个终端上,或者通过他的AI接口去调取你想要使用的这样的一些基本面数据,去构建所谓的多因子模型,然后给你提供相应的一些判断标准。 好,这里我们看到关键指标就是一定要准确,对吧?因为首先盘面上的价格不会出现太大的问题,但是基本面的数据可能还是会出现一些极个别情况下的这样的一些问题。 比如说调研数据对吧?调研数据本身就是通过实际实实时去调研的,但可能也会存在一些特殊情况,导致调研数据失真。 所以你拿到的数据,你拿到的一手数据,需要通过数据的一些基本的清理,然后才能使用。 对于一些特殊的异常值,我们就要关注它究竟是因为基本面发生了实质性的改变,还是只是因为调研出现了错误,导致你当前的这个数据出现了一个异常值。 这个其实都是我们在进行数据处理过程中需要关注的一些重要要的点重要的点。 那现在数据处理的话,我们可能如果没有代码编写基础的同子,还是可以通过这个excel表。 如果说有代码编写的话,比如说我们最开始在读书的时候会用这个,还有这个R,现在基本上用不到了,现在我们主攻的就是用ps对吧?那如果说有同学说我不会写,其实你用AI I去写一个Python基于数据的统计处理清洗的这个程序的话,非常简单,没有太大的难度。 所以这里面我们第一点数据很重要,不仅仅是数据源,数据的一个准确性、及时性、完整性都非常重要。 尤其是是多因子模型。 你不能说我基于基本面的数据构建的这样的一个模型,只采用了过去几个交易日或者说几周,这样不行,我们还是要把这个周期拉的要更大一点,而且在使用之前一定要对数据进行数据清洗。 第二个策略的一个构建。 昨天也是跟大家讲的,策略构建的过程中,无非就是我们其实有了良好的数据之后,我们接下来就可以怎么样进行策略的构建了。 前面也讲了,数据其实对应的就是燃料和原材料,策略对应的就是量化交易的灵魂和菜谱。 我们即使是基于历史数据挖掘规律,然后构建一套明确可执行的买卖交易规则。 也就是说我这个策略是一定要经过历史数据的一个验证,然后才能够去做模拟盘和实盘,不能说历史数据没有回测,我只是可能就是我们手动交易的过程中,有投资者说我这两天关注一个指标,看了两下感觉还挺有用的。 我直接一拖它就做实盘,其实他没有做反复的这种复盘。 你在手动交易过程中,如果采用一套新的逻辑,其实是要多品种。 然后采用一段时间的这种复盘,确定这一款新的逻辑对于你来说是有效的。 这样你才能够按照这个逻辑去执行交易。 不能说盲目的说我看了一下感觉还可以,然后就去。 其实肉眼看到的和你自动化,就让代码实践的这个结果差别会很大。 客户在构建好逻辑的时候,就觉得我这个逻辑能够完美的抓到很多交易机会,他这个想法没有问题。但是我们把这套逻辑代码这化之后,发现其中有很多不好的机会它也能发也能抓住。所以就导致代码化之后,它实际的全自动的效果可能对比手动。其实它手动可能是加上了一些人为主观的一个判断,所以把一些自动就把一些不好的情况给它过滤掉了,过滤掉就人为的觉得我这一套策略非常的完美。但实让在计算机执行之后发现,如果所有的情况按照他的逻辑所有的情况都能够抓到的话,它的胜率是有明显的下降的是有明显的下降。所以策略这里面是逻辑一定要合理,不能天马行空说我可能按照天气去执行我今天的交易,今天晴天我就做多,今天阴天我就做空,很显然这个逻辑是不通的,所以逻辑一定要有一定要逻辑一定要逻辑。时效性,统计的一个有效性,什么意思呢?就是你策略就是数据有了之后,你要做回测,要做模拟盘的跟踪。好,接下来我们有这个strategy了,就是有这个策略了。就是代码化之后我就要做什么back testing,就回测,就要对历史数据做回测,要检验这个策略是否有效,利用市场的一个数据模拟执行策略。这里注意我们在写代码的过程中,一定要尽量贴近我们实际的这个盘中的交易情况。我讲一个非常简单的例子,有的投资者可能基于当天的比如说比如说我这个策略是某一个情况下触及了我买入的这个交易机会。但是我买入价天然的以最新的这根K线的最低价去买入。大家想一下,你在当前的最新的这根K线跳动的过程中,你可以看到它的最低价。但是你在盘中的时候是没有办法确保你一定能够以最低价买入的那也就是说你在模拟在这个回测的过程中,天然的降低了你开多仓的一个成本。反过来开空也是,我如果触及了开空的这个交易机会。但是我下单的价格是以单根K线的最高价卖出去的那其实你盘中是拿不到最高价的那实际的成交价和历史回测的这个最高价之间的价差就是你自己,怎么说呢?额外降低了你开空的这个成本。因为你把你的开仓的价格提高了,你的盈领空间就放大了,对不对?所以这样的一个在策略构建的过程中,你的开仓价一定要尽量贴近现实,包括一些特殊情况的处理。比如说我涨跌停的时候我还能买进去。 你涨停的时候到这个特殊的情况下,其实明