K线形态识别

TechKit 实现了 61 种日本K线形态,与 TA-Lib 100% 兼容。

形态输出值

含义

+100

检测到看涨形态

-100

检测到看跌形态

+200

强烈看涨形态

-200

强烈看跌形态

0

未检测到形态

API 用法

from techkit import talib_compat as ta
import numpy as np

# 单个形态检测
hammer = ta.CDLHAMMER(open, high, low, close)

# 检查形态
if hammer[-1] != 0:
    print(f"检测到锤子线: {hammer[-1]}")

# 扫描多个形态
patterns = {
    'hammer': ta.CDLHAMMER(open, high, low, close),
    'engulfing': ta.CDLENGULFING(open, high, low, close),
    'doji': ta.CDLDOJI(open, high, low, close),
}
const tk = require('techkit');

// 单个形态
const hammer = tk.CDLHAMMER(open, high, low, close);

// 批量扫描所有形态
const results = tk.scanAllPatterns(open, high, low, close);
tk_indicator pat = tk_cdl_hammer_new();
for (int i = 0; i < n; i++) {
    tk_ohlcv bar = {open[i], high[i], low[i], close[i], volume[i]};
    tk_result r = tk_update_ohlcv(pat, &bar);
    if (r.valid && r.value != 0) {
        printf("锤子线出现在第 %d 根K线: %.0f\n", i, r.value);
    }
}
tk_free(pat);

形态分类

单根K线形态

通过分析单根K线形成的形态。


CDLDOJI - 十字星

当开盘价和收盘价几乎相等时形成十字星,表示市场犹豫不决。

形态图示

    │       长上影线(可选)
    │
────┼────   开盘价 ≈ 收盘价(实体很小)
    │
    │       长下影线(可选)

检测规则

  1. 实体大小小于总波动范围的很小百分比

  2. |收盘价 - 开盘价| < 阈值 × (最高价 - 最低价)

特性

属性

输入

OHLC

回看

0

输出

0, +100, 或 -100

交易应用

  • 犹豫不决:买卖双方都未占主导

  • 反转潜力:在趋势极端位置更具意义

  • 需要确认:等待下一根K线确认方向


CDLDOJISTAR - 十字星

与前一根K线形成跳空缺口的十字星。

形态图示

看涨:          看跌:
    ■                 █
    ■                 █
    ■                 █
                      
    ─┼─           ─┼─

检测规则

  1. 前一根K线有较大实体

  2. 当前K线是十字星

  3. 实体之间存在缺口(十字星与前一根收盘价形成缺口)

交易应用

  • 看涨十字星:下跌趋势后,向下跳空 = 潜在向上反转

  • 看跌十字星:上涨趋势后,向上跳空 = 潜在向下反转


CDLDRAGONFLYDOJI - 蜻蜓十字

具有长下影线且没有或仅有极小上影线的十字星。

形态图示

────┬────   开盘价 = 收盘价 = 最高价
    │
    │       长下影线
    │
    │
    ▼

检测规则

  1. 开盘价 ≈ 收盘价 ≈ 最高价

  2. 长下影线(> 2× 实体大小)

  3. 没有或仅有极小上影线

交易应用

  • 看涨:下跌趋势后出现,显示对低价的拒绝

  • 支撑:下影线测试并被拒绝


CDLGRAVESTONEDOJI - 墓碑十字

具有长上影线且没有或仅有极小下影线的十字星。

形态图示

    ▲
    │
    │       长上影线
    │
    │
────┴────   开盘价 = 收盘价 = 最低价

检测规则

  1. 开盘价 ≈ 收盘价 ≈ 最低价

  2. 长上影线(> 2× 实体大小)

  3. 没有或仅有极小下影线

交易应用

  • 看跌:上涨趋势后出现,显示对高价的拒绝

  • 阻力:上影线测试并被拒绝


CDLLONGLEGGEDDOJI - 长腿十字

