缠论(缠中说禅理论)是一种基于市场几何结构的技术分析方法,由缠中说禅(本ID)在博客中提出。它强调走势的自相似性和可分解性,通过分型、笔、段等基本元素构建中枢,最终通过背驰来确认走势的转折。缠论的核心在于“不测而测”,即通过结构分析预测走势,而非主观臆测。本文将从分型、笔、段的构建入手,逐步深入到背驰的判断,并结合实战应用,详细阐述如何确认走势转折。文章内容力求详尽,提供完整的逻辑链条和示例,帮助读者掌握缠论的精髓。

1. 缠论基础:分型、笔与段的构建

缠论的起点是K线图的基本分解。通过分型、笔和段,我们可以将杂乱的K线转化为有结构的走势单元。这是确认转折的前提,因为转折往往发生在段的结束处。

1.1 分型(Fractal)

分型是缠论的最小结构,用于识别K线的顶底转折。分型分为顶分型和底分型。

  • 顶分型:三根K线中,中间K线的最高价高于左右两根K线的最高价,且中间K线的最低价也高于左右两根K线的最低价(或至少不低)。简单来说,就是“高点更高,低点也更高”的局部反转信号。
  • 底分型:三根K线中,中间K线的最低价低于左右两根K线的最低价,且中间K线的最高价也低于左右两根K线的最高价(或至少不高)。即“低点更低,高点也更低”。

示例:假设某股票日K线数据如下(简化数据,单位:元):

  • 第1天:开盘10.0,最高10.5,最低9.8,收盘10.2
  • 第2天:开盘10.2,最高11.0,最低10.1,收盘10.8
  • 第3天:开盘10.8,最高10.9,最低10.3,收盘10.5

这里,第2天是中间K线,其最高价11.0高于第1天的10.5和第3天的10.9,最低价10.1高于第1天的9.8和第3天的10.3,因此形成顶分型。这预示着短期上涨可能结束。

判断要点:分型必须严格满足条件,忽略包含关系(即K线实体重叠时需处理)。在实际应用中,使用软件(如通达信、同花顺)的缠论插件自动识别分型。

1.2 笔(Stroke)

笔是由相邻的顶分型和底分型连接而成的线段,必须满足以下条件:

  • 两个分型之间至少有5根K线(不含分型本身),以确保趋势的稳定性。
  • 笔的方向由分型决定:从底分型到顶分型为上升笔,从顶分型到底分型为下降笔。
  • 笔的起点和终点分别是分型的最高/最低点。

构建步骤

  1. 识别所有分型。
  2. 连接相邻的顶底分型,确保K线数量≥5。
  3. 如果中间有其他分型干扰,需忽略或调整。

示例:继续上例,假设后续K线:

  • 第4天:开盘10.5,最高10.7,最低10.0,收盘10.1
  • 第5天:开盘10.1,最高10.2,最低9.5,收盘9.6(底分型)
  • 第6-10天:逐步上涨至11.5

从第2天顶分型(高点11.0)到第5天底分型(低点9.5),中间有第3、4天(共4天),但需至少5天,因此可能需调整或忽略。如果第6天后形成新底分型,则确认一笔下降笔(11.0→9.5)。然后从该底分型到下一个顶分型形成上升笔。

代码示例(Python模拟笔识别,使用Pandas处理K线数据):

import pandas as pd

# 假设K线数据:DataFrame包含'high', 'low', 'close'列
def identify_fractals(df):
    fractals = []
    for i in range(1, len(df)-1):
        # 顶分型
        if df['high'][i] > df['high'][i-1] and df['high'][i] > df['high'][i+1] and \
           df['low'][i] > df['low'][i-1] and df['low'][i] > df['low'][i+1]:
            fractals.append(('top', i, df['high'][i]))
        # 底分型
        if df['low'][i] < df['low'][i-1] and df['low'][i] < df['low'][i+1] and \
           df['high'][i] < df['high'][i-1] and df['high'][i] < df['high'][i+1]:
            fractals.append(('bottom', i, df['low'][i]))
    return fractals

def identify_strokes(fractals, min_k=5):
    strokes = []
    for i in range(len(fractals)-1):
        if fractals[i][0] == 'bottom' and fractals[i+1][0] == 'top' and \
           fractals[i+1][1] - fractals[i][1] >= min_k:
            strokes.append(('up', fractals[i][1], fractals[i+1][1], fractals[i][2], fractals[i+1][2]))
        elif fractals[i][0] == 'top' and fractals[i+1][0] == 'bottom' and \
             fractals[i+1][1] - fractals[i][1] >= min_k:
            strokes.append(('down', fractals[i][1], fractals[i+1][1], fractals[i][2], fractals[i+1][2]))
    return strokes

