iStdDevOnArray()関数は、ユーザーが自由に作成した配列を基にして、各種移動平均線(単純・指数・平滑・線形加重移動平均線)を中心とした、指定期間における標準偏差の値を取得するために使用します。
iStdDevOnArray()関数は、以下のように定義されています。
double iStdDevOnArray(
double array[],
int total,
int ma_period,
int ma_shift,
int ma_method,
int shift
);
各引数の意味は、以下のとおりです。
- double array[]
標準偏差の値を算出する配列名を指定します。 - int total
標準偏差の値を算出する配列の要素数を指定します。
「0」と記述すると、配列全体(=全ての要素)を基にして標準偏差の値を算出します。 - int ma_period
移動平均線の値を計算する期間を指定します。 - int ma_shift
標準偏差の表示を右方向にシフト(ずらす)するバーの個数を指定します。 - int ma_method
以下の表に従って、移動平均線の種類を指定します。種 類 定 数 内 容 MODE_SMA 0 単純移動平均線 MODE_EMA 1 指数移動平均線 MODE_SMMA 2 平滑移動平均線 MODE_LWMA 3 線形加重移動平均線 - int shift
標準偏差の値を取得したいバーの位置を指定します。
標準偏差の値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。
注意点
iStdDev()関数とは異なって、iStdDevOnArray()関数は、通貨ペア名や時間軸や適用価格のデータを取得しません。
したがって、iStdDevOnArray()関数で標準偏差の値を算出するためには、あらかじめ価格データを用意しておかなければなりません。
標準偏差は、左から右へ(=古い価格データから新しい価格データに向かって)計算されます。右から左へ(=新しい価格データから古い価格データに向かって)標準偏差を計算するためには、ArraySetAsSeries()関数(詳細は「こちら」を参照してください。)を使います。