|
在技术指标库中,知名度最高的可能是 TA-Lib 库,可以参看前期的文章:
金字塔+Python,最强大的技术分析库
https://www.24krmb.com/thread-3149-1-1.html
但 TA-Lib 库的Python接口需要预先安装一个C库,安装起来比较复杂,介绍另一个技术指标库:Pandas Technical Analysis(Pandas TA)库。Pandas TA 也是一个常用的技术指标库,功能不比 TA-Lib 少,安装要比 TA-Lib 简单很多。
Pandas TA 易于使用,它利用了Pandas包,提供了130多个指标和实用功能以及60多个K线形态模式。它是一个数字时间序列特征生成器,典型的时间序列数据列包括:"open","high","low","close","voLUme"。Pandas TA利用了Pandas强大的数据处理功能,为开发人员提供了一个方便的接口,可以轻松地将各种技术分析指标和工具函数应用于金融时间序列数据。
Pandas TA的技术指标
Pandas TA的技术指标主要有以下几类:
1. 均线类指标(Overlap)
2. 动量指标(Momentum)
3. 趋势指标(Trend)
4. 波动率指标(Volatility)
5. 成交量指标(Volume)
6. 统计指标(Statistics)
7. 其他指标
一、Pandas TA的安装和调用
在Python环境下,你可以使用pip进行安装。在终端或命令行中运行以下命令:
安装完毕后,你可以在Python中导入pandas_ta并使用它:
用以下命令可以查看Pandas TA支持的全部技术指标和K线形态:
- df = pd.DataFrame()
- df.ta.indicators()
复制代码
二、Pandas TA的基本使用示例
Pandas TA可以单独调用,也可以作为Pandas DataFrame 的扩展使用。pandas_ta的大多数指标将返回一个 Pandas Series。像 MACD, BBANDS, KC 等返回多个数据的将返回一个 Pandas DataFrame。
Pandas TA库与TA Lib 库紧密相关,如果你还安装了 TA Lib库,则默认情况下Pandas TA会启用 TA Lib 计算,但可以使用参数 talib=False 禁用每个指标的 TA Lib 计算。例如:
- ta.ema(close=df['close'], length=3, talib=False)
复制代码
另外,Pandas TA大部分的K线形态模式都依赖 TA Lib,如果未安装 TA Lib,则只有内置的少数几个K线形态模式可用。
1. 单独调用的方式
例如,用pandas_ta计算EMA可以这么做:
- import pandas as pd
- import numpy as np
- import pandas_ta as ta
- # 创建一个DataFrame
- df = pd.DataFrame({
- 'close': np.random.random(10),
- })
-
- # 调用pandas_ta的ema函数
- ema = ta.ema(close=df['close'], length=3)
- # 打印输出
- print(ema)
复制代码
2. 作为 Pandas DataFrame 扩展的方式
这种方式允许你直接在 DataFrame 上调用技术分析函数,无需手动将价格数据传递给每个函数。例如你可以这样调用pandas_ta来计算EMA:
- # 计算EMA
- df.ta.ema(close='close', length=3, append=True)
- # 打印输出
- print(df)
复制代码
可以看到,作为DataFrame的扩展来调用pandas_ta更加方便,在调用时加上“append=True”的参数,还能将计算结果作为一个新的列追加到原DataFrame中。默认情况下,如果DataFrame使用小写的列名:open、high、low、close 和 volume,则使用'ta' 扩展时可以直接调用,无需指定,因此上述代码还可以简化为:
- df.ta.ema(length=3, append=True)
复制代码
三:Pandas TA的策略
Pandas TA 提供了一种称为 "策略"(Strategy) 的功能,运用该功能可以一次性的计算多个指标值。
1. 创建策略
创建策略需要用 Pandas TA 的 Strategy 函数,以下是创建策略的示例:
- # 创建一个名为`custom_a`的策略
- custom_a = ta.Strategy(
- name = "A",
- ta = [
- {"kind": "sma", "length": 10},
- {"kind": "rsi"},
- ]
- )
复制代码
在上述代码中,创建了一个名为`custom_a`的策略,该策略包含一个简单移动平均线(SMA)指标,周期长度为 10 ;还包括相对强弱指数(RSI)指标,未指定参数(此时将使用默认参数)。
2. 运行策略
创建策略后就可以应用此策略。以下是一个示例:
- # 假设你有一个名为'df'的Pandas DataFrame,其中包含股票历史价格数据
- df = pd.read_csv('your_stock_data.csv')
- # 应用策略
- df.ta.strategy(custom_a)
复制代码
在上述代码中,我们假设有一个名为`df`的Pandas DataFrame,其中包含股票的历史价格数据。然后,我们使用`df.ta.strategy(custom_a)`来应用我们的`custom_a`策略。这将根据策略中定义的指标进行计算,并将结果添加到DataFrame中。 |
|