在我刚入股票市场的时候,曾经在学校图书馆F编码区,翻过非常多的投资书籍,各种指导交易的方法可谓千奇百怪,通过这些书籍,我了解到了有基本面分析和技术面分析这样两种分析方法。

对于基本面分析的书籍,上来就是行业分析、企业估值、财务报表分析,打开看不到几十页,就感觉内容逐渐看不懂,畏难心理让我觉得这应该是经济学家和职业投资人才会使用的方法。尤其是对于企业的经营情况分析,接受到的有效信息非常少,还参杂了各种假消息,再加上网上弥漫的对A股上市公司的不信任氛围,让我更加坚信普通人解读基本面是不靠谱的。

再对比技术面分析方法,随便找一本技术派的书籍,读完前两章就会感到大受鼓舞,顿时产生:“原来如此,价格已经包含了所有的信息,只要看懂K线和各种指标的结构,满足这样那样的条件开仓进去,再满足这样那样的条件平仓,亏损的时候一定要及时止损,这样就能赚到钱”。

看技术分析的书籍,我记录了好多的笔记。站在当下的视角,就来依次梳理反思一下,技术面分析都有哪些问题,以及有哪些可取之处吧。若有错误的地方,还请指正。

屏幕截图 2022-04-03 214349.jpg

技术分析的归纳总结

技术分析的鼻祖,可以追溯到《道氏理论》这本书,也就是道琼斯指数的作者:查尔斯·亨利·道。

道氏理论

道氏理论的开篇提出了三个根本前提:

  1. 主力不能主宰趋势:主力能够通过操纵权重股来间接操纵指数的日内波动,但是对于指数的主要运动是无法操纵的。
  2. 指数吸收一切因素:指数是市场中的乐观悲观情绪、所有金融消息、投机者趋势者价值投资者等的一切参与者、市场预期等的综合体现,因此未来将会发生的事件的影响都会被指数吸收,进而体现在指数变动上。
  3. 止损和仓位管理是必要的:严谨的分析也会出错,因此必须要做好止损、风险控制、仓位管理。

孤立来看,这三条前提针对指数都是能够成立的,是一个好理论,但是在指导个股交易上,却留了大坑。遗憾的是,有很多技术理论开篇就是“价格反应一切因素”,然后在此前提下,通过各种奇形怪状的指标方法形态等作为开仓、止盈、止损的触发条件。

屏幕截图 2022-04-03 214548.jpg

K线形态分析方法

市面上有一种非常奇怪的分析方法,就是基于数根K线的形态,构成例如头肩底、头肩顶、双重顶、双重底等,然后在什么形态下进行什么操作。更让我惊喜的是,在我输入这些词的时候,MacOS的输入法自动联想出了“头肩顶形态”和“头肩底形态”。

假设有一个随机数,每过一秒钟,就在上一次的数值基础上完全随机地变动+1-1,那么下一秒其变动为+1的概率我们可以简单的认为是50%。对于这里提到的K线形态分析方法,其假定市场在某种形态下,后续可以大概率往预期的方向走,而不是概率上的50%,因此本质上这是一种基于统计的概率分析方法。基于概率的方法,后面统一总结。

蜡烛图形态分析方法

这种分析方法针对单根K线,可以是短周期,也可以是长周期。其形态有诸如刺透形态、吞没形态、射击之星……听起来略微中二,但是与上一个方法一样,在满足什么形态的情况下,进行某种开加减平操作。尽管说的玄乎其玄,但其本质也是基于统计的概率方法,是能够进行量化回测的。

屏幕截图 2022-04-03 214700.jpg

技术指标分析法

这种方法通过一些数学运算,将过去的所有价格信息、成交量等作为输入条件,通过一套算法,得到一组指标值,指标值可以是离散的也可以是连续的函数,当指标满足某种条件时进行开加减平操作。每个交易软件上都有大量可选的指标,常见的诸如MA、MACD、KDJ等。这种方法也是基于统计的概率方法,可量化回测的性质最强。

波浪理论

还有一种我愣是没理解的波浪理论,认为价格就是波浪,比如江恩理论、道氏理论、缠论等。波浪理论总能够很好地天衣无缝地进行事后解释,乍听起来他好像说的很有道理,但是稍作思考就会发现,说的都是屁话,就好比:“这个价格跌了,是因为趋势背离了”。那不是废话,趋势没背离它价格能跌么。这是一种难以量化的极其主观的概率方法。

总结,技术面分析基本上可以看成是一个基于统计的概率方法,无论是头肩顶形态、射击之星还是MACD金叉死叉,都是基于“当满足这个条件后执行这种操作的获利更大”的统计结果。

屏幕截图 2022-04-03 214810.jpg

严格的交易系统