两侧都有长影线的十字星。

形态图示

    │
    │       长上影线
    │
────┼────   开盘价 ≈ 收盘价
    │
    │       长下影线
    │

交易应用

  • 高度犹豫不决:买卖双方都很活跃

  • 波动剧烈:价格波动范围大但无净变动


CDLRICKSHAWMAN - 人力车夫

类似于长腿十字,但实体位于波动范围的中心。

检测规则

  1. 十字星形态

  2. 开盘价/收盘价接近最高价-最低价范围的中点

  3. 两侧都有长影线


CDLHAMMER - 锤子线

看涨反转形态,实体较小位于顶部,下影线很长。

形态图示

    ┌─┐     顶部小实体
    │█│
    └┬┘
     │
     │      长下影线(≥ 2× 实体)
     │
     ▼

检测规则

  1. 小实体位于交易区间的上端

  2. 下影线至少是实体长度的 2 倍

  3. 上影线很小或没有

  4. 出现在下跌趋势后

交易应用

  • 看涨反转:显示对低价的拒绝

  • 确认:等待次日看涨K线

  • 止损:锤子线低点下方


CDLHANGINGMAN - 上吊线

与锤子线形状相同,但出现在上涨趋势后(看跌)。

形态图示

与锤子线相同。

检测规则

  1. 与锤子线形状相同

  2. 出现在上涨趋势后(而非下跌趋势)

交易应用

  • 看跌警告:潜在顶部形成

  • 确认至关重要:需要看跌后续确认


CDLINVERTEDHAMMER - 倒锤子线

看涨反转形态,实体较小位于底部,上影线很长。

形态图示

     ▲
     │
     │      长上影线(≥ 2× 实体)
     │
    ┌┴┐
    │█│     底部小实体
    └─┘

检测规则

  1. 小实体位于区间的下端

  2. 长上影线(≥ 2× 实体)

  3. 下影线很小或没有

  4. 出现在下跌趋势后

交易应用

  • 看涨反转潜力:但需要确认

  • 可靠性较低:不如标准锤子线


CDLSHOOTINGSTAR - 射击之星

与倒锤子线形状相同,但出现在上涨趋势后(看跌)。

形态图示

与倒锤子线相同。

检测规则

  1. 与倒锤子线形状相同

  2. 出现在上涨趋势后

交易应用

  • 看跌反转:显示对高价的拒绝

  • 更可靠:形态前有向上跳空时


CDLMARUBOZU - 光头光脚

没有影线的完整实体K线。

形态图示

看涨:    看跌:
┌───┐       ┌───┐
│   │       │███│
│   │       │███│
│   │       │███│
└───┘       └───┘
O=L,C=H     O=H,C=L

检测规则

  1. 没有上影线(开盘价或收盘价 = 最高价)

  2. 没有下影线(开盘价或收盘价 = 最低价)

交易应用

  • 强烈信念:买方(白色)或卖方(黑色)占主导

  • 持续:通常表示强烈趋势


CDLLONGLINE - 长实体K线

实体异常长的K线。

检测规则

实体长度 > 平均实体长度 × 阈值

交易应用

  • K线方向的强烈动量


CDLSHORTLINE - 短实体K线

实体异常短的K线。

检测规则

实体长度 < 平均实体长度 × 阈值

交易应用

  • 动量较弱,潜在暂停或反转


CDLSPINNINGTOP - 纺锤线

两侧都有影线的小实体。

形态图示

    │
    ┌┴┐
    │█│     小实体
    └┬┘
    │

检测规则

  1. 小实体

  2. 存在上影线和下影线

  3. 不是十字星(有可见实体)

交易应用

  • 犹豫不决:类似于十字星但有小实体

  • 整理:市场稍作喘息


CDLHIGHWAVE - 大浪线

两侧都有很长影线的小实体。

