Envelopes(iEnvelopes)関数|MT4インディケータ
佐川直弘(株式会社トリロジー取締役)
MetaTrader 4(MT4)を使ったFX自動売買において、テクニカル指標の理解と活用は非常に重要です。この記事では、エンベロープ(Envelopes)インディケータについて、初心者にもわかりやすく解説します。
エンベロープ(Envelopes)とは?
エンベロープは、移動平均線(MA)を中心に上下に一定の乖離率(パーセンテージ)で描かれる2本のラインで構成されるテクニカル指標です。この指標は、価格の変動範囲を示し、買われ過ぎや売られ過ぎの判断に役立ちます。エンベロープの上限線に価格が達した場合、売りシグナルとみなし、下限線に達した場合、買いシグナルとみなします。
iEnvelopesの計算方法
MT4では、エンベロープを計算するためにiEnvelopes()関数を使用します。この関数は以下のように定義されています。
- 関数仕様
- double iEnvelopes(
string symbol, // 通貨ペア種類
int timeframe, // 時間軸種類
int ma_period, // 移動平均の期間
int ma_method, // 移動平均線種類
int ma_shift, // 移動平均をシフトするバーの数(右方向へシフト)
int applied_price,// 価格種類
double deviation, // 移動平均線からの乖離率(0~1)
int mode, // インディケータライン種類
int shift // 取得するバーの位置(0が最新のバーを表し、1~が過去のバーに遡っていきます)
);
この関数は、指定された通貨ペアと時間軸におけるエンベロープの値を返します。
引数の説明
- symbol
- 通貨ペアの種類を指定します。例えば、"EURUSD"や"GBPJPY"など。
- timeframe
- 時間軸の種類を指定します。例えば、1分足(1)、5分足(5)、1時間足(60)など。
- ma_period
- 移動平均の期間を指定します。
- ma_method
- 移動平均線の種類を指定します。
- ma_shift
- 移動平均をシフトするバーの数を指定します。
- applied_price
- 価格の種類を指定します。
- deviation
- 移動平均線からの乖離率を指定します。
- mode
- インディケータラインの種類を指定します。
– `MODE_UPPER` – 上限線
– `MODE_LOWER` – 下限線 - shift
- 取得するバーの位置を指定します。0が最新のバーを表し、1以上の数値が過去のバーを表します。
サンプルコード
以下に、iEnvelopes()関数を使用して最新のバーのエンベロープ値を取得するサンプルコードを示します。
- サンプルコード
- // EURUSDの1時間足で最新のバーの上限線の値を取得する例
double upper_band = iEnvelopes(“EURUSD", PERIOD_H1, 13, MODE_SMA, 10, PRICE_CLOSE, 0.2, MODE_UPPER, 0);
Print(“EURUSDの1時間足の最新の上限線の値: “, upper_band);
このサンプルコードでは、"EURUSD"の1時間足における最新のエンベロープ上限線の値を取得し、ターミナルウィンドウに表示します。
iEnvelopesOnArrayの計算方法
iEnvelopesOnArray()関数は、ユーザが作成した自由なデータを元にエンベロープを計算するために使用されます。この関数は、価格データを格納した配列を引数に指定します。
- 関数仕様
- double iEnvelopesOnArray(
double array[], // 価格データの配列
int total, // 配列のうち計算に使用する個数。全てを使用する場合は0を指定する。
int ma_period, // 移動平均の期間
int ma_method, // 移動平均線種類
int ma_shift, // 移動平均をシフトするバーの数(右方向へシフト)
double deviation,// 移動平均線からの乖離率(0~1)
int mode, // インディケータライン種類
int shift // 取得するバーの位置(0が最新のバーを表し、1~が過去のバーに遡っていきます)
);
以下に、iEnvelopesOnArray()関数を使用してエンベロープの値を取得するサンプルコードを示します。
- サンプルコード
- // 配列に格納された価格データからエンベロープの上限線の値を取得する例
double ExtBuffer[];
ArrayResize(ExtBuffer, Bars);
for(int i = 0; i < Bars; i++) {
ExtBuffer[i] = Close[i];
}
double upper_band_array = iEnvelopesOnArray(ExtBuffer, 0, 13, MODE_SMA, 0, 0.2, MODE_UPPER, 0);
Print(“配列から計算されたエンベロープの上限線の値: “, upper_band_array);
このサンプルコードでは、配列に格納された価格データからエンベロープの上限線の値を計算し、ターミナルウィンドウに表示します。
まとめ
エンベロープ(Envelopes)インディケータは、価格の変動範囲を評価するための強力なツールです。MT4のiEnvelopes()およびiEnvelopesOnArray()関数を使用することで、簡単にこのインディケータの値を取得し、トレード戦略に活用することができます。初心者の方も、この基本的な使い方を理解して、実際のトレードに応用してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません