指标文档 "FakeBreaks.mq5"

概述
"假突破指标(False Breakouts.mq5)"旨在识别并在图表上标记:
- 买入点和卖出点,基于支撑和阻力的假突破。
- 动态的支撑和阻力水平。
- 市场的顶部和底部。
该指标使用缓冲区来存储和展示这些信息,使得分析假突破模式变得更加直观。
代码结构
指标属性
- 指标名称: FakeBreakouts.mq5
- 版本: 1.00
- 显示窗口: 主图表 (indicator_chart_window)。
缓冲区和绘图
该指标使用 6 个缓冲区 来存储数据,并使用 6 个绘图 在图表上展示:
- 买入:
- 类型: DRAW_ARROW (上箭头)。
- 颜色: 蓝色 (clrBlue)。
- 宽度: 5。
- 卖出:
- 类型: DRAW_ARROW (下箭头)。
- 颜色: 红色 (clrRed)。
- 宽度: 5。
- 支撑:
- 类型: DRAW_LINE (实线)。
- 颜色: 蓝色 (clrBlue)。
- 阻力:
- 类型: DRAW_LINE (连续线)。
- 颜色: 红色 (clrRed)。
- 底部:
- 类型: DRAW_ARROW (下箭头)。
- 颜色: 红色 (clrRed)。
- 顶部:
- 类型: DRAW_ARROW (上箭头)。
- 颜色: 蓝色 (clrBlue)。
全局变量
- ExtResistancesBuffer[] : 存储阻力水平。
- ExtSupportsBuffer[] : 存储支撑水平。
- ExtTopsBuffer[] : 存储识别的顶部。
- ExtBottomsBuffer[] : 存储识别的底部。
- ExtSellBuffer[] : 存储卖出点。
- ExtBuyBuffer[] : 存储买入点。
主要功能
1. OnInit()
- 目的: 初始化指标并映射缓冲区。
- 操作:
- 将缓冲区映射到绘图。
- 为缓冲区设置空值 (PLOT_EMPTY_VALUE)。
- 设置买入和卖出的箭头(图标)。
- 定义图表上箭头的位移。
2. OnCalculate()
- 目的: 计算并更新每个新蜡烛或点的缓冲区。
- 操作:
- 检查是否有新数据需要处理。
- 必要时初始化缓冲区。
- 根据高低价格识别顶部(IS_TOP)和底部(IS_BOTTOM)。
- 更新阻力、支撑、顶部和底部缓冲区。
- 调用 IsBuy() 和 IsSell() 函数以识别买入和卖出点。
3. IndexNextPoint()
- 目的: 找到缓冲区中下一个有效(非零)点的索引。
- 用途: 被 IsBuy() 和 IsSell() 函数用于识别最近的参考点。
4. IsBuy()
- 目的: 根据支撑的假突破检查买入信号。
- 逻辑:
- 检查当前价格是否高于参考点(支撑)。
- 确认是否发生假突破(价格跌破然后回升至支撑之上)。
- 如果条件满足则返回 true。
5. IsSell()
- 目的: 根据阻力的假突破检查卖出信号。
- 逻辑:
- 检查当前价格是否低于参考点(阻力)。
- 确认是否发生假突破(价格突破然后回落至阻力之下)。
- 如果条件满足则返回 true。
运作逻辑
-
顶部和底部的识别:
- 当当前蜡烛的高点高于相邻蜡烛的高点时,识别为顶部。
- 当当前蜡烛的低点低于相邻蜡烛的低点时,识别为底部。
-
更新支撑和阻力:
- 最后识别的顶部被存储为阻力。
- 最后识别的底部被存储为支撑。
-
买入和卖出信号:
- 当价格突破支撑然后再次回升时,生成买入信号。
- 当价格突破阻力然后再次回落时,生成卖出信号。
使用示例
- 该指标可以应用于 MetaTrader 5 中的任何图表。
- 它将显示:
- 买入点的蓝色箭头。
- 卖出点的红色箭头。
- 支撑的蓝色线。
- 阻力的红色线。
- 顶部和底部的附加箭头。
最终考虑
- 该指标对基于支撑和阻力假突破进行交易的交易者非常有用。
- 建议在不同市场和时间框架上测试该指标,以验证其有效性。
- 可以自定义以包含声音警报或信号生成时的通知。