检测规则

  1. 小实体

  2. 上影线和下影线都非常长

  3. 影线明显长于典型情况

交易应用

  • 极度犹豫不决:波动大,无明确方向

  • 反转潜力:在趋势极端位置


CDLTAKURI - 探水竿(蜻蜓十字变体,下影线更长)

下影线非常长的蜻蜓十字变体。

检测规则

  1. 十字星或接近十字星的实体

  2. 非常长的下影线(> 3× 典型长度)

  3. 没有或仅有极小上影线

交易应用

  • 强烈看涨信号:下跌趋势后出现时

  • 极端拒绝:对低价的拒绝


两根K线形态

通过分析两根连续K线形成的形态。


CDLENGULFING - 吞没形态

第二根K线完全吞没第一根K线的强烈反转形态。

形态图示

看涨吞没:        看跌吞没:
   │                           ▲
   ■     第1天(看跌)          │
   ■                           █     第2天(看跌)
   │                           █
                               █
   ▲                           █
   │                           │
   █     第2天(看涨)
   █                           ■     第1天(看涨)
   █                           ■
   │                           │

检测规则(看涨)

  1. 下跌趋势进行中

  2. 第一根K线:看跌(黑色/红色实体)

  3. 第二根K线:看涨(白色/绿色实体)

  4. 第二根实体开盘价低于第一根实体的最低价

  5. 第二根实体收盘价高于第一根实体的最高价

特性

属性

回看

1

输出

+100(看涨),-100(看跌)

交易应用

  • 看涨吞没:底部强烈反转,可靠性高

  • 看跌吞没:顶部强烈反转

  • 成交量:吞没K线成交量较高时增加可靠性

  • 入场:吞没K线收盘时或次日开盘

  • 止损:吞没K线极值下方/上方


CDLHARAMI - 孕线

第二根K线的实体包含在第一根K线的实体内部。

形态图示

看涨孕线:          看跌孕线:
   │                           ▲
   ■                           │
   ■                           █
   ■─┬─                        █─┬─
   ■ │█│                       █ │■│
   ■─┴─                        █─┴─
   │                           │

检测规则

  1. 第一根K线:长实体

  2. 第二根K线:小实体,包含在第一根实体内部

  3. 颜色相反(经典)或相同颜色(可靠性较低)

交易应用

  • 反转警告:可靠性低于吞没形态

  • 需要确认:等待第三根K线

  • "怀孕"形态:日语 harami 意为怀孕


CDLHARAMICROSS - 十字孕线

第二根K线为十字星的孕线。

检测规则

  1. 第一根K线:长实体

  2. 第二根K线:十字星,包含在第一根实体内部

交易应用

  • 比普通孕线更强:十字星增加了犹豫不决信号

  • 更可靠的反转指示


CDLPIERCING - 刺透形态

看涨反转 - 第二根K线收盘价高于第一根的中点。

形态图示

   │
   ■     第1天(看跌)
   ■
   ■
   ■──── 中点
   │
   
   │
   █     第2天开盘低于第1天最低价
   █     收盘高于第1天中点
   █
   ▲

检测规则

  1. 下跌趋势进行中

  2. 第一根K线:长看跌实体

  3. 第二根K线:开盘价低于第一根的最低价

  4. 第二根K线:收盘价高于第一根实体的中点

  5. 第二根K线:收盘价不高于第一根的开盘价

交易应用

  • 看涨反转:在支撑位

  • 不如吞没形态强:未完全吞没


CDLDARKCLOUDCOVER - 乌云盖顶

看跌反转 - 刺透形态的反向。

检测规则

  1. 上涨趋势进行中

  2. 第一根K线:长看涨实体

  3. 第二根K线:开盘价高于第一根的最高价

  4. 第二根K线:收盘价低于第一根实体的中点

  5. 第二根K线:收盘价不低于第一根的开盘价

交易应用

  • 看跌反转:在阻力位


