之前我们讨论过一些偏基础的金融库,比如 stockstats 可以很快帮我们把常见指标算出来。在实战中,很快会发现“有指标”还远远不够。很多时候需要的是更复杂的信息结构,比如趋势方向、支撑位和阻力位的位置关系,信号之间的组合判断,以及最基本也最容易被忽略的回测验证。
今天来看看一些较为高阶的 Python 金融库。许多库都被称为“技术分析库”,但它们的目标其实各不相同。像 TTI 和 pandas-ta 恰好是两种走向几乎完全相反的代表。它们正好位于交易系统中的两个不同层次,一个侧重于结构和决策的雏形,另一个侧重于高阶信息的提取和配置。
如果粗略分一下层次,大概可以理解成两层:
更底层的是“特征层”,主要工作是把价格序列加工成可以使用的结构化信息,比如各种技术指标、趋势信息、支撑阻力等,这一层尽量客观,尽量少做判断。
再上一层是“策略层”,开始引入规则,比如什么时候算买点、什么时候该卖出,这一层不可避免会掺杂人的主观选择。
在这个框架下看,TTI 更靠近策略,pandas-ta 更靠近特征。它们的差异,本质上是封装程度的差异。
TTI:偏向策略的快速原型工具
TTI 的设计思路是高度封装,更像一个“半成品策略引擎”。它不仅帮你计算指标,还直接生成“信号”(买点/卖点)判断,同时打包了图形显示和回测功能。用户能直接看到类似“当前是买、卖还是观望”的结果,这对初学者建立量化交易的基本直觉非常直观。
它的核心缺点是灵活性受限,只能修改预设的指标参数,无法进行复杂的规则调整和指标组合,这在实战场景中往往不够用。
- 无法自定义交易规则(例如:仅在均线金叉且成交量放大时买入)
- 无法组合多个指标进行信号过滤(例如:MACD 金叉与 RSI 超卖双重确认)
- 无法实现复杂的仓位管理、动态止损止盈等高级策略逻辑
因此,TTI 更像一个“策略的样板间”,更适合用于快速测试、概念验证和学习“指标 -> 信号 -> 回测”这一完整链路,而非直接用于构建实盘交易系统。
安装方法:
pip install tti
使用示例:
import pandas as pd
from tti.indicators import MovingAverageConvergenceDivergence
macd = MovingAverageConvergenceDivergence(input_data=df) # 初始化
ti_df = macd.getTiData() # 得到 MACD 指标数据(DataFrame)
signal, signal_code = macd.getTiSignal() # 得到当前是 buy/hold/sell
print(signal, signal_code)
macd.getTiGraph().show()
# 执行回测
simulation_df, stats, sim_chart = macd.getTiSimulation(
close_values = df[['close']],
max_exposure = None,
short_exposure_factor = 1.0 # 做空参数
)
print(stats) # 输出回测统计信息
sim_chart.show() # 画出回测盈亏图
上述代码直接计算并可视化持仓及盈亏情况。

pandas-ta:灵活强大的特征工厂
与 TTI 相反,pandas-ta 更像一个“特征工厂”,它几乎从不帮你下结论,只负责将原始价格序列加工成各种各样的技术指标和特征。
它的输出通常就是为你的 DataFrame 新增一系列列,剩下的策略构建工作完全交给开发者。如何组合这些指标?如何定义有效信号?设置怎样的过滤条件?全部需要你自己设计。
这种设计的优点显而易见:自由度极高。无论是趋势类、动量类还是震荡类指标都有现成实现,像支撑阻力、趋势方向、通道上下轨这类高阶信息也能快速计算。你可以将其视为一个强大的“金融特征工程原材料库”,先快速铺开所有基础功能,再逐步精细化打磨策略细节。
相应地,它的使用门槛也更高,但这种方式更贴近真实量化策略的开发流程,是构建自定义策略模型的强大基础。
安装方法:
pip install pandas-ta
若 Python 版本低于 3.12,可通过下载包安装:
$ curl https://www.pandas-ta.dev/assets/zip/pandas_ta-0.3.14b.tar.gz -o pandas-ta.tar.gz
$ pip3 install pandas-ta.tar.gz
使用示例: pandas-ta 可以方便地计算多种技术指标,下图展示了其计算出的阻力位和支撑位。
(pandas-ta 提供多种趋势与支撑阻力计算方法,我们将在后续文章中详细介绍其高级功能。)
TTI 更像一个认知工具,用于快速建立从指标到回测的完整直觉;而 pandas-ta 则是一个生产工具,让你能够搭建属于自己的、高度定制化的特征层,并在此基础上构建独特的策略逻辑。
许多技术形态(如趋势线、支撑阻力)本身并无绝对的对错标准。从零开始实现不一定更好,而成熟库的价值在于能让你快速搭建起策略的骨架。先让整个流程运行起来,再在实践中发现问题、逐步优化,这往往比一开始就追求完美方案更为务实和高效。