# K线形态识别 TechKit 实现了 61 种日本K线形态,与 TA-Lib 100% 兼容。 ## 形态输出值 | 值 | 含义 | |-------|---------| | +100 | 检测到看涨形态 | | -100 | 检测到看跌形态 | | +200 | 强烈看涨形态 | | -200 | 强烈看跌形态 | | 0 | 未检测到形态 | ## API 用法 ::::{tab-set} :::{tab-item} Python ```python 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), } ``` ::: :::{tab-item} Node.js ```javascript const tk = require('techkit'); // 单个形态 const hammer = tk.CDLHAMMER(open, high, low, close); // 批量扫描所有形态 const results = tk.scanAllPatterns(open, high, low, close); ``` ::: :::{tab-item} C ```c 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种形态: ::::{tab-set} :::{tab-item} Python ```python 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)} 次出现") ``` ::: :::{tab-item} Node.js ```javascript const tk = require('techkit'); // 批量扫描 const results = tk.scanAllPatterns(open, high, low, close); console.log(results); ``` ::: ::::