# 示例数据
data = {'high': [10.5, 11.0, 10.9, 10.7, 10.2, 10.5, 11.0, 11.5, 11.2, 10.8],
        'low': [9.8, 10.1, 10.3, 10.0, 9.5, 9.6, 10.0, 10.5, 10.8, 10.2]}
df = pd.DataFrame(data)
fractals = identify_fractals(df)
strokes = identify_strokes(fractals)
print(strokes)  # 输出示例:[('down', 1, 4, 11.0, 9.5), ('up', 4, 7, 9.5, 11.5)]

此代码模拟了分型和笔的识别。在实际交易软件中,这些已内置,但理解原理有助于手动验证。

1.3 线段(Segment)

线段由至少3笔构成,且必须是同向的(上升或下降)。线段的确认需要“特征序列”:即笔的端点形成新的分型序列,确保线段的完整性。

  • 上升线段:至少3笔上升,且后续笔的高点高于前笔高点。
  • 下降线段:至少3笔下降,且后续笔的低点低于前笔低点。

线段是构建中枢的基础。转折往往发生在线段的结束,即当线段无法延续时。

示例:假设三笔上升:笔1(9.5→11.0)、笔2(10.0→11.5)、笔3(10.5→12.0)。如果笔4的高点<12.0,则线段结束,可能转折。

判断要点:线段必须“完美”,即无缺口或重叠干扰。使用“线段破坏”概念:如果后续笔突破线段的起点,则线段被破坏,预示转折。

2. 中枢的构建与走势类型

中枢是缠论的核心,用于定义走势的“盘整”区域。通过笔和段,我们可以构建中枢,并识别走势类型。

2.1 中枢(Central Pivot)

中枢由至少3段重叠的部分构成。重叠指三段的最高低点与最低高点有交集。

  • 构建步骤
    1. 找到相邻的三段(上升、下降、上升,或反之)。
    2. 计算重叠区间:高点取三段最低高点,低点取三段最高低点。
    3. 中枢区间 = [高点, 低点](注意高低顺序)。

示例:三段数据:

  • 段1:高11.0,低9.5
  • 段2:高11.5,低10.0
  • 段3:高12.0,低10.5

重叠高点 = min(11.0, 11.5, 12.0) = 11.0 重叠低点 = max(9.5, 10.0, 10.5) = 10.5 中枢区间 = [10.5, 11.0]

2.2 走势类型

缠论将走势分为:

  • 上涨:离开中枢向上,形成“离开段”。
  • 下跌:离开中枢向下。
  • 盘整:在中枢内震荡。

转折确认的关键是:走势离开中枢后,如果无法继续延伸,且出现背驰,则转折发生。

代码示例(Python构建中枢):

def build中枢(segments):
    if len(segments) < 3:
        return None
    highs = [seg['high'] for seg in segments[:3]]
    lows = [seg['low'] for seg in segments[:3]]
    overlap_high = min(highs)
    overlap_low = max(lows)
    if overlap_high > overlap_low:  # 有重叠
        return {'high': overlap_high, 'low': overlap_low}
    return None

# 示例段数据
segments = [{'high': 11.0, 'low': 9.5}, {'high': 11.5, 'low': 10.0}, {'high': 12.0, 'low': 10.5}]
中枢 = build中枢(segments)
print(中枢)  # {'high': 11.0, 'low': 10.5}

3. 背驰的精准判断

背驰是确认走势转折的核心信号,指趋势力度减弱,导致走势反转。缠论中的背驰分为趋势背驰和盘整背驰。

3.1 趋势背驰(Trend Divergence)

适用于上涨或下跌趋势。比较同向趋势的两个“次级别走势”(即笔或段)的力度。

  • 判断条件
    1. 两个趋势走势(如上涨段1和上涨段2)。
    2. 段2的终点(高点)高于段1,但MACD指标(或面积)的力度小于段1。
    3. 确认:段2结束后,出现反向走势突破段2的起点。

MACD辅助:缠论常用MACD的柱状图面积或黄白线(DIF/DEA)比较。上涨背驰时,段2的MACD红柱面积 < 段1,且黄白线高度降低。

示例

  • 段1上涨:从9.5到11.0,MACD红柱面积 = 100(单位:虚拟)。
  • 段2上涨:从10.0到11.5,MACD红柱面积 = 80。
  • 背驰确认:段2结束后,价格回落至11.0以下,转折下跌。

