一、CCI指标简介

-
Typical Price 是平均价格,计算为 (High + Low + Close) / 3。
-
SMA 是简单移动平均线。 -
Mean Deviation 是典型价格与其N日移动平均的均方差。
二、CCI交易策略
交易信号
-
买入信号:当CCI从-100以下上升穿过-100,可能表示市场从超卖状态恢复,为买入机会。 -
卖出信号:当CCI从+100以上下降穿过+100,可能表示市场从超买状态回落,为卖出机会。
策略逻辑
-
选择适当的周期N来计算CCI。 -
使用CCI的穿越作为交易信号。 -
设定止损和止盈规则,以管理风险。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def calculate_cci(df, n=20):
typical_price = (df['High'] + df['Low'] + df['Close']) / 3
df['SMA_TP'] = typical_price.rolling(n).mean()
df['Mean_Deviation'] = typical_price.rolling(n).apply(
lambda x: np.mean(x ** 2) - np.mean(x) ** 2, raw=True
) ** 0.5
df['CCI'] = (typical_price - df['SMA_TP']) / (0.015 * df['Mean_Deviation'])
return df['CCI']
# 示例数据
df = pd.DataFrame({
'High': [...], # 填充股票的最高价数据
'Low': [...], # 填充股票的最低价数据
'Close': [...], # 填充股票的收盘价数据
})
# 计算CCI指标
df['CCI'] = calculate_cci(df)
# 生成交易信号
df['Signal'] = np.where(df['CCI'] > 100, -1, 0) # 卖出信号
df['Signal'] = np.where(df['CCI'] < -100, 1, df['Signal']) # 买入信号
# 绘制CCI指标和交易信号
plt.figure(figsize=(14, 7))
plt.plot(df['CCI'], label='CCI')
plt.plot(df['Signal'], label='Signals', color='red')
plt.axhline(y=100, color='grey', linestyle='--')
plt.axhline(y=-100, color='grey', linestyle='--')
plt.title('CCI Indicator with Trading Signals')
plt.legend()
plt.show()
四、结论
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106030
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!