PandasTA 源码解析(十九)(1)

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: PandasTA 源码解析(十九)

.\pandas-ta\tests\test_ext_indicator_overlap_ext.py

# 从当前包中导入 sample_data 和 pandas_ta 模块
from .config import sample_data
from .context import pandas_ta
# 从 unittest 模块中导入 skip 和 TestCase 类
from unittest import skip, TestCase
# 从 pandas 模块中导入 DataFrame 类
from pandas import DataFrame
# 定义测试类 TestOverlapExtension,继承自 TestCase 类
class TestOverlapExtension(TestCase):
    # 在测试类中所有测试方法执行之前执行,用于设置测试数据
    @classmethod
    def setUpClass(cls):
        cls.data = sample_data
    # 在测试类中所有测试方法执行之后执行,用于清理测试数据
    @classmethod
    def tearDownClass(cls):
        del cls.data
    # 在每个测试方法执行之前执行的方法,此处为空
    def setUp(self): pass
    
    # 在每个测试方法执行之后执行的方法,此处为空
    def tearDown(self): pass
    # 测试 alma 方法的扩展功能
    def test_alma_ext(self):
        # 调用 data 对象的 ta 属性的 alma 方法,并将结果追加到 data 中
        self.data.ta.alma(append=True)
        # 断言 data 对象是 DataFrame 类的实例
        self.assertIsInstance(self.data, DataFrame)
        # 断言 data 对象的最后一列的列名为 "ALMA_10_6.0_0.85"
        self.assertEqual(self.data.columns[-1], "ALMA_10_6.0_0.85")
    # 测试 dema 方法的扩展功能,以下测试方法同理
    def test_dema_ext(self):
        self.data.ta.dema(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "DEMA_10")
    def test_ema_ext(self):
        self.data.ta.ema(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "EMA_10")
    def test_fwma_ext(self):
        self.data.ta.fwma(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "FWMA_10")
    def test_hilo_ext(self):
        self.data.ta.hilo(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(list(self.data.columns[-3:]), ["HILO_13_21", "HILOl_13_21", "HILOs_13_21"])
    def test_hl2_ext(self):
        self.data.ta.hl2(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "HL2")
    def test_hlc3_ext(self):
        self.data.ta.hlc3(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "HLC3")
    def test_hma_ext(self):
        self.data.ta.hma(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "HMA_10")
    def test_hwma_ext(self):
        self.data.ta.hwma(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "HWMA_0.2_0.1_0.1")
    def test_jma_ext(self):
        self.data.ta.jma(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "JMA_7_0")
    def test_kama_ext(self):
        self.data.ta.kama(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "KAMA_10_2_30")
    def test_ichimoku_ext(self):
        self.data.ta.ichimoku(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(list(self.data.columns[-5:]), ["ISA_9", "ISB_26", "ITS_9", "IKS_26", "ICS_26"])
    def test_linreg_ext(self):
        self.data.ta.linreg(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "LR_14")
    def test_mcgd_ext(self):
        self.data.ta.mcgd(append=True)
        self.assertIsInstance(self.data, DataFrame)
        self.assertEqual(self.data.columns[-1], "MCGD_10")
    # 测试扩展方法:计算中间点指标
    def test_midpoint_ext(self):
        # 调用中间点指标计算方法,并将结果追加到数据帧中
        self.data.ta.midpoint(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"MIDPOINT_2"
        self.assertEqual(self.data.columns[-1], "MIDPOINT_2")
    # 测试扩展方法:计算中间价指标
    def test_midprice_ext(self):
        # 调用中间价指标计算方法,并将结果追加到数据帧中
        self.data.ta.midprice(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"MIDPRICE_2"
        self.assertEqual(self.data.columns[-1], "MIDPRICE_2")
    # 测试扩展方法:计算OHLC4指标
    def test_ohlc4_ext(self):
        # 调用OHLC4指标计算方法,并将结果追加到数据帧中
        self.data.ta.ohlc4(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"OHLC4"
        self.assertEqual(self.data.columns[-1], "OHLC4")
    # 测试扩展方法:计算PWMA指标
    def test_pwma_ext(self):
        # 调用PWMA指标计算方法,并将结果追加到数据帧中
        self.data.ta.pwma(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"PWMA_10"
        self.assertEqual(self.data.columns[-1], "PWMA_10")
    # 测试扩展方法:计算RMA指标
    def test_rma_ext(self):
        # 调用RMA指标计算方法,并将结果追加到数据帧中
        self.data.ta.rma(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"RMA_10"
        self.assertEqual(self.data.columns[-1], "RMA_10")
    # 测试扩展方法:计算SINWMA指标
    def test_sinwma_ext(self):
        # 调用SINWMA指标计算方法,并将结果追加到数据帧中
        self.data.ta.sinwma(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"SINWMA_14"
        self.assertEqual(self.data.columns[-1], "SINWMA_14")
    # 测试扩展方法:计算SMA指标
    def test_sma_ext(self):
        # 调用SMA指标计算方法,并将结果追加到数据帧中
        self.data.ta.sma(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"SMA_10"
        self.assertEqual(self.data.columns[-1], "SMA_10")
    # 测试扩展方法:计算SSF指标
    def test_ssf_ext(self):
        # 调用SSF指标计算方法,并将结果追加到数据帧中,使用两个极点
        self.data.ta.ssf(append=True, poles=2)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"SSF_10_2"
        self.assertEqual(self.data.columns[-1], "SSF_10_2")
        # 再次调用SSF指标计算方法,并将结果追加到数据帧中,使用三个极点
        self.data.ta.ssf(append=True, poles=3)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"SSF_10_3"
        self.assertEqual(self.data.columns[-1], "SSF_10_3")
    # 测试扩展方法:计算SWMA指标
    def test_swma_ext(self):
        # 调用SWMA指标计算方法,并将结果追加到数据帧中
        self.data.ta.swma(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"SWMA_10"
        self.assertEqual(self.data.columns[-1], "SWMA_10")
    # 测试扩展方法:计算超级趋势指标
    def test_supertrend_ext(self):
        # 调用超级趋势指标计算方法,并将结果追加到数据帧中
        self.data.ta.supertrend(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后四列的列名分别为"SUPERT_7_3.0", "SUPERTd_7_3.0", "SUPERTl_7_3.0", "SUPERTs_7_3.0"
        self.assertEqual(list(self.data.columns[-4:]), ["SUPERT_7_3.0", "SUPERTd_7_3.0", "SUPERTl_7_3.0", "SUPERTs_7_3.0"])
    # 测试扩展方法:计算T3指标
    def test_t3_ext(self):
        # 调用T3指标计算方法,并将结果追加到数据帧中
        self.data.ta.t3(append=True)
        # 断言数据类型为数据帧
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"T3_10_0.7"
        self.assertEqual(self.data.columns[-1], "T3_10_0.7")
    # 测试扩展方法:计算TEMA指标
    def test_tema_ext(self):
        # 调用TEMA指标计算方法,并将结果追加到数据帧中
        self.data.ta.tema(append=True)
        #
    # 测试 VWMA 扩展函数
    def test_vwma_ext(self):
        # 调用 VWMA 函数,将结果追加到 DataFrame 中
        self.data.ta.vwma(append=True)
        # 断言 DataFrame 实例化
        self.assertIsInstance(self.data, DataFrame)
        # 断言 DataFrame 最后一列的列名为 "VWMA_10"
        self.assertEqual(self.data.columns[-1], "VWMA_10")
    
    # 测试 WCP 扩展函数
    def test_wcp_ext(self):
        # 调用 WCP 函数,将结果追加到 DataFrame 中
        self.data.ta.wcp(append=True)
        # 断言 DataFrame 实例化
        self.assertIsInstance(self.data, DataFrame)
        # 断言 DataFrame 最后一列的列名为 "WCP"
        self.assertEqual(self.data.columns[-1], "WCP")
    
    # 测试 WMA 扩展函数
    def test_wma_ext(self):
        # 调用 WMA 函数,将结果追加到 DataFrame 中
        self.data.ta.wma(append=True)
        # 断言 DataFrame 实例化
        self.assertIsInstance(self.data, DataFrame)
        # 断言 DataFrame 最后一列的列名为 "WMA_10"
        self.assertEqual(self.data.columns[-1], "WMA_10")
    
    # 测试 ZLMA 扩展函数
    def test_zlma_ext(self):
        # 调用 ZLMA 函数,将结果追加到 DataFrame 中
        self.data.ta.zlma(append=True)
        # 断言 DataFrame 实例化
        self.assertIsInstance(self.data, DataFrame)
        # 断言 DataFrame 最后一列的列名为 "ZL_EMA_10"
        self.assertEqual(self.data.columns[-1], "ZL_EMA_10")

.\pandas-ta\tests\test_ext_indicator_performance.py

# 从当前目录下的 config 模块导入 sample_data 对象
from .config import sample_data
# 从当前目录下的 context 模块导入 pandas_ta 扩展
from .context import pandas_ta
# 导入 TestCase 类
from unittest import TestCase
# 导入 DataFrame 类
from pandas import DataFrame
# 定义 TestPerformaceExtension 类,继承自 TestCase 类
class TestPerformaceExtension(TestCase):
    # 在测试类中所有测试方法执行前执行的类方法
    @classmethod
    def setUpClass(cls):
        # 初始化测试数据为 sample_data
        cls.data = sample_data
        # 检查是否收盘价大于其50日简单移动平均线
        cls.islong = cls.data["close"] > pandas_ta.sma(cls.data["close"], length=50)
    # 在测试类中所有测试方法执行后执行的类方法
    @classmethod
    def tearDownClass(cls):
        # 删除测试数据对象
        del cls.data
        # 删除 islong 对象
    # 在每个测试方法执行前执行的方法
    def setUp(self): pass
    # 在每个测试方法执行后执行的方法
    def tearDown(self): pass
    # 测试对数收益率扩展方法
    def test_log_return_ext(self):
        # 计算对数收益率,并将结果附加到数据框中
        self.data.ta.log_return(append=True)
        # 断言数据对象为 DataFrame 类型
        self.assertIsInstance(self.data, DataFrame)
        # 断言数据框的最后一列为 "LOGRET_1"
        self.assertEqual(self.data.columns[-1], "LOGRET_1")
    # 测试累积对数收益率扩展方法
    def test_cum_log_return_ext(self):
        # 计算累积对数收益率,并将结果附加到数据框中
        self.data.ta.log_return(append=True, cumulative=True)
        # 断言数据对象为 DataFrame 类型
        self.assertIsInstance(self.data, DataFrame)
        # 断言数据框的最后一列为 "CUMLOGRET_1"
    # 测试百分比收益率扩展方法
    def test_percent_return_ext(self):
        # 计算百分比收益率,并将结果附加到数据框中
        self.data.ta.percent_return(append=True)
        # 断言数据对象为 DataFrame 类型
        self.assertIsInstance(self.data, DataFrame)
        # 断言数据框的最后一列为 "PCTRET_1"
    # 测试累积百分比收益率扩展方法
    def test_cum_percent_return_ext(self):
        # 计算累积百分比收益率,并将结果附加到数据框中
        self.data.ta.percent_return(append=True, cumulative=True)
        # 断言数据对象为 DataFrame 类型
        self.assertIsInstance(self.data, DataFrame)
        # 断言数据框的最后一列为 "CUMPCTRET_1"

.\pandas-ta\tests\test_ext_indicator_statistics.py

# 从config模块中导入sample_data变量
from .config import sample_data
# 从context模块中导入pandas_ta模块
from .context import pandas_ta
# 从unittest模块中导入skip和TestCase类
from unittest import skip, TestCase
# 从pandas模块中导入DataFrame类
from pandas import DataFrame
# 定义测试统计扩展功能的测试类
class TestStatisticsExtension(TestCase):
    # 在所有测试方法执行前执行,设置测试数据
    @classmethod
    def setUpClass(cls):
        cls.data = sample_data
    # 在所有测试方法执行后执行,删除测试数据
    @classmethod
    def tearDownClass(cls):
        del cls.data
    # 测试方法执行前执行的方法
    def setUp(self): pass
    # 测试方法执行后执行的方法
    def tearDown(self): pass
    # 测试计算熵扩展功能
    def test_entropy_ext(self):
        # 调用entropy方法计算熵,并将结果追加到数据中
        self.data.ta.entropy(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"ENTP_10"
    # 测试计算峰度扩展功能
    def test_kurtosis_ext(self):
        # 调用kurtosis方法计算峰度,并将结果追加到数据中
        self.data.ta.kurtosis(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"KURT_30"
    # 测试计算绝对平均偏差扩展功能
    def test_mad_ext(self):
        # 调用mad方法计算绝对平均偏差,并将结果追加到数据中
        self.data.ta.mad(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"MAD_30"
    # 测试计算中位数扩展功能
    def test_median_ext(self):
        # 调用median方法计算中位数,并将结果追加到数据中
        self.data.ta.median(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"MEDIAN_30"
    # 测试计算分位数扩展功能
    def test_quantile_ext(self):
        # 调用quantile方法计算分位数,并将结果追加到数据中
        self.data.ta.quantile(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"QTL_30_0.5"
    # 测试计算偏度扩展功能
    def test_skew_ext(self):
        # 调用skew方法计算偏度,并将结果追加到数据中
        self.data.ta.skew(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"SKEW_30"
    # 测试计算标准差扩展功能
    def test_stdev_ext(self):
        # 调用stdev方法计算标准差,并将结果追加到数据中
        self.data.ta.stdev(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"STDEV_30"
    # 测试计算所有时间序列标准差扩展功能
    def test_tos_stdevall_ext(self):
        # 调用tos_stdevall方法计算所有时间序列标准差,并将结果追加到数据中
        self.data.ta.tos_stdevall(append=True)
        # 断言数据类型为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后7列的列名为指定列表
    # 测试计算方差扩展功能
    def test_variance_ext(self):
        # 调用variance方法计算方差,并将结果追加到数据中
        self.data.ta.variance(append=True)
        # 断言数据类���为DataFrame
        self.assertIsInstance(self.data, DataFrame)
        # 断言最后一列的列名为"VAR_30"


PandasTA 源码解析(十九)(2)https://developer.aliyun.com/article/1506283

相关文章
|
16天前
|
机器学习/深度学习 缓存 算法
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
|
18天前
|
XML Java 数据格式
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
深度解析 Spring 源码:从 BeanDefinition 源码探索 Bean 的本质
25 3
|
3天前
|
存储 安全 Java
深度长文解析SpringWebFlux响应式框架15个核心组件源码
以上是Spring WebFlux 框架核心组件的全部介绍了,希望可以帮助你全面深入的理解 WebFlux的原理,关注【威哥爱编程】,主页里可查看V哥每天更新的原创技术内容,让我们一起成长。
|
4天前
|
关系型数据库 分布式数据库 数据库
PolarDB-X源码解析:揭秘分布式事务处理
【7月更文挑战第3天】**PolarDB-X源码解析:揭秘分布式事务处理** PolarDB-X,应对大规模分布式事务挑战,基于2PC协议确保ACID特性。通过预提交和提交阶段保证原子性与一致性,使用一致性快照隔离和乐观锁减少冲突,结合故障恢复机制确保高可用。源码中的事务管理逻辑展现了优化的分布式事务处理流程,为开发者提供了洞察分布式数据库核心技术的窗口。随着开源社区的发展,更多创新实践将促进数据库技术进步。
11 3
|
9天前
|
NoSQL Java Redis
【源码解析】自动配置的这些细节都不知道,别说你会 springboot
【源码解析】自动配置的这些细节都不知道,别说你会 springboot
|
17天前
|
存储 NoSQL 算法
Redis(四):del/unlink 命令源码解析
Redis(四):del/unlink 命令源码解析
|
4天前
|
前端开发 开发者
深入解析Vite.js源码
【7月更文挑战第1天】Vite.js 深入解析:以其无bundle开发、动态ES模块加载提升开发效率;本地HTTP服务器配合WebSocket实现热更新;按需加载减少资源占用;预构建优化生产环境性能;基于Rollup的插件系统增强灵活性。Vite,一个创新且高效的前端构建工具。
14 0
|
9天前
|
Java 容器 Spring
Spring5源码解析5-ConfigurationClassPostProcessor (上)
Spring5源码解析5-ConfigurationClassPostProcessor (上)
|
16天前
|
XML Java 数据格式
Spring容器启动源码解析
Spring容器启动源码解析
|
18天前
|
Java Spring
深入解析Spring源码,揭示JDK动态代理的工作原理。
深入解析Spring源码,揭示JDK动态代理的工作原理。
18 0

推荐镜像

更多