代码示例(Python计算MACD面积比较背驰):

import numpy as np

def calculate_macd_area(close_prices):
    # 简化MACD计算(实际需完整EMA)
    ema12 = pd.Series(close_prices).ewm(span=12).mean()
    ema26 = pd.Series(close_prices).ewm(span=26).mean()
    dif = ema12 - ema26
    dea = dif.ewm(span=9).mean()
    macd = 2 * (dif - dea)
    return macd[macd > 0].sum()  # 红柱面积

def detect_divergence(segment1, segment2):
    area1 = calculate_macd_area(segment1['close'])
    area2 = calculate_macd_area(segment2['close'])
    if segment2['high'] > segment1['high'] and area2 < area1:
        return True, area1, area2
    return False, area1, area2

# 示例:段1和段2的收盘价序列
seg1 = {'high': 11.0, 'close': [9.5, 10.0, 10.5, 11.0]}
seg2 = {'high': 11.5, 'close': [10.0, 10.5, 11.0, 11.5]}
is_div, a1, a2 = detect_divergence(seg1, seg2)
print(f"背驰: {is_div}, 面积1: {a1:.2f}, 面积2: {a2:.2f}")
# 输出:背驰: True, 面积1: ..., 面积2: ... (需实际数据)

注意:此代码为简化版,实际需完整K线数据。背驰确认需结合时间周期,如日线背驰对应周线转折。

3.2 盘整背驰(盘整背驰)

在中枢内震荡时,比较两次离开中枢的力度。如果第二次离开力度减弱,则可能结束盘整,进入趋势。

判断:类似趋势背驰,但针对中枢的“离开-回拉”段。例如,上涨离开中枢后回拉,再次离开时力度减弱,则转折。

3.3 背驰的确认与陷阱

  • 确认:背驰后必须有“第一类买卖点”——即反向走势突破前高/低点。
  • 陷阱:假背驰(如小级别背驰但大级别未背驰)。解决:多级别联立(如5分钟背驰+日线确认)。

实战提示:背驰不是100%准确,需结合成交量:背驰时若缩量,则可靠性更高。

4. 实战应用:确认走势转折的完整流程

4.1 步骤流程

  1. 分解走势:从分型开始,构建笔和段,识别中枢。
  2. 监控趋势:观察离开中枢的段,计算力度(MACD或面积)。
  3. 识别背驰:比较同向段,确认力度减弱。
  4. 确认转折:背驰后,等待反向第一类买卖点(如下跌背驰后的反弹突破)。
  5. 操作策略
    • 买入:下跌背驰+第一类买点(价格突破中枢下沿)。
    • 卖出:上涨背驰+第一类卖点(价格突破中枢上沿)。
    • 止损:背驰失效时(如继续创新高),立即止损。

4.2 实战案例:某股票日线分析(假设数据)

假设股票A从2023年1月到6月走势:

  • 阶段1(1-2月):形成底分型(低点20元),上升笔至25元,构建中枢[22,24]。
  • 阶段2(3-4月):离开中枢上涨,段1至28元,MACD面积=150。
  • 阶段3(5月):回拉后再次上涨,段2至29元,但MACD面积=120 < 150,背驰出现。
  • 转折确认:5月底,价格回落至27元,跌破段2起点,确认下跌转折。第一类卖点在29元附近。

操作:在29元卖出,目标位22元(中枢下沿)。实际中,结合成交量:背驰时若量能萎缩,确认更可靠。

多周期应用:在5分钟图找背驰,日线确认转折。例如,5分钟上涨背驰对应日线回调。

4.3 风险管理

  • 背驰失效概率约30%,需仓位控制(如不超过总资金20%)。
  • 结合基本面:缠论纯技术,忽略消息面易误判。
  • 工具推荐:TradingView或国产软件的缠论指标。

5. 常见误区与优化建议

  • 误区1:忽略分型确认,导致笔段错误。优化:严格按定义,手动复核。
  • 误区2:只看价格,忽略MACD。优化:结合多指标,如RSI确认超买/超卖。
  • 误区3:单一周期。优化:三级别联立(如1分钟、5分钟、30分钟)。
  • 优化:学习缠论原文(博客),结合量化回测。使用Python的TA-Lib库扩展MACD计算。

通过以上从分型笔段到背驰的系统学习,读者可精准判断走势转折。缠论强调实践,建议从历史K线回测开始,逐步应用于实盘。记住,市场无绝对,缠论提供概率优势,而非保证。