资讯详情

TA-Lib Python 形态识别 61 个蜡烛图 CDL 函数实战:从行情数组到买卖信号

📅 2026/11/4 1:34:05 | 华诺云谱 👁 阅读
TA-Lib Python 形态识别 61 个蜡烛图 CDL 函数实战:从行情数组到买卖信号
TA-Lib Python 形态识别 61 个蜡烛图 CDL 函数实战从行情数组到买卖信号【免费下载链接】ta-lib-pythonPython wrapper for TA-Lib (http://ta-lib.org/).项目地址: https://gitcode.com/gh_mirrors/ta/ta-lib-python用 TA-Lib 的 Python 封装做 Python 形态识别61 个CDL蜡烛图函数、Function / Abstract / Stream 三种调用方式一次讲透。读完即可在真实 K 线上提取吞没、晨星等信号。 快速上手拿到第一个形态信号假设你手里有一段日线行情想批量扫描三只乌鸦这个经典看跌组合。Function API 一行搞定import numpy as np import talib # 任意等长的 open / high / low / close 一维浮点数组 o np.random.random(120) h o 0.05 l o - 0.05 c o np.random.random(120) * 0.1 result talib.CDL3BLACKCROWS(o, h, l, c) signals np.where(result -100)[0] # 所有触发看跌形态的 K 线位置result与输入等长每个位置是一个整数-100表示该根 K 线触发了看跌形态100是看涨0是未触发。对信号数组做一次np.where过滤就得到了可直接用于回测的买卖点位。读懂输出-100 / 0 / 100 三值信号体系形态识别是 TA-Lib 十类函数组中输出最特殊的一组均线输出连续价格序列而 形态识别函数参考 里的 61 个函数输出的是一列离散信号。取值含义典型用途-100触发看跌形态作为卖出/风控信号0该 K 线未触发任何形态忽略100触发看涨形态作为买入信号三点补充返回类型是np.int32数组talib/_ta_lib.pyi 中 61 个函数的返回类型统一声明为NDArray[np.int32]。三值约定写在每个函数的 docstring 里Cython 实现 约第 919 行可见integer (values are -100, 0 or 100)抽象层则由 talib/_abstract.pxi 约第 754 行的Output is a candlestick标志统一渲染出同样的说明。方向语义有测试背书tests/test_func.py 约第 288 行的test_CDL3BLACKCROWS断言三只乌鸦触发位置输出-100。输入约定与 lookback 机制输入侧只有四个数组且必须等长。所有形态函数的签名都是CDLxxxx(open, high, low, close)四个一维float64数组长度一致否则 talib/_func.pxi 中check_length4直接报错。任一数组长度为 0 时返回空数组。为什么没有timeperiod参数均线类函数需要用户指定窗口长度而形态的判定周期由形态本身决定——十字星只看 1 根吞没看 2 根晨星看 3 根——所以签名里没有可配参数7 个形态函数多出的penetration例外见后文。lookback 之前的位置填 0不是 NaN。与其他函数把前段设为 NaN 不同形态函数把历史不足、无法判定的位置统一填 0含义是未触发下游无需做 NaN 处理。机制在 talib/_func.pxi 约第 937 行check_begidx4先跳过输入前部的 NaN得到begidxlookback begidx lib.TA_CDL2CROWS_Lookback()lookback 值由底层 C 库决定make_int_array(length, lookback)分配输出并令前段为 0。仓库测试给出了直观例子20 根 K 线输入CDL3BLACKCROWS输出前 17 位全 0、第 17 位索引从 0 计为-100与三只乌鸦需要 3 根 K 线的直觉吻合。61 个形态全景以下按构成 K 线数量把 61 个函数分成三组与 talib/_ta_lib.pyi 中的声明一一对应。信号方向指形态出现时的典型语义多数形态随所处趋势双向成立。单根 K 线形态17 个函数名形态名信号方向典型场景CDLDOJIDoji 十字星双向多空平衡变盘预警CDLDRAGONFLYDOJIDragonfly Doji 蜻蜓十字星偏看涨低位探底回升CDLGRAVESTONEDOJIGravestone Doji 墓碑十字星偏看跌高位冲高回落CDLLONGLEGGEDDOJILong Legged Doji 长腿十字星双向多空激烈拉锯CDLRICKSHAWMANRickshaw Man 黄包车夫双向十字星变体CDLSPINNINGTOPSpinning Top 纺锤线双向动能减弱CDLHIGHWAVEHigh-Wave Candle 高浪线双向四影线十字星变体CDLHAMMERHammer 锤子线看涨下跌末端反转CDLINVERTEDHAMMERInverted Hammer 倒锤子线看涨下跌末端反转CDLHANGINGMANHanging Man 上吊线看跌上涨末端反转CDLSHOOTINGSTARShooting Star 射击之星看跌上涨末端反转CDLTAKURITakuri 探水竿偏看涨带长下影的蜻蜓十字CDLMARUBOZUMarubozu 光头光脚双向单边强势CDLCLOSINGMARUBOZUClosing Marubozu 收盘光头光脚双向单边强势变体CDLLONGLINELong Line Candle 长实体线双向趋势延续CDLSHORTLINEShort Line Candle 短实体线双向趋势停顿CDLBELTHOLDBelt-hold 腰带线双向开盘即单边的反转双根 K 线组合16 个函数名形态名信号方向典型场景CDL2CROWSTwo Crows 两只乌鸦看跌顶部反转CDLENGULFINGEngulfing Pattern 吞没形态双向最强反转信号之一CDLHARAMIHarami Pattern 孕线双向动能衰竭CDLHARAMICROSSHarami Cross Pattern 十字孕线双向动能衰竭CDLDOJISTARDoji Star 十字星线双向趋势犹豫CDLPIERCINGPiercing Pattern 刺透形态看涨底部反转CDLDARKCLOUDCOVERDark Cloud Cover 乌云盖顶看跌顶部反转CDLHOMINGPIGEONHoming Pigeon 家鸽形态双向长实体后收小实体CDLMATCHINGLOWMatching Low 并列低价偏看跌双底支撑受压CDLONNECKOn-Neck Pattern 颈上线看跌长阴后跳空回落CDLINNECKIn-Neck Pattern 颈内线看跌颈上线变体CDLCOUNTERATTACKCounterattack 反攻形态偏看跌阴线反攻前实体CDLTHRUSTINGThrusting Pattern 插入形态双向阴线刺入前实体上部CDLSEPARATINGLINESSeparating Lines 分离线双向趋势延续确认CDLUPSIDEGAP2CROWSUpside Gap Two Crows 向上跳空两只乌鸦看跌跳空后连阴回落CDLCONCEALBABYSWALLConcealing Baby Swallow 藏婴吞没看跌类弃婴顶部形态三根及以上复合形态28 个函数名形态名信号方向典型场景CDL3BLACKCROWSThree Black Crows 三只乌鸦看跌顶部趋势反转CDL3WHITESOLDIERSThree Advancing White Soldiers 三白兵看涨底部趋势反转CDLIDENTICAL3CROWSIdentical Three Crows 相同三只乌鸦看跌OHLC 相近的三连阴CDL3INSIDEThree Inside Up/Down 三内部上涨/下跌双向孕线后突破/失守CDL3OUTSIDEThree Outside Up/Down 三外部上涨/下跌双向吞没后扩展突破CDL3LINESTRIKEThree-Line Strike 三线打击双向三同色后反向长实体CDL3STARSINSOUTHThree Stars In The South 南方三星看涨深跌后三连小实体CDLABANDONEDBABYAbandoned Baby 弃婴形态双向极端位置孤星反转CDLADVANCEBLOCKAdvance Block 前进阻挡双向长实体后同高/同低CDLBREAKAWAYBreakaway 脱离形态双向长上/下影确认方向CDLEVENINGDOJISTAREvening Doji Star 黄昏十字星看跌顶部三根反转CDLEVENINGSTAREvening Star 黄昏星看跌顶部三根反转CDLMORNINGDOJISTARMorning Doji Star 早晨十字星看涨底部三根反转CDLMORNINGSTARMorning Star 晨星看涨底部三根反转CDLGAPSIDESIDEWHITEUp/Down-gap side-by-side white lines 跳空并列阳线双向跳空后并列小阳CDLHIKKAKEHikkake Pattern 陷阱形态双向前影线与突破方向相反CDLHIKKAKEMODModified Hikkake Pattern 修正陷阱形态双向陷阱形态变体CDLKICKINGKicking 反冲形态双向跳空脱离前一根CDLKICKINGBYLENGTHKicking较长 marubozu 定多空双向以较长光头光脚定方向CDLLADDERBOTTOMLadder Bottom 梯底形态偏看涨长影后阶梯上移CDLMATHOLDMat Hold 垫住形态看涨上升趋势中继CDLRISEFALL3METHODSRising/Falling Three Methods 上升/下降三法双向大实体三整理确认CDLSTALLEDPATTERNStalled Pattern 停顿形态双向长实体遇同点受阻CDLSTICKSANDWICHStick Sandwich 夹心形态双向十字星夹长实体CDLTASUKIGAPTasuki Gap 脱节竭尽缺口形态双向跳空未被完全回补CDLTRISTARTristar Pattern 三星形态双向三根十字星后反向CDLUNIQUE3RIVERUnique 3 River 独特三河双向四根同开/同收CDLXSIDEGAP3METHODSUpside/Downside Gap Three Methods 向上/向下跳空三法双向跳空三整理反向penetration7 个函数的灵敏度开关61 个函数中有且仅有7 个额外接受一个penetration浮点参数默认0见 talib/_ta_lib.pyi 约第 701 行penetration: float 0。它控制形态判定中对 K 线实体穿透/重叠比例的宽容程度函数形态典型场景CDLDARKCLOUDCOVER乌云盖顶顶部反转CDLABANDONEDBABY弃婴形态极端反转CDLEVENINGSTAR黄昏星顶部反转CDLEVENINGDOJISTAR黄昏十字星顶部反转CDLMORNINGSTAR晨星底部反转CDLMORNINGDOJISTAR早晨十字星底部反转CDLMATHOLD垫住形态上升趋势中继调参建议penetration0是最严格的零容忍判定若目标品种波动大、实体比例经常差一点而漏触发可以调高取值例如penetration0.2放宽重叠要求。注意具体阈值定义在底层 C 库 TA-Lib 中Python 封装层只是透传不同版本间行为以 C 库为准。三种调用方式怎么选维度Function APIAbstract APIStream API适用场景历史数据一次性批量扫描dict / pandas / polars 数据管道实时行情逐根增量识别输入形式4 个 NumPy 数组按位传参dict数组、DataFrame句柄接收数组后续逐根喂标量是否增量否整段重算否整段重算是每根 K 线 O(1) 更新输出int32数组int32数组与 Function API 逐位相等最新一根的int标量Abstract 方式——输入是字典时直接运行接 pandas DataFrame 也只需同一套入口docs/abstract.mdimport numpy as np import pandas as pd from talib import abstract # 方式一dict of arrays data {open: np.random.random(100), high: np.random.random(100), low: np.random.random(100), close: np.random.random(100)} sig abstract.Function(CDLDOJI).run(data) # 方式二pandas DataFrame列为 open/high/low/close df pd.DataFrame(data) sig2 abstract.CDLDOJI(df) print(sig2[-5:]) # 与 Function API 结果一致tests/test_abstract.py 约第 114 行直接验证了两种入口的等价性func.CDLDOJI(...)与abstract.Function(CDLDOJI).run(...)输出完全相同。Stream 方式——打开句柄后用update逐根推进无需重算历史from talib import stream handle stream.CDLDOJI(o, h, l, c) # 用历史 K 线建立句柄 print(handle.value) # 最新一根的信号-100 / 0 / 100 的 int 标量 signal handle.update(o_new, h_new, l_new, c_new) # 新 K 线收盘后增量计算句柄底层是 talib/_stream.pxi 为每个形态封装的OpenAndFill / Open / Update / Peek / Value / Clone / Close / OutRange / Advance一组 C 流式函数约第 280 行起handle.value与 Function API 数组末位逐位一致且结果可 pickle 序列化见 tests/test_stream.py 约第 311 行。实现细节与测试验证Cython 模板talib/_func.pxi 中 61 个形态函数按同一模板生成以CDL2CROWS约第 911 行为例check_array校验四个数组 →check_length4校验等长 →check_begidx4跳过 NaN 前段 → 调lib.TA_CDL2CROWS_Lookback()与lib.TA_CDL2CROWS→make_int_array产出前段填 0 的int32输出。类型桩talib/_ta_lib.pyi 收录 61 个函数签名约第 650 行起返回类型统一NDArray[np.int32]IDE 补全与静态检查以此为准。函数清单talib/_func.pxi 约第 7054 行的__TA_FUNCTION_NAMES__与 talib/init.py 的导出列表约第 269 行起完整收录全部CDL*名称talib.get_functions()亦与其一致。批量测试tests/test_func.py 用 20 根样例 K 线逐位断言CDL3BLACKCROWS输出精确验证前段填 0 触发位 -100。流式测试tests/test_stream.py 通过Output is a candlestick标志自动收集全部形态函数做参数化测试覆盖句柄创建、增量update与批量结果的一致性。相关文档形态识别函数参考全部函数列表函数 API 使用指南抽象 API 快速上手文档索引【免费下载链接】ta-lib-pythonPython wrapper for TA-Lib (http://ta-lib.org/).项目地址: https://gitcode.com/gh_mirrors/ta/ta-lib-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