CDLBELTHOLD - 捉腰带线

在极值开盘并向相反方向收盘的长K线。

形态图示

看涨捉腰带线:    看跌捉腰带线:
   ▲                       │
   │                       ■ 在最高价开盘
   █                       ■
   █                       ■
   █                       ■ 收盘接近最低价
   │ 在最低价开盘          ▼

检测规则

看涨:

  1. 在或接近最低价开盘

  2. 收盘价显著更高

  3. 下影线很小或没有

看跌:相反


CDLCOUNTERATTACK - 反击线

两根颜色相反但收盘价相同的K线。

检测规则

  1. 第一根K线:沿趋势方向

  2. 第二根K线:相反颜色

  3. 两根K线收盘价相同


CDLHIKKAKE - 陷阱形态

内包K线突破失败形态。

检测规则

  1. 内包K线(第2根K线在第1根内部)

  2. 向一个方向突破(第3根K线)

  3. 反转回内包K线(第4-5根K线)


CDLHIKKAKEMOD - 修正陷阱形态

带有额外确认的陷阱形态变体。


CDLHOMINGPIGEON - 信鸽形态

类似于孕线但两根K线都是看跌的看涨形态。

检测规则

  1. 第一根K线:长看跌实体

  2. 第二根K线:较小的看跌实体,包含在第一根内部


CDLINNECK - 颈内线

下跌趋势后的弱延续形态。

检测规则

  1. 下跌趋势

  2. 第一根K线:长看跌

  3. 第二根K线:向下跳空开盘,收盘价等于或略低于第一根的收盘价


CDLONNECK - 颈上线

类似于颈内线,但收盘价在第一根的最低价。


CDLKICKING - 踢脚形态

两根颜色相反且带缺口的秃头K线的强烈反转。

形态图示

看涨:              看跌:
┌───┐                 ┌───┐
│███│ 第1天          │   │ 第1天
│███│ (看跌)        │   │ (看涨)
└───┘                 └───┘
  ↑缺口                  ↓缺口
┌───┐                 ┌───┐
│   │ 第2天          │███│ 第2天
│   │ (看涨)        │███│ (看跌)
└───┘                 └───┘

检测规则

  1. 第一根K线:秃头K线(无影线)

  2. 相反方向缺口

  3. 第二根K线:相反颜色的秃头K线

交易应用

  • 非常强烈的信号:两根对立的秃头K线

  • 罕见形态:出现时可靠性高


CDLKICKINGBYLENGTH - 按长度踢脚形态

通过K线长度比较确定的踢脚形态。


CDLMATCHINGLOW - 相同低价

两根具有相同最低价的K线 - 支撑确认。

检测规则

  1. 两根看跌K线

  2. 收盘价相同


CDLTHRUSTING - 插入线

弱看涨形态 - 收盘进入前一根实体但低于中点。

检测规则

  1. 下跌趋势

  2. 第一根K线:看跌

  3. 第二根K线:开盘价低于第一根的最低价

  4. 第二根K线:收盘价在第一根实体内部但低于中点


CDL2CROWS - 两只乌鸦

上涨趋势后的看跌延续。

检测规则

  1. 上涨趋势,第一根为长看涨K线

  2. 第二根K线:看跌,向上跳空,收盘价在第一根实体内部

  3. 第三根K线:看跌,开盘价在第二根内部,收盘价在第一根内部


三根或更多K线形态

通过分析三根或更多连续K线形成的形态。


CDLMORNINGSTAR - 启明星

强烈的看涨反转形态。

形态图示

第1天:      第2天:      第3天:
   │                           ▲
   ■                           │
   ■                           █
   ■                           █
   ■          ─┼─              █
   │           │               │

检测规则

  1. 下跌趋势进行中

  2. 第一根K线:长看跌实体

  3. 第二根K线:小实体(星),与第一根向下跳空

  4. 第三根K线:长看涨实体,收盘价高于第一根的中点

