当前位置: 首页 > news >正文

Overlap:MIDPOINT(中值通道线)技术指标详解

Overlap:MIDPOINT(中值通道线)技术指标详解

一、MIDPOINT的定义

MIDPOINT(Midpoint,中值通道线)是一种基础的趋势跟踪指标,在指定周期内,分别找出最高价的最高值和最低价的最低值,然后取两者的平均值。

核心设计理念

MIDPOINT的本质是价格通道的中心线。它不直接对价格进行平滑(如移动平均线那样),而是追踪一段时间内价格区间的“中心”。这一中心值在趋势行情中可作为动态的参考线。

MIDPOINT的核心特征

特征说明
理论基础价格区间中值统计
指标类型趋势跟踪/重叠指标
核心原理(滚动窗口内最高价的最大值 + 滚动窗口内最低价的最小值) / 2
默认参数length=2或10
计算方式滚动窗口统计
核心优势计算简洁,能快速反映价格区间变化

二、MIDPOINT的计算方法

1. 核心计算公式

对于长度为nnn的滚动窗口,MIDPOINT 的计算公式为:

MIDPOINT=Highest Price+Lowest Price2 \mathrm{MIDPOINT} = \frac{\text{Highest Price} + \text{Lowest Price}}{2}MIDPOINT=2Highest Price+Lowest Price
其中:

  • Highest Price:过去nnn个周期内的最高价的最大值(Rolling High Max)
  • Lowest Price:过去nnn个周期内的最低价的最小值(Rolling Low Min)

2. 详细计算步骤

第一步:确定滚动窗口

设定计算周期nnn(如n=10n=10n=10),对每个时间点,取过去nnn个周期的价格数据。

第二步:查找区间极值

