Standard Deviation(iStdDev)関数|MT4インディケータ

執筆者

佐川直弘(株式会社トリロジー取締役)

MetaTrader 4(MT4)を使ったFX自動売買において、テクニカル指標の理解と活用は非常に重要です。この記事では、Standard Deviation(標準偏差、iStdDev)インディケータについて、初心者にもわかりやすく解説します。

Standard Deviation(iStdDev)とは?

標準偏差は、統計学で広く使用される指標で、データの分散を測定します。価格の標準偏差は、価格が移動平均からどれだけ離れているかを示し、市場のボラティリティ(変動性)を評価するのに役立ちます。標準偏差が高いと価格が大きく変動していることを示し、低いと価格が安定していることを示します。

iStdDevの計算方法

MT4では、Standard Deviationを計算するためにiStdDev()関数を使用します。この関数は以下のように定義されています。

関数仕様
double iStdDev(
    string symbol,        // 通貨ペア種類
    int timeframe,        // 時間軸種類
    int ma_period,        // 移動平均の期間
    int ma_shift,         // 移動平均をシフトするバーの数(右方向へシフト)
    int ma_method,        // 移動平均線種類
    int applied_price,    // 価格種類
    int shift             // 取得するバーの位置(0が最新のバーを表し、1~が過去のバーに遡っていきます)
);

この関数は、指定された通貨ペアと時間軸における標準偏差の値を返します。

引数の説明

symbol
通貨ペアの種類を指定します。例えば、"EURUSD"や"GBPJPY"など。
timeframe
時間軸の種類を指定します。例えば、1分足(1)、5分足(5)、1時間足(60)など。
ma_period
移動平均の期間を指定します。
ma_shift
移動平均をシフトするバーの数を指定します。
ma_method
移動平均線の種類を指定します。
  – `MODE_SMA` – 単純移動平均
  – `MODE_EMA` – 指数移動平均
  – `MODE_SMMA` – 平滑移動平均
  – `MODE_LWMA` – 加重移動平均
applied_price
価格の種類を指定します。
  – `PRICE_CLOSE` – 終値
  – `PRICE_OPEN` – 始値
  – `PRICE_HIGH` – 高値
  – `PRICE_LOW` – 安値
  – `PRICE_MEDIAN` – (高値 + 安値) / 2
  – `PRICE_TYPICAL` – (高値 + 安値 + 終値) / 3
  – `PRICE_WEIGHTED` – (高値 + 安値 + 終値 * 2) / 4
shift
取得するバーの位置を指定します。0が最新のバーを表し、1以上の数値が過去のバーを表します。

サンプルコード

以下に、iStdDev()関数を使用して最新のバーの標準偏差の値を取得するサンプルコードを示します。

サンプルコード
// EURUSDの1時間足で最新のバーの標準偏差の値を取得する例
double stddev_value = iStdDev(“EURUSD", PERIOD_H1, 10, 0, MODE_EMA, PRICE_CLOSE, 0);
Print(“EURUSDの1時間足の最新の標準偏差の値: “, stddev_value);

このサンプルコードでは、"EURUSD"の1時間足における最新の標準偏差の値を取得し、ターミナルウィンドウに表示します。

iStdDevOnArrayの計算方法

iStdDevOnArray()関数は、ユーザが作成した自由なデータを元に標準偏差を計算するために使用されます。この関数は、価格データを格納した配列を引数に指定します。

関数仕様
double iStdDevOnArray(
    double array[],  // 価格データの配列
    int total,       // 配列のうち計算に使用する個数。全てを使用する場合は0を指定する。
    int ma_period,   // 移動平均の期間
    int ma_shift,    // 移動平均をシフトするバーの数(右方向へシフト)
    int ma_method,   // 移動平均線種類
    int shift        // 取得するバーの位置(0が最新のバーを表し、1~が過去のバーに遡っていきます)
);

以下に、iStdDevOnArray()関数を使用して標準偏差の値を取得するサンプルコードを示します。

サンプルコード
// 配列に格納された価格データから標準偏差の値を取得する例
double price_data[100];
// price_dataには価格データが格納されていると仮定
double stddev_value_array = iStdDevOnArray(price_data, 100, 10, 0, MODE_EMA, 0);
Print(“配列から計算された標準偏差の値: “, stddev_value_array);

このサンプルコードでは、配列に格納された価格データから標準偏差の値を計算し、ターミナルウィンドウに表示します。

まとめ

Standard Deviation(iStdDev)インディケータは、市場のボラティリティを評価するための強力なツールです。MT4のiStdDev()およびiStdDevOnArray()関数を使用することで、簡単にこのインディケータの値を取得し、トレード戦略に活用することができます。初心者の方も、この基本的な使い方を理解して、実際のトレードに応用してみてください。

MQL4

Posted by 佐川直弘