保持敬畏之心
交易是一场持久战

MQL4(39):MQL4中常用的指标常量

在 MQL4编程中,调用技术指标函数(如 iMA(), iStochastic(), iCustom() 等)以及某些价格数据函数时,经常需要传入一些特定类型的参数,例如时间周期、应用价格类型、移动平均线的计算方式等。MQL 为这些常用的参数值预定义了一系列常量,使用这些常量可以使代码更具可读性和可维护性。

1. 时间周期常量

许多 MQL 函数(包括所有技术指标函数和一些价格信息函数)的第二个参数通常是时间周期 (timeframe)。

  • 如果您为此参数传入 0,则函数将使用 EA 当前运行图表的时间周期。

  • 如果您希望指定一个不同于当前图表的时间周期,您可以直接传入该周期的分钟数值(例如,M5 传入 5,H1 传入 60,H4 传入 240),或者更推荐使用以下预定义的时间周期常量:

    • PERIOD_M1 – 1 分钟周期
    • PERIOD_M5 – 5 分钟周期
    • PERIOD_M15 – 15 分钟周期
    • PERIOD_M30 – 30 分钟周期
    • PERIOD_H1 – 1 小时周期 (等同于 60 分钟)
    • PERIOD_H4 – 4 小时周期 (等同于 240 分钟)
    • PERIOD_D1 – 日线周期 (等同于 1440 分钟)
    • PERIOD_W1 – 周线周期 (等同于 10080 分钟)
    • PERIOD_MN1 – 月线周期 (等同于 43200 分钟)
    • PERIOD_CURRENT (或 0) – 当前图表周期

2. 应用价格常量 (Applied Price Constants)

许多技术指标(尤其是移动平均线及其衍生指标)在计算时需要指定基于 K 线的哪种价格数据进行计算,这就是“应用价格”参数。虽然通常默认或最常用的是收盘价 (PRICE_CLOSE),但 MQL 也提供了其他选项。以下是常用的应用价格常量及其对应的整数值和含义:

  • PRICE_CLOSE (0): 收盘价
  • PRICE_OPEN (1): 开盘价
  • PRICE_HIGH (2): 最高价
  • PRICE_LOW (3): 最低价
  • PRICE_MEDIAN (4): 中间价,计算公式为 (最高价 + 最低价) / 2
  • PRICE_TYPICAL (5): 典型价格,计算公式为 (最高价 + 最低价 + 收盘价) / 3
  • PRICE_WEIGHTED (6): 加权收盘价,计算公式为 (最高价 + 最低价 + 收盘价 + 收盘价) / 4 (即给予收盘价更高权重)

3. 移动平均线计算方法常量

对于移动平均线 (iMA()) 本身,或者那些内部计算涉及到移动平均的复杂指标(例如 MACD 的信号线、布林带的中轨),通常会有一个参数允许您选择移动平均的计算方法 (ma_method)。不同的计算方法会影响平均线的平滑度和对价格变动的响应速度,从而导致绘制出的指标线形态有所不同。以下是 MQL 中预定义的移动平均方法常量及其对应的整数值和简要说明:

  • MODE_SMA (0): 简单移动平均线 。直接计算指定周期内价格数据的算术平均值。
  • MODE_EMA (1): 指数移动平均线 。给予近期价格数据更高的权重,而对较早的价格数据则给予指数级递减的权重。这使得 EMA 比 SMA 对价格变动更为敏感,是一种非常流行的移动平均线类型。
  • MODE_SMMA (2): 平滑移动平均线。它是一种改进的简单移动平均线,通过特定的平滑算法计算得出。SMMA 产生的线条非常平滑,但缺点是对价格变动的响应相对滞后。
  • MODE_LWMA (3): 线性加权移动平均线 。与 EMA 类似,也给予近期价格数据更大的权重,但其权重是呈线性递减的,即最新的价格数据获得最大权重,然后依次递减。

在调用相关指标函数时,合理选择并使用这些常量,可以使您的 EA 逻辑更加清晰,并便于参数的调整和优化。

赞(0)
未经允许不得转载:图道交易 » MQL4(39):MQL4中常用的指标常量
分享到