Python 实现股票指标计算——CCI

CCI (Commodity Channel Index) - 商品通道指标

1 公式

TYP典型价格 = (最高价 + 最低价 + 收盘价) ➗ 3

CCI = (TYP - TYP的N日简单移动平均 ) ➗ (0.015 ✖ TYP的N日平均偏差)

其中,TYP的N日平均绝对方差,计算方式 = (N日内的TYP价格 - N日TPY价格的算术平均值) 的绝对值的平均

2 数据准备

我们以科创50指数 000688 为例,指数开始日期为2019-12-31,数据格式如下:

3 计算过程

def calculate_cci(df: pd.DataFrame, N=14):
    '''
    计算 Commodity Channel Index (CCI)。

    参数:
    df (pd.DataFrame): 包含至少 'high', 'low', 'close' 列的DataFrame,分别代表每日最高价、最低价和收盘价。
    N (int): 用于计算CCI的时间窗口大小,默认为14。

    返回:
    pd.DataFrame: 包含 CCI 值的DataFrame。
    '''

    # 创建一个df的副本以避免修改原始数据
    data = df.copy()

    # 计算典型价格,它是每日最高价、最低价和收盘价的平均值
    typical_price = (data['high'] + data['low'] + data['close']) / 3

    # 计算典型价格的N期简单移动平均线 (SMA)
    typical_price_ma = typical_price.rolling(N).mean()

    # 计算平均偏差,这是典型价格与典型价格移动平均线之间的绝对偏差的平均值
    mean_deviation = typical_price.rolling(N).apply(
        lambda x: np.mean(np.abs(x - x.mean())), raw=True)

    # 计算 CCI
    # CCI = (典型价格 - 典型价格的移动平均) / (常数 * 平均偏差)
    # 常数通常为0.015
    cci = (typical_price - typical_price_ma) / (0.015 * mean_deviation)

    # 将计算出的 CCI 添加到 DataFrame
    data['cci'] = cci

    # 返回包含所有计算出指标的 DataFrame
    return data

4 注意事项

参数N=14时,计算结果与东方财富软件中一致

与雪球中显示值不一致

相关推荐

  1. 股票关键指标

    2024-07-23 08:12:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 08:12:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 08:12:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 08:12:02       45 阅读
  4. Python语言-面向对象

    2024-07-23 08:12:02       55 阅读

热门阅读

  1. 【Golang 面试基础题】每日 5 题(三)

    2024-07-23 08:12:02       16 阅读
  2. 【策略模式在项目中的实际应用】

    2024-07-23 08:12:02       16 阅读
  3. 前端设计模式面试题汇总

    2024-07-23 08:12:02       13 阅读
  4. 预训练语言模型实践笔记

    2024-07-23 08:12:02       16 阅读
  5. 坑人的macos tar 命令 (实际上是bsdtar)换用 gnu tar

    2024-07-23 08:12:02       16 阅读
  6. windows下玩转DockerDesktop--学习笔记

    2024-07-23 08:12:02       15 阅读
  7. 45、PHP 实现滑动窗口的最大值

    2024-07-23 08:12:02       15 阅读
  8. PHP框架简介

    2024-07-23 08:12:02       11 阅读
  9. Scratch语言详解

    2024-07-23 08:12:02       13 阅读
  10. GCD异步与同步任务执行顺序分析

    2024-07-23 08:12:02       14 阅读
  11. 设计模式-策略模式

    2024-07-23 08:12:02       16 阅读
  12. 深入解析Memcached:C#中的应用与实战案例

    2024-07-23 08:12:02       15 阅读