技术派非常强调要严格执行交易系统,其本质是当概率赌错时,要进行及时的止损。碰巧我有幸也了解过很多交易系统,如果要说一个有代表性的交易系统,那非【海龟交易法则】莫属。

海龟交易法则

海龟交易系统有一套完备的要素,包括了入市策略、退出策略、头寸计算、仓位管理、建仓模式、严格止损、风险管理、进入退出的信号过滤器等内容,是我接触的第一个交易系统。其有长周期和短周期两种进出策略:

  • 短周期策略:利用四周20个交易日价格突破作为入市信号;利用两周10个交易日价格反向突破作为退出信号。
  • 长周期策略:利用11周55个交易日价格突破作为入市信号;利用4周20个交易日价格反向突破作为退出信号。

同时还设置了风险可控的仓位管理和金字塔式的加仓方法,不过很遗憾,海龟交易方法在回测中暴露出了大问题,下面以螺纹钢期货主力合约的回测结果举例。

我们先来介绍一下回测所使用的交易系统,再给出回测结果。注:回测结果的单位为合约价格变动单位,不计算手续费。

屏幕截图 2022-04-03 214937.jpg

40日突破进入,2ATR止损

  1. 进入退出信号:以40个交易日的价格突破作为进入点;以两倍ATR的反向突破作为退出点。
  2. 风险资金:2%的总金额,通过风险资金和止损宽度来计算交易头寸的规模。
  3. 止损:两倍ATR(26日)。
  4. 建仓方式:设初始止损宽度为N = 2 * ATR,之后正向每变动N,就更新止损值,正向变动2N后开始加仓,从正向变动2N开始,每变动一个N,就增加一个交易规模的头寸。

从理论上,在开仓进入后,如果第一个止损点位都没有更新到,就触发了止损,会损失2%的本金;而假设更新了第一个止损点后再触发的止损,则会亏损掉手续费;加仓一次后止损也一样,亏损掉手续费。需要加仓两次后,才能够抵消开仓即止损的情况下产生的亏损,经过连续的加仓才能够实现较大的盈利。

回测结果:从2009年6月份到2012年2月份,交易集中在主力合约上,一共产生了22笔交易,交易情况如下:

  • 亏损的笔数:6笔,分别为:-138, -175, -83, -121, -130, -116
  • 持平的笔数:10笔,滑点总亏损:-37
  • 盈利的笔数:6笔,分别为:+71, +3854, +291, +53, +76, +99
  • 总利润3644,胜率27.3%

看起来回测结果非常棒,有很大的利润,那再看一下2017年的数据:

  • 亏损4笔,分别为:-214, -198, -196, -218
  • 持平1笔。
  • 盈利1笔:+534
  • 总亏损292

屏幕截图 2022-04-03 215038.jpg

同样的方法,换一个年份的数据,就变成亏损了呢。那么我们来看看其他方法呢。

TEMA 10日线与20日线交叉入场,2ATR止损

  1. 进入信号:以TEMA指标的10日线与20日线出现交叉作为进入点;以两倍ATR的反向突破作为退出点。
  2. 风险资金:2%的总金额,通过风险资金和止损宽度来计算交易头寸的规模。
  3. 止损:两倍ATR(26日)。
  4. 建仓方式:设初始止损宽度为N = 2 * ATR,之后正向每变动N,就更新止损值,正向变动2N后开始加仓,从正向变动2N开始,每变动一个N,就增加一个交易规模的头寸。

回测结果:取2017年全年数据,交易情况如下:

  • 亏损7笔,分别为:-212, -64, -198, -80, -14, -192, -113
  • 持平0笔。
  • 盈利1笔:+43
  • 总亏损840

屏幕截图 2022-04-03 215133.jpg

看起来被震荡行情给反复打止损了,那我们再换个进入退出条件,把止损宽度拉大试试。

40日突破进入,3ATR止损

依然取2017年全年数据,交易情况如下:

  • 亏损2笔:-321, -312
  • 盈利1笔:+269
  • 总亏损364

怎么还是亏了,再换个方法。

20日突破进入,2ATR或20日反向突破止损

  1. 进入信号:以20个交易日的价格突破作为进入点;以两倍ATR或20个交易日的反向突破作为退出点
  2. 止损:两倍ATR(26日)或20个交易日的反向突破。

取2017年全年数据,交易结果如下:

  • 亏损2笔:-176, -218
  • 持平2笔。
  • 盈利1笔:+579
  • 总盈利185

类似的回测结果还有很多,我在主要的期货品种上都做了回测,回测结果喜忧参半。(数据来源:上期、郑商、大商,工具:python)

屏幕截图 2022-04-03 215222.jpg

大量的回测结果可以发现,亏损是由频繁触发止损导致的,止损放得宽,可以增大胜率,但是单笔止损扩大又会导致盈亏比下降;而缩小止损宽度,虽然可以扩大盈亏比,但是胜率下降,会产生大量的止损单。下面从理论上说明要做到正期望有多难。

