诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

包络线指标(Envelopes)与 iEnvelopes() 函数简介

包络线指标(Envelopes)是一种技术分析工具,主要用于研究股票、外汇等金融市场的价格波动。它通过在移动平均线的基础上,向上和向下绘制一定比例的偏离线,形成一个包络区间。这个包络区间可以帮助交易者识别市场的超买和超卖状态,为交易决策提供依据。

包络线指标由两条线组成,上限线和下限线,它们分别位于移动平均线的上方和下方。这些线通常设置为移动平均线的一定百分比,例如,上限线可以设置为移动平均线加上其一定百分比,而下限线可以设置为移动平均线减去其一定百分比。这些百分比可以根据交易者的偏好进行调整。

当价格突破包络线时,这可能是一个买入或卖出信号。如果价格突破上限线,这可能是一个卖出信号,如果价格突破下限线,这可能是一个买入信号。然而,交易者应该注意到包络线指标并不是完美的,因此应该结合其他技术指标和分析方法一起使用。

包络线指标(Envelopes)

一、iEnvelopes()函数用法

iEnvelopes()函数是MetaTrader 4(MT4)平台上的一种内置函数,用于计算包络线指标。以下是iEnvelopes()函数的基本语法和参数说明:

double iEnvelopes
(
    string symbol,              // 货币对或股票的符号
    int    timeframe,           // 时间周期
    int    ma_period,           // MA平均周期
    int    ma_method,           // MA平均方法
    int    ma_shift,            // 移动平均线的移位
    int    applied_price,       // 应用价格
    double deviation,           // 偏离率(以百分比表示)
    int    mode,                // 线索引
    int    shift                // 指标移动的柱数
);

其中,参数说明:

  1. symbol:指定要计算包络线指标的货币对或股票的名称,如”EURUSD”。
  2. timeframe:指定要计算的时间周期,如PERIOD_M1、PERIOD_M5等。
  3. ma_period:指定移动平均线的周期,如20、50等。
  4. ma_method:指定移动平均线的计算方法,如MODE_SMA(简单移动平均)、MODE_EMA(指数移动平均)等。
  5. ma_shift:指定移动平均线的移位,如0表示不移位,正数表示向右移位。
  6. applied_price:指定移动平均线应用的价格,如PRICE_CLOSE(收盘价)、PRICE_OPEN(开盘价)等。
  7. deviation:指定包络线与移动平均线的偏离率,如0.1表示10%。
  8. mode:指定线索引,如0表示上包络线,1表示下包络线。
  9. shift:指定包络指标移动的柱数,如1表示向右移动1根柱子。

iEnvelopes()函数返回指定索引处的包络线指标值。以下是一个简单的示例,用于计算EURUSD货币对5分钟周期上的包络线指标:

double upper_envelope = iEnvelopes("EURUSD", PERIOD_M5, 20, MODE_SMA, 0, PRICE_CLOSE, 0.1, 0, 0);
double lower_envelope = iEnvelopes("EURUSD", PERIOD_M5, 20, MODE_SMA, 0, PRICE_CLOSE, 0.1, 1, 0);

二、如何使用iEnvelopes()函数进行交易策略编写

通过使用iEnvelopes()函数,我们可以设计一个简单的交易策略来进行买卖决策。以下是一个基本的交易策略示例,以包络线指标为基础。

//+------------------------------------------------------------------+
//|                                                                  |
//|                        Envelopes策略示例                         |
//|                                                                  |
//+------------------------------------------------------------------+

// 包络线指标参数定义
extern int    ma_period         = 20;
extern int    ma_method         = MODE_SMA;
extern int    ma_shift          = 0;
extern int    applied_price     = PRICE_CLOSE;
extern double deviation         = 0.1;

// 计算包络线指标的函数
double CalculateEnvelopes(int mode)
{
   return iEnvelopes(Symbol(), PERIOD_M5, ma_period, ma_method, ma_shift, applied_price, deviation, mode, 0);
}

// 策略入口点
void OnTick()
{
    // 获取当前价格
    double current_price = Close[0];

    // 计算上包络线和下包络线
    double upper_envelope = CalculateEnvelopes(0);
    double lower_envelope = CalculateEnvelopes(1);

    // 买入条件:当前价格低于下包络线
    if (current_price < lower_envelope)
    {
        // 执行买入操作
    }

    // 卖出条件:当前价格高于上包络线
    if (cudouble upper_envelope = iEnvelopes("EURUSD", PERIOD_M5, 20, MODE_SMA, 0, PRICE_CLOSE, 0.1, 0, 0);double lower_envelope = iEnvelopes("EURUSD", PERIOD_M5, 20, MODE_SMA, 0, PRICE_CLOSE, 0.1, 1, 0);rrent_price > upper_envelope)
    {
        // 执行卖出操作
    }
}

这个示例策略使用iEnvelopes()函数计算上下包络线,并根据当前价格与上下包络线的关系来决定买入或卖出。当然,这只是一个简单的示例,实际应用中需要对策略进行优化,以提高其可靠性和盈利能力。

总结:本文简要介绍了包络线指标(Envelopes)的基本概念,以及如何使用iEnvelopes()函数在MT4平台上计算包络线指标。通过这些知识,交易者可以基于包络线指标设计自己的交易策略,并运用在实际交易中。需要注意的是,包络线指标仅作为辅助分析工具,不能保证100%的准确性,因此在实际交易中需要结合其他技术分析工具和风险管理方法。

版权所有转载请注明标题及链接:峰汇在线 » 包络线指标(Envelopes)与 iEnvelopes() 函数简介