一、什么是K线包含关系?
在K线图中,包含关系是指后一根K线的实体完全被前一根K线包含,或者反之。这种关系常见于市场震荡阶段,会干扰形态识别和趋势判断。
具体而言:
向右包含:前一根K线的最高价更高、最低价更低,包住了后一根K线;
向左包含:后一根K线的最高价更高、最低价更低,包住了前一根K线。
识别并调整这些包含关系,有助于构建清晰的趋势结构,是缠论等技术形态中非常重要的一环。
二、教程目标
本教程基于Python实现了一个函数 adjust_by_cintainment(),用于自动识别并合并包含关系的K线,得到更简洁、真实的趋势。
三、代码结构概览
def adjust_by_cintainment(k_data):
...
return adjusted_k_data
输入:原始K线数据(DataFrame,包含 open、high、low、close 字段)
输出:处理后去除了包含关系的K线序列
四、关键步骤解析
- 初始化变量
trend = [0]
adjusted_k_data = pd.DataFrame()
temp_data = k_data[:1]
trend 用于记录趋势变化:0为持平,1为上升,-1为下降。
temp_data 保存当前处理的K线,用于判断是否被包含或包含他人。
- 遍历K线数据,识别包含关系
for i in range(len(k_data)):
在循环中,每一根K线都要与上一根(temp_data)进行比较,判断属于以下哪种情况:
✔️ 情况1:向右包含
if temp_data.high >= k_data.high and temp_data.low <= k_data.low
表示当前K线被上一根K线包住。这种情况下,根据上一个趋势(trend),适当调整hig
本主题为课程学员专享,成为股票量化投资课程学员后可免费阅读
成为学员