K线图的抽象分析

对tick数据进行处理,假设参数X表示忽略回调值≤X的波动,对原始数据做平滑操作,统计结果表明,经过平滑处理的数据基本符合正态分布的右半边,如下图所示。

屏幕截图 2022-04-03 213647.jpg

假设在经过平滑处理的数据上,设定一个策略:只要从最高点或最低点回调的幅度>X,就进场开仓,且设定一个止盈值Y≤X和止损值Z=X,根据统计结果,即使不考虑手续费,也几乎很难做到盈利,其原因是波动分布太贴近于正态分布了。

如果设定止盈过大,例如Y=X,则分布图中,需要>X的数量比<X的数量多,才能做到盈利。如若将止盈降低,即Y<<X,则虽然>Y的数量可以比<Y的数量多,即胜率增大,但是同时盈亏比也降低了,即Y/(Y+X)降低。

若设定浮动止盈,即当(Y-extra)>X时才止盈或止损,则能够保证当X取值在某个区间内的正收益。

胜率与盈亏平衡分析

除了海龟系统外,我还回测了三十多种从各种论文上扒拉下来的交易系统,其结果是都存在很大的不确定性。如果读者也在评估技术派交易系统,可以考虑从胜率与盈亏平衡的角度分析。

假设有如下六个变量,分别为:

  • $$ P $$:止盈点位(元)
  • $$ Q $$:止损点位(元)
  • $$ F $$:开平手续费(元),当$$ F $$为浮动值时,$$ F = M * N * f $$
  • $$ f $$:开平手续费率万分比(%%)
  • $$ M $$:当前价格(元)
  • $$ N $$:交易单位

则可以计算出胜率与盈亏:

  • 盈利为:$$ P * N - F $$
  • 亏损为:$$ Q * N + F $$
  • $$ F $$为定值时,盈亏平衡值为:
    $$ (Q * N + F) / ((P * N - F) + (Q * N + F)) = (Q * N + F) / ((P + Q) * N) $$
  • $$ F $$为浮动值时,盈亏平衡值为:
    $$ (Q * N + F) / ((P + Q) * N) = (Q + M * f) / (P + Q) $$

盈亏平衡值表示当胜率在这之上时,才能够实现盈利,否则会产生亏损。

万物皆可机器学习

写了这么多东西,似乎都是陈年老皮的过时方法,那么结合我计算机的背景,写一点来自跨界算法领域的降维打击吧,只要把思路大开,既然技术分析全是在那折腾计算数据的话,就应该引入稍微高级点的数学。

屏幕截图 2022-04-03 215331.jpg

根据我们前面的分析,除去难以量化的主观性很强的波浪理论外,其他技术分析方法,都可以很容易地进行编程回测和设计程序化交易,这些技术分析方法的本质都是基于历史数据统计的概率方法。

说到统计和概率,那不就是分类嘛,机器学习可就有话说了!都说市场千变万化,没有什么方法能一成不变,都需要结合市场进行策略更新重组,但是机器学习本身就已经包含了最新数据高权重的自学习能力,可以说对传统的方法构成了降维打击。以后有机会专门写一篇机器学习算法在资本市场交易中的应用。

我们把思路进一步打开,都已经是计算机量化交易了,把交易频率提高,不就得到了高频量化交易嘛。在超高频下,每次只赚1个点差,同时1个点差止损,即使是价格完全随机变动的情况下,也能保证盈亏平衡,那么再结合机器学习算法,把胜率进一步提高,同时跟期货商协商一个更低的手续费,那么在小资金量的情况下,就可以做到曲线非常平滑的稳定盈利了。

量化是个好方向,为此我专门开通了永安期货的CTP席位,以后有机会再写写。前面通篇是对技术分析的介绍,下面我们要开始批判了。

屏幕截图 2022-04-03 215430.jpg

技术面分析的优点继承

在资本市场,能赚到钱的方法就是好方法,有人能够通过技术分析赚钱,说明概率统计是有用的,但是同一种方法不会永远有效,概率分析说是赌博也不为过,有一个很大的原因,便是没有能力没有耐心去学习基本面解读,“基本面分析不适合中国”只不过是借口罢了。

批判与继承是对立统一的,我们取其精华去其糟粕,学一下技术派的优点吧。技术派建立起来的交易系统,是有很多优点值得我们学习的,基本上,除了进入和退出策略,以及建仓模式外,其他的都可以参考。

  1. 仓位管理:仓位管理可以尽可能扩大盈利,以及在基本面分析错误时尽可能降低损失。
  2. 风险管理:尽量降低本金的损失。
  3. 头寸计算:尽量避免在左侧交易时满仓一步到位。
  4. 严格止损:基本面不对时要当机立断进行止损。