(1) 背离的基本原理背离分为两种类型:
常见的背离指标包括:
(2) 背离计算的实现步骤 1:数据准备确保数据库中包含以下字段:
步骤 2:定义背离规则import pandas as pd import numpy as np def detect_divergence(data, indicator='RSI', window=5): """ 检测价格与振荡器之间的背离现象。 参数: data: 包含 'close' 和指定振荡器指标的 DataFrame。 indicator: 振荡器名称(如 'RSI', 'MACD', 'CCI')。 window: 滚动窗口大小,用于寻找局部极值。 返回: 包含背离标志的新 DataFrame。 """ # 确保 indicator 列存在 if indicator not in data.columns: raise ValueError(f"数据中缺少 '{indicator}' 列") # 找到价格的局部高点和低点 data['Price_High'] = data['high'].rolling(window=window, center=True).max() data['Price_Low'] = data['low'].rolling(window=window, center=True).min() # 找到指标的局部高点和低点 data[f'{indicator}_High'] = data[indicator].rolling(window=window, center=True).max() data[f'{indicator}_Low'] = data[indicator].rolling(window=window, center=True).min() # 初始化背离列 data['Divergence'] = 'None' # 检测顶背离(Negative) data.loc[ (data['Price_High'] == data['high']) & (data[f'{indicator}_High'] < data[indicator]), 'Divergence' ] = 'Negative' # 检测底背离(Positive) data.loc[ (data['Price_Low'] == data['low']) & (data[f'{indicator}_Low'] > data[indicator]), 'Divergence' ] = 'Positive' return data 步骤 3:将函数应用到多个指标from detect_divergence import detect_divergence # 计算 RSI 背离 data = detect_divergence(data, indicator='RSI', window=5) # 计算 MACD 背离 data = detect_divergence(data, indicator='MACD', window=5) # 计算 CCI 背离 data = detect_divergence(data, indicator='CCI', window=5) |
|