特性

属性

回看

2

输出

+100

交易应用

  • 强烈看涨反转:最可靠的形态之一

  • 星形缺口很重要:缺口越大 = 信号越强

  • 入场:第三根K线收盘时

  • 止损:星形(第二根K线)最低价下方


CDLEVENINGSTAR - 黄昏星

强烈的看跌反转形态(启明星的反向)。

形态图示

第1天:      第2天:      第3天:
   ▲           │               │
   │          ─┼─              ■
   █                           ■
   █                           ■
   █                           ■
   │                           │

检测规则

  1. 上涨趋势进行中

  2. 第一根K线:长看涨实体

  3. 第二根K线:小实体(星),与第一根向上跳空

  4. 第三根K线:长看跌实体,收盘价低于第一根的中点

交易应用

  • 强烈看跌反转:可靠性高


CDLMORNINGDOJISTAR - 启明十字星

中间K线为十字星的启明星。

交易应用

  • 比普通启明星更强:十字星增加了强调


CDLEVENINGDOJISTAR - 黄昏十字星

中间K线为十字星的黄昏星。


CDL3WHITESOLDIERS - 三白兵

三根连续的长看涨K线。

形态图示

           ▲
           │
        ▲  █
        │  █
     ▲  █  │
     │  █
  ▲  █  │
  │  █
  █  │
  │

检测规则

  1. 三根连续的看涨K线

  2. 每根开盘价在前一根实体内部

  3. 每根收盘价接近其最高价

  4. 每根都有长实体

交易应用

  • 强烈看涨延续/反转:非常可靠

  • 成交量确认:成交量较高时增强信号


CDL3BLACKCROWS - 三只乌鸦

三根连续的长看跌K线(三白兵的反向)。

检测规则

  1. 三根连续的看跌K线

  2. 每根开盘价在前一根实体内部

  3. 每根收盘价接近其最低价

  4. 每根都有长实体

交易应用

  • 强烈看跌延续/反转:非常可靠


CDL3INSIDE - 三内部

孕线后跟确认K线。

检测规则(三内部向上)

  1. 前两根K线形成看涨孕线

  2. 第三根K线收盘价高于第一根K线的开盘价


CDL3OUTSIDE - 三外部

吞没形态后跟确认K线。

检测规则(三外部向上)

  1. 前两根K线形成看涨吞没

  2. 第三根K线收盘价高于第二根K线的收盘价


CDL3LINESTRIKE - 三线打击

三白兵/三只乌鸦后跟反向吞没。

检测规则

  1. 三白兵(或三只乌鸦)

  2. 第四根K线以相反方向吞没所有三根

交易应用

  • 尽管看起来像反转,但通常是延续:通常延续原趋势

  • 反直觉:看起来像反转但往往不是


CDL3STARSINSOUTH - 南方三星

显示卖压递减的看涨反转。

检测规则

  1. 三根看跌K线

  2. 每根实体逐渐变短

  3. 每根下影线逐渐变短

  4. 显示看跌动量递减


CDLABANDONEDBABY - 弃婴形态

带有孤岛缺口的极端反转。

检测规则

  1. 第一根K线:沿趋势方向

  2. 第二根K线:跳空离开的十字星(孤岛)

  3. 第三根K线:相反方向,跳空越过十字星

交易应用

  • 非常强烈的反转:缺口隔离使其罕见且可靠

  • 罕见形态:不常见但可靠性高


CDLADVANCEBLOCK - 前进受阻

三白兵形态的弱化。

检测规则

  1. 三根看涨K线

  2. 第二根和第三根实体逐渐变小

  3. 第二根和/或第三根有长上影线

交易应用

  • 上涨趋势弱化:看涨动量减弱


CDLBREAKAWAY - 突破形态

缺口后跟趋势,然后反向缺口。


CDLCONCEALBABYSWALL - 隐藏的燕子

