找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

979

积分

0

好友

111

主题
发表于 前天 02:09 | 查看: 6| 回复: 0

之前我们讨论过一些偏基础的金融库,比如 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()  # 画出回测盈亏图

上述代码直接计算并可视化持仓及盈亏情况。
TTI回测结果示意图

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 则是一个生产工具,让你能够搭建属于自己的、高度定制化的特征层,并在此基础上构建独特的策略逻辑。

许多技术形态(如趋势线、支撑阻力)本身并无绝对的对错标准。从零开始实现不一定更好,而成熟库的价值在于能让你快速搭建起策略的骨架。先让整个流程运行起来,再在实践中发现问题、逐步优化,这往往比一开始就追求完美方案更为务实和高效。




上一篇:Nginx反向代理性能优化实践:百万并发下HTTP协议处理与缓存配置
下一篇:从FreePBX案例看开源商业化:VoIP技术的闭源重生之路
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-17 16:02 , Processed in 0.111301 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表