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 - 十字星
当开盘价和收盘价几乎相等时形成十字星,表示市场犹豫不决。
形态图示
│ 长上影线(可选)
│
────┼──── 开盘价 ≈ 收盘价(实体很小)
│
│ 长下影线(可选)
检测规则
实体大小小于总波动范围的很小百分比
|收盘价 - 开盘价| < 阈值 × (最高价 - 最低价)
特性
属性 |
值 |
|---|---|
输入 |
OHLC |
回看 |
0 |
输出 |
0, +100, 或 -100 |
交易应用
犹豫不决:买卖双方都未占主导
反转潜力:在趋势极端位置更具意义
需要确认:等待下一根K线确认方向
CDLDOJISTAR - 十字星
与前一根K线形成跳空缺口的十字星。
形态图示
看涨: 看跌:
■ █
■ █
■ █
─┼─ ─┼─
检测规则
前一根K线有较大实体
当前K线是十字星
实体之间存在缺口(十字星与前一根收盘价形成缺口)
交易应用
看涨十字星:下跌趋势后,向下跳空 = 潜在向上反转
看跌十字星:上涨趋势后,向上跳空 = 潜在向下反转
CDLDRAGONFLYDOJI - 蜻蜓十字
具有长下影线且没有或仅有极小上影线的十字星。
形态图示
────┬──── 开盘价 = 收盘价 = 最高价
│
│ 长下影线
│
│
▼
检测规则
开盘价 ≈ 收盘价 ≈ 最高价
长下影线(> 2× 实体大小)
没有或仅有极小上影线
交易应用
看涨:下跌趋势后出现,显示对低价的拒绝
支撑:下影线测试并被拒绝
CDLGRAVESTONEDOJI - 墓碑十字
具有长上影线且没有或仅有极小下影线的十字星。
形态图示
▲
│
│ 长上影线
│
│
────┴──── 开盘价 = 收盘价 = 最低价
检测规则
开盘价 ≈ 收盘价 ≈ 最低价
长上影线(> 2× 实体大小)
没有或仅有极小下影线
交易应用
看跌:上涨趋势后出现,显示对高价的拒绝
阻力:上影线测试并被拒绝
CDLLONGLEGGEDDOJI - 长腿十字
两侧都有长影线的十字星。
形态图示
│
│ 长上影线
│
────┼──── 开盘价 ≈ 收盘价
│
│ 长下影线
│
交易应用
高度犹豫不决:买卖双方都很活跃
波动剧烈:价格波动范围大但无净变动
CDLRICKSHAWMAN - 人力车夫
类似于长腿十字,但实体位于波动范围的中心。
检测规则
十字星形态
开盘价/收盘价接近最高价-最低价范围的中点
两侧都有长影线
CDLHAMMER - 锤子线
看涨反转形态,实体较小位于顶部,下影线很长。
形态图示
┌─┐ 顶部小实体
│█│
└┬┘
│
│ 长下影线(≥ 2× 实体)
│
▼
检测规则
小实体位于交易区间的上端
下影线至少是实体长度的 2 倍
上影线很小或没有
出现在下跌趋势后
交易应用
看涨反转:显示对低价的拒绝
确认:等待次日看涨K线
止损:锤子线低点下方
CDLHANGINGMAN - 上吊线
与锤子线形状相同,但出现在上涨趋势后(看跌)。
形态图示
与锤子线相同。
检测规则
与锤子线形状相同
出现在上涨趋势后(而非下跌趋势)
交易应用
看跌警告:潜在顶部形成
确认至关重要:需要看跌后续确认
CDLINVERTEDHAMMER - 倒锤子线
看涨反转形态,实体较小位于底部,上影线很长。
形态图示
▲
│
│ 长上影线(≥ 2× 实体)
│
┌┴┐
│█│ 底部小实体
└─┘
检测规则
小实体位于区间的下端
长上影线(≥ 2× 实体)
下影线很小或没有
出现在下跌趋势后
交易应用
看涨反转潜力:但需要确认
可靠性较低:不如标准锤子线
CDLSHOOTINGSTAR - 射击之星
与倒锤子线形状相同,但出现在上涨趋势后(看跌)。
形态图示
与倒锤子线相同。
检测规则
与倒锤子线形状相同
出现在上涨趋势后
交易应用
看跌反转:显示对高价的拒绝
更可靠:形态前有向上跳空时
CDLMARUBOZU - 光头光脚
没有影线的完整实体K线。
形态图示
看涨: 看跌:
┌───┐ ┌───┐
│ │ │███│
│ │ │███│
│ │ │███│
└───┘ └───┘
O=L,C=H O=H,C=L
检测规则
没有上影线(开盘价或收盘价 = 最高价)
没有下影线(开盘价或收盘价 = 最低价)
交易应用
强烈信念:买方(白色)或卖方(黑色)占主导
持续:通常表示强烈趋势
CDLLONGLINE - 长实体K线
实体异常长的K线。
检测规则
实体长度 > 平均实体长度 × 阈值
交易应用
K线方向的强烈动量
CDLSHORTLINE - 短实体K线
实体异常短的K线。
检测规则
实体长度 < 平均实体长度 × 阈值
交易应用
动量较弱,潜在暂停或反转
CDLSPINNINGTOP - 纺锤线
两侧都有影线的小实体。
形态图示
│
┌┴┐
│█│ 小实体
└┬┘
│
检测规则
小实体
存在上影线和下影线
不是十字星(有可见实体)
交易应用
犹豫不决:类似于十字星但有小实体
整理:市场稍作喘息
CDLHIGHWAVE - 大浪线
两侧都有很长影线的小实体。
检测规则
小实体
上影线和下影线都非常长
影线明显长于典型情况
交易应用
极度犹豫不决:波动大,无明确方向
反转潜力:在趋势极端位置
CDLTAKURI - 探水竿(蜻蜓十字变体,下影线更长)
下影线非常长的蜻蜓十字变体。
检测规则
十字星或接近十字星的实体
非常长的下影线(> 3× 典型长度)
没有或仅有极小上影线
交易应用
强烈看涨信号:下跌趋势后出现时
极端拒绝:对低价的拒绝
两根K线形态
通过分析两根连续K线形成的形态。
CDLENGULFING - 吞没形态
第二根K线完全吞没第一根K线的强烈反转形态。
形态图示
看涨吞没: 看跌吞没:
│ ▲
■ 第1天(看跌) │
■ █ 第2天(看跌)
│ █
█
▲ █
│ │
█ 第2天(看涨)
█ ■ 第1天(看涨)
█ ■
│ │
检测规则(看涨)
下跌趋势进行中
第一根K线:看跌(黑色/红色实体)
第二根K线:看涨(白色/绿色实体)
第二根实体开盘价低于第一根实体的最低价
第二根实体收盘价高于第一根实体的最高价
特性
属性 |
值 |
|---|---|
回看 |
1 |
输出 |
+100(看涨),-100(看跌) |
交易应用
看涨吞没:底部强烈反转,可靠性高
看跌吞没:顶部强烈反转
成交量:吞没K线成交量较高时增加可靠性
入场:吞没K线收盘时或次日开盘
止损:吞没K线极值下方/上方
CDLHARAMI - 孕线
第二根K线的实体包含在第一根K线的实体内部。
形态图示
看涨孕线: 看跌孕线:
│ ▲
■ │
■ █
■─┬─ █─┬─
■ │█│ █ │■│
■─┴─ █─┴─
│ │
检测规则
第一根K线:长实体
第二根K线:小实体,包含在第一根实体内部
颜色相反(经典)或相同颜色(可靠性较低)
交易应用
反转警告:可靠性低于吞没形态
需要确认:等待第三根K线
"怀孕"形态:日语 harami 意为怀孕
CDLHARAMICROSS - 十字孕线
第二根K线为十字星的孕线。
检测规则
第一根K线:长实体
第二根K线:十字星,包含在第一根实体内部
交易应用
比普通孕线更强:十字星增加了犹豫不决信号
更可靠的反转指示
CDLPIERCING - 刺透形态
看涨反转 - 第二根K线收盘价高于第一根的中点。
形态图示
│
■ 第1天(看跌)
■
■
■──── 中点
│
│
█ 第2天开盘低于第1天最低价
█ 收盘高于第1天中点
█
▲
检测规则
下跌趋势进行中
第一根K线:长看跌实体
第二根K线:开盘价低于第一根的最低价
第二根K线:收盘价高于第一根实体的中点
第二根K线:收盘价不高于第一根的开盘价
交易应用
看涨反转:在支撑位
不如吞没形态强:未完全吞没
CDLDARKCLOUDCOVER - 乌云盖顶
看跌反转 - 刺透形态的反向。
检测规则
上涨趋势进行中
第一根K线:长看涨实体
第二根K线:开盘价高于第一根的最高价
第二根K线:收盘价低于第一根实体的中点
第二根K线:收盘价不低于第一根的开盘价
交易应用
看跌反转:在阻力位
CDLBELTHOLD - 捉腰带线
在极值开盘并向相反方向收盘的长K线。
形态图示
看涨捉腰带线: 看跌捉腰带线:
▲ │
│ ■ 在最高价开盘
█ ■
█ ■
█ ■ 收盘接近最低价
│ 在最低价开盘 ▼
检测规则
看涨:
在或接近最低价开盘
收盘价显著更高
下影线很小或没有
看跌:相反
CDLCOUNTERATTACK - 反击线
两根颜色相反但收盘价相同的K线。
检测规则
第一根K线:沿趋势方向
第二根K线:相反颜色
两根K线收盘价相同
CDLHIKKAKE - 陷阱形态
内包K线突破失败形态。
检测规则
内包K线(第2根K线在第1根内部)
向一个方向突破(第3根K线)
反转回内包K线(第4-5根K线)
CDLHIKKAKEMOD - 修正陷阱形态
带有额外确认的陷阱形态变体。
CDLHOMINGPIGEON - 信鸽形态
类似于孕线但两根K线都是看跌的看涨形态。
检测规则
第一根K线:长看跌实体
第二根K线:较小的看跌实体,包含在第一根内部
CDLINNECK - 颈内线
下跌趋势后的弱延续形态。
检测规则
下跌趋势
第一根K线:长看跌
第二根K线:向下跳空开盘,收盘价等于或略低于第一根的收盘价
CDLONNECK - 颈上线
类似于颈内线,但收盘价在第一根的最低价。
CDLKICKING - 踢脚形态
两根颜色相反且带缺口的秃头K线的强烈反转。
形态图示
看涨: 看跌:
┌───┐ ┌───┐
│███│ 第1天 │ │ 第1天
│███│ (看跌) │ │ (看涨)
└───┘ └───┘
↑缺口 ↓缺口
┌───┐ ┌───┐
│ │ 第2天 │███│ 第2天
│ │ (看涨) │███│ (看跌)
└───┘ └───┘
检测规则
第一根K线:秃头K线(无影线)
相反方向缺口
第二根K线:相反颜色的秃头K线
交易应用
非常强烈的信号:两根对立的秃头K线
罕见形态:出现时可靠性高
CDLKICKINGBYLENGTH - 按长度踢脚形态
通过K线长度比较确定的踢脚形态。
CDLMATCHINGLOW - 相同低价
两根具有相同最低价的K线 - 支撑确认。
检测规则
两根看跌K线
收盘价相同
CDLTHRUSTING - 插入线
弱看涨形态 - 收盘进入前一根实体但低于中点。
检测规则
下跌趋势
第一根K线:看跌
第二根K线:开盘价低于第一根的最低价
第二根K线:收盘价在第一根实体内部但低于中点
CDL2CROWS - 两只乌鸦
上涨趋势后的看跌延续。
检测规则
上涨趋势,第一根为长看涨K线
第二根K线:看跌,向上跳空,收盘价在第一根实体内部
第三根K线:看跌,开盘价在第二根内部,收盘价在第一根内部
三根或更多K线形态
通过分析三根或更多连续K线形成的形态。
CDLMORNINGSTAR - 启明星
强烈的看涨反转形态。
形态图示
第1天: 第2天: 第3天:
│ ▲
■ │
■ █
■ █
■ ─┼─ █
│ │ │
检测规则
下跌趋势进行中
第一根K线:长看跌实体
第二根K线:小实体(星),与第一根向下跳空
第三根K线:长看涨实体,收盘价高于第一根的中点
特性
属性 |
值 |
|---|---|
回看 |
2 |
输出 |
+100 |
交易应用
强烈看涨反转:最可靠的形态之一
星形缺口很重要:缺口越大 = 信号越强
入场:第三根K线收盘时
止损:星形(第二根K线)最低价下方
CDLEVENINGSTAR - 黄昏星
强烈的看跌反转形态(启明星的反向)。
形态图示
第1天: 第2天: 第3天:
▲ │ │
│ ─┼─ ■
█ ■
█ ■
█ ■
│ │
检测规则
上涨趋势进行中
第一根K线:长看涨实体
第二根K线:小实体(星),与第一根向上跳空
第三根K线:长看跌实体,收盘价低于第一根的中点
交易应用
强烈看跌反转:可靠性高
CDLMORNINGDOJISTAR - 启明十字星
中间K线为十字星的启明星。
交易应用
比普通启明星更强:十字星增加了强调
CDLEVENINGDOJISTAR - 黄昏十字星
中间K线为十字星的黄昏星。
CDL3WHITESOLDIERS - 三白兵
三根连续的长看涨K线。
形态图示
▲
│
▲ █
│ █
▲ █ │
│ █
▲ █ │
│ █
█ │
│
检测规则
三根连续的看涨K线
每根开盘价在前一根实体内部
每根收盘价接近其最高价
每根都有长实体
交易应用
强烈看涨延续/反转:非常可靠
成交量确认:成交量较高时增强信号
CDL3BLACKCROWS - 三只乌鸦
三根连续的长看跌K线(三白兵的反向)。
检测规则
三根连续的看跌K线
每根开盘价在前一根实体内部
每根收盘价接近其最低价
每根都有长实体
交易应用
强烈看跌延续/反转:非常可靠
CDL3INSIDE - 三内部
孕线后跟确认K线。
检测规则(三内部向上)
前两根K线形成看涨孕线
第三根K线收盘价高于第一根K线的开盘价
CDL3OUTSIDE - 三外部
吞没形态后跟确认K线。
检测规则(三外部向上)
前两根K线形成看涨吞没
第三根K线收盘价高于第二根K线的收盘价
CDL3LINESTRIKE - 三线打击
三白兵/三只乌鸦后跟反向吞没。
检测规则
三白兵(或三只乌鸦)
第四根K线以相反方向吞没所有三根
交易应用
尽管看起来像反转,但通常是延续:通常延续原趋势
反直觉:看起来像反转但往往不是
CDL3STARSINSOUTH - 南方三星
显示卖压递减的看涨反转。
检测规则
三根看跌K线
每根实体逐渐变短
每根下影线逐渐变短
显示看跌动量递减
CDLABANDONEDBABY - 弃婴形态
带有孤岛缺口的极端反转。
检测规则
第一根K线:沿趋势方向
第二根K线:跳空离开的十字星(孤岛)
第三根K线:相反方向,跳空越过十字星
交易应用
非常强烈的反转:缺口隔离使其罕见且可靠
罕见形态:不常见但可靠性高
CDLADVANCEBLOCK - 前进受阻
三白兵形态的弱化。
检测规则
三根看涨K线
第二根和第三根实体逐渐变小
第二根和/或第三根有长上影线
交易应用
上涨趋势弱化:看涨动量减弱
CDLBREAKAWAY - 突破形态
缺口后跟趋势,然后反向缺口。
CDLCONCEALBABYSWALL - 隐藏的燕子
带有两根秃头K线的罕见看涨形态。
CDLGAPSIDESIDEWHITE - 上下缺口并列白线
缺口后跟两根相似的白K线。
CDLIDENTICAL3CROWS - 相同三只乌鸦
每根开盘价等于前一根收盘价的三只乌鸦。
CDLLADDERBOTTOM - 梯底形态
五根K线的看涨反转形态。
CDLMATHOLD - 铺垫形态
五根K线的延续形态。
CDLRISEFALL3METHODS - 上升/下降三法
带有整理的延续形态。
检测规则(上升)
第一根K线:长看涨
接下来2-4根K线:小看跌,保持在第一根范围内
最后一根K线:长看涨,收盘价高于第一根的收盘价
交易应用
强烈延续:上涨趋势中的暂停然后恢复
CDLSEPARATINGLINES - 分离线
开盘价相同但方向相反的K线。
CDLSTALLEDPATTERN - 停滞形态
看涨趋势停滞。
CDLSTICKSANDWICH - 三明治形态
两根相似的看跌K线中间夹一根看涨K线。
CDLTASUKIGAP - 跳空并列形态
带有部分缺口回补的延续形态。
CDLTRISTAR - 三星形态
三根连续的十字星。
检测规则
三根连续的十字星
中间的十字星与第一根形成缺口
第三根十字星与第二根形成缺口(相反方向)
交易应用
非常罕见:极度犹豫不决
强烈反转潜力:出现时
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);