在当前窗口中查找:

  • KaTeX parse error: Got function '\max' with no arguments as subscript at position 3: H_\̲m̲a̲x̲ ̲= \max⁡(\mathrm…
  • KaTeX parse error: Got function '\min' with no arguments as subscript at position 3: L_\̲m̲i̲n̲ ̲= \min⁡(\mathrm…

第三步:计算中值
KaTeX parse error: Got function '\max' with no arguments as subscript at position 32: …T}_t = \frac{H_\̲m̲a̲x̲ ̲+ L_\min}{2}

3. pandas_ta中的实现

pandas_ta库中,midpoint()函数位于overlap模块中。默认使用收盘价作为输入价格,length参数默认为2。

函数内部大致等价于:

df['MID']=(df['close'].rolling(length).max()+df['close'].rolling(length).min())/2

4. 计算示例

假设窗口长度 n=5n=5,收盘价序列如下:

时间收盘价窗口内最高价窗口内最低价MIDPOINT
t-4100
t-3102
t-2105
t-1103
t108108100104

计算过程

  • 窗口内最高价 = max(100, 102, 105, 103, 108) =108
  • 窗口内最低价 = min(100, 102, 105, 103, 108) =100
  • MIDPOINT = (108 + 100) / 2 =104

5. 参数说明

参数默认值说明
length10(部分平台默认2)计算窗口周期
offset0结果偏移周期数

三、MIDPOINT的使用方法

1. 价格中心参考线

MIDPOINT最基础的用法是作为价格波动的中心参考线

价格与MIDPOINT的关系市场含义操作倾向
价格远高于MIDPOINT价格接近区间上沿,多头强势警惕超买,关注阻力位
价格接近MIDPOINT价格处于区间中心观察趋势方向
价格远低于MIDPOINT价格接近区间下沿,空头强势关注支撑位,可能出现反弹

2. 动态支撑与阻力

MIDPOINT结合区间极值可形成动态通道:

  • 上轨= 滚动最高价最大值(可作为动态阻力)
  • 中轨= MIDPOINT(中心线)
  • 下轨= 滚动最低价最小值(可作为动态支撑)

3. 趋势方向判断

MIDPOINT的斜率方向可辅助判断趋势:

MIDPOINT状态趋势含义操作倾向
MIDPOINT持续上升价格区间中心上移,上升趋势偏多思维
MIDPOINT持续下降价格区间中心下移,下降趋势偏空思维
MIDPOINT走平区间震荡高抛低吸

4. 注意事项与局限性

使用MIDPOINT前需了解以下要点

局限性说明
本质仍是滞后指标基于历史窗口内的最高/最低值,对价格变化反应滞后
窗口长度敏感短窗口更灵敏但噪声多,长窗口更平滑但滞后明显
适合配合其他指标MIDPOINT作为单一指标信号有限,建议与均线、通道指标配合使用

四、使用pandas_ta计算MIDPOINT

1. 函数参数

pandas_ta.overlap.midpoint(close,length=None,talib=None,offset=None,**kwargs)

参数详解

参数类型默认值说明
closepd.Series必需收盘价序列
lengthint10(部分平台默认2)计算窗口周期
talibboolTrue若安装TA-Lib则使用其版本
offsetint0结果偏移周期数

2. 示例代码

importpandasaspdimportpandas_taastaimportnumpyasnpimportmatplotlib.pyplotasplt# ========== 第一步:准备数据 ==========np.random.seed(42)dates=pd.date_range(start='2023-01-01',end='2024-12-31',freq='D')n=len(dates)# 生成带趋势和周期波动的价格序列trend=np.linspace(0,45,n)cycle=np.sin(np.linspace(0,6*np.pi,n))*15noise=np.random.randn(n)*3price_series=100+trend+cycle+noise# 添加趋势变化区间price_series=price_series.astype(float)foriinrange(300,450):price_series[i]=price_series[300]+(i-300)*0.2# 强势上涨段foriinrange(450,600):price_series[i]=price_series[450]-(i-450)*0.15# 强势下跌段df=pd.DataFrame(index=dates[:n])df['close']=price_series[:n]df['high']=df['close']+np.abs(np.random.randn(n))*2+1df['low']=df['close']-np.abs(np.random.randn(n))*2-1df['volume']=np.random.randint(1000000,25000000,n)print("="*60)print("数据预览:")print(df.head())print("\n"+"="*60+"\n")# ========== 第二步:计算MIDPOINT ==========# 使用默认参数 length=10df['MIDPOINT']=ta.midpoint(df['close'])print("MIDPOINT计算结果(最近10行):")print(df[['close','MIDPOINT']].tail(10))print("\n"+"="*60+"\n")# ========== 第三步:不同周期的MIDPOINT对比 ==========df['MID_5']=ta.midpoint(df['close'],length=5)df['MID_10']=ta.midpoint(df['close'],length=10)df['MID_20']=ta.midpoint(df['close'],length=20)print("不同周期MIDPOINT对比(最近5行):")print(df[['close','MID_5','MID_10','MID_20']].tail())print("\n"+"="*60+"\n")# ========== 第四步:计算通道上下轨 ==========df['HIGHEST']=df['close'].rolling(10).max()df['LOWEST']=df['close'].rolling(10).min()df['MID_verify']=(df['HIGHEST']+df['LOWEST'])/2print("上下轨与MIDPOINT验证(最近5行):")print(df[['close','HIGHEST','LOWEST','MID_10','MID_verify']].tail())print("\n"+"="*60+"\n")# ========== 第五步:策略回测 ==========# 策略:价格 > MIDPOINT 时持仓多头df['position']=(df['close']>df['MID_10']).astype(int)df['returns']=df['close'].pct_change()df['strategy_returns']=df['position'].shift(1)*df['returns']total_return_buyhold=(1+df['returns']).prod()-1total_return_strategy=(1+df['strategy_returns']).prod()-1print("="*60)print("策略绩效统计(MIDPOINT穿越策略回测):")print(f"买入持有策略总收益率:{total_return_buyhold:.2%}")print(f"MIDPOINT穿越策略总收益率:{total_return_strategy:.2%}")print("\n注意:此为简化回测,仅供参考")print("="*60+"\n")# ========== 第六步:可视化 ==========plt.figure(figsize=(14,10))plt.subplot(2,1,1)plt.plot(df.index[-200:],df['close'][-200:],label='Close Price',linewidth=1.5,color='black')plt.plot(df.index[-200:],df['MID_10'][-200:],label='MIDPOINT (10)',linewidth=1.5,color='blue')plt.plot(df.index[-200:],df['HIGHEST'][-200:],label='Rolling High Max',linewidth=1,color='green',alpha=0.7,linestyle='--')plt.plot(df.index[-200:],df['LOWEST'][-200:],label='Rolling Low Min',linewidth=1,color='red',alpha=0.7,linestyle='--')plt.title('MIDPOINT(中值通道线)- 价格区间中心参考线',fontsize=14)plt.ylabel('Price')plt.legend()plt.grid(True,alpha=0.3)plt.subplot(2,1,2)plt.plot(df.index[-200:],df['close'][-200:],label='Close Price',linewidth=1,alpha=0.5,color='black')plt.plot(df.index[-200:],df['MID_5'][-200:],label='MIDPOINT (5) - 短线',linewidth=1,alpha=0.7)plt.plot(df.index[-200:],df['MID_10'][-200:],label='MIDPOINT (10) - 标准',linewidth=1.5,color='blue')plt.plot(df.index[-200:],df['MID_20'][-200:],label='MIDPOINT (20) - 长线',linewidth=1.5,color='green')plt.title('MIDPOINT:不同周期对比',fontsize=14)plt.xlabel('Date')plt.ylabel('Price')plt.legend(loc='upper left')plt.grid(True,alpha=0.3)plt.tight_layout()plt.show()

五、总结

MIDPOINT(中值通道线)是一种基于价格区间极值的简洁趋势参考指标,其核心价值与定位如下:

维度特点
核心公式MIDPOINT = (滚动最高价最大值 + 滚动最低价最小值) / 2
默认参数length=10
核心功能提供价格波动的中心参考线,辅助判断价格在区间中的相对位置
最佳应用场景价格区间中心识别、动态支撑阻力判断
主要局限滞后性、信号维度单一、需配合其他指标使用

实战使用建议

  1. 作为中心参考线:MIDPOINT可辅助判断当前价格在近期波动区间中的相对位置,结合上轨(滚动最高价最大值)和下轨(滚动最低价最小值)形成动态通道
  2. 配合其他指标使用:MIDPOINT作为单一指标信号有限,建议与SMA、EMA或布林带等经典指标配合使用
  3. 周期选择:短周期(如5)更灵敏,适合短线判断;长周期(如20)更平滑,适合中长线趋势参考
http://www.gsyq.cn/news/1557912.html

相关文章:

  • 2026遵义2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • MC68340串行模块深度解析:循环模式、多点模式与寄存器编程实战
  • Windows终端配置proxy - 老码识途
  • 多平台直播录制解决方案:从数据采集到内容管理的完整技术实现
  • ARM9微控制器架构解析:从AHB总线矩阵到外设驱动实战
  • 2026秦皇岛漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • 2026年当前迪庆角钢采购策略:一站式服务如何破解高原工程材料难题 - 品牌鉴赏官2026
  • 2026遂宁2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • Linux安装BIP高级版 - 老码识途
  • 如何把个人代码库做成靠谱的开源项目:从脚手架到自动发版
  • 揭秘JSON数据可视化新境界:Vue Json Pretty的智能展示方案
  • GanttProject 3步玩转项目管理:让复杂项目变简单的免费开源工具
  • MC68340微控制器架构解析:片上总线、DMA与模块化设计如何提升嵌入式系统性能
  • 2026辽阳2026正规漏水检测维修公司精选口碑榜TOP5权威推荐-精准定位检测漏水点-专业防水补漏堵漏维修、卫生间/厨房/屋顶/天沟/地下室/阳台防水漏水检测维修 - 安佳防水
  • 终极指南:如何在跨平台项目中免费使用PingFangSC字体提升中文显示一致性
  • 2026年中石晶墙板批发市场趋势与优质服务商综合推荐 - 品牌鉴赏官2026
  • GLM 5.2 深度技术分析:百万上下文、Agent 编程能力与本地部署可行性
  • 企业级即时通讯防撤回解决方案:基于内存补丁技术的完整实现指南
  • 从线性规划到列生成:高校排课模型的效率跃迁之路
  • 2026盐城漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • 技术解析:BatchNorm的标准化公式与PyTorch实现细节
  • 曲辕RPA-FTP上传文件夹
  • 实时处理器用户级中断硬件优化与实现
  • 从CRM图表重构,吃透「开闭原则」
  • 从序列到合成:Primer Premier 5引物设计实战指南
  • 那个“超2000万人在用“的工具,有一个细节没人告诉你
  • 2026百色漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • 2026年6月,新中式家具口碑好的实力工厂推荐速览,实木套系家具/榫卯结构新中式家具,新中式家具源头厂家找哪家 - 品牌推荐师
  • 商铺户外外摆仿真植物花箱:江浙沪高耐晒仿真花箱与仿真植物材质落地指南 - 三棵树园艺
  • PowerPMAC实战指南:从零到精通的EtherCAT配置与调试