带有两根秃头K线的罕见看涨形态。


CDLGAPSIDESIDEWHITE - 上下缺口并列白线

缺口后跟两根相似的白K线。


CDLIDENTICAL3CROWS - 相同三只乌鸦

每根开盘价等于前一根收盘价的三只乌鸦。


CDLLADDERBOTTOM - 梯底形态

五根K线的看涨反转形态。


CDLMATHOLD - 铺垫形态

五根K线的延续形态。


CDLRISEFALL3METHODS - 上升/下降三法

带有整理的延续形态。

检测规则(上升)

  1. 第一根K线:长看涨

  2. 接下来2-4根K线:小看跌,保持在第一根范围内

  3. 最后一根K线:长看涨,收盘价高于第一根的收盘价

交易应用

  • 强烈延续:上涨趋势中的暂停然后恢复


CDLSEPARATINGLINES - 分离线

开盘价相同但方向相反的K线。


CDLSTALLEDPATTERN - 停滞形态

看涨趋势停滞。


CDLSTICKSANDWICH - 三明治形态

两根相似的看跌K线中间夹一根看涨K线。


CDLTASUKIGAP - 跳空并列形态

带有部分缺口回补的延续形态。


CDLTRISTAR - 三星形态

三根连续的十字星。

检测规则

  1. 三根连续的十字星

  2. 中间的十字星与第一根形成缺口

  3. 第三根十字星与第二根形成缺口(相反方向)

交易应用

  • 非常罕见:极度犹豫不决

  • 强烈反转潜力:出现时


CDLUNIQUE3RIVER - 独特三河底

罕见的看涨反转形态。


CDLUPSIDEGAP2CROWS - 向上缺口两只乌鸦

带有缺口和两只乌鸦的看跌形态。


CDLXSIDEGAP3METHODS - 向上/向下缺口三法

缺口延续形态。


形态汇总表

形态

K线数

类型

信号

CDLDOJI

1

中性

犹豫不决

CDLHAMMER

1

看涨

反转

CDLSHOOTINGSTAR

1

看跌

反转

CDLENGULFING

2

双向

强烈反转

CDLHARAMI

2

双向

反转警告

CDLPIERCING

2

看涨

反转

CDLDARKCLOUDCOVER

2

看跌

反转

CDLMORNINGSTAR

3

看涨

强烈反转

CDLEVENINGSTAR

3

看跌

强烈反转

CDL3WHITESOLDIERS

3

看涨

延续/反转

CDL3BLACKCROWS

3

看跌

延续/反转

CDL3INSIDE

3

双向

反转

CDL3OUTSIDE

3

双向

反转

CDL3LINESTRIKE

4

双向

延续

CDLABANDONEDBABY

3

双向

强烈反转

CDLADVANCEBLOCK

3

看跌

弱化

CDLRISEFALL3METHODS

5

双向

延续

CDLTRISTAR

3

双向

反转


形态扫描

批量扫描所有形态

为了高效检测所有61种形态:

from techkit import talib_compat as ta

# 定义所有形态函数
PATTERNS = [
    ('CDL2CROWS', ta.CDL2CROWS),
    ('CDL3BLACKCROWS', ta.CDL3BLACKCROWS),
    ('CDL3INSIDE', ta.CDL3INSIDE),
    # ... 所有61种形态
]

def scan_all_patterns(open, high, low, close):
    results = {}
    for name, func in PATTERNS:
        pattern = func(open, high, low, close)
        # 查找非零值
        signals = [(i, v) for i, v in enumerate(pattern) if v != 0]
        if signals:
            results[name] = signals
    return results

# 用法
detected = scan_all_patterns(open, high, low, close)
for pattern, signals in detected.items():
    print(f"{pattern}: {len(signals)} 次出现")
const tk = require('techkit');

// 批量扫描
const results = tk.scanAllPatterns(open, high, low, close);
console.log(results);