移動平均線を中心として、価格の標準偏差の定数倍だけ上下にシフトしたラインを引いた指標です。
double iBands(
string [symbol](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>), // 銘柄
ENUM_TIMEFRAMES [timeframe](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>), // 時間軸
int period, // 計算する期間
double deviation, // 標準偏差の倍率
int bands_shift, // バンドのシフト
ENUM_APPLIED_PRICE [applied_price](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>), // 価格の種類
int mode, // 出力するライン
int [shift](<https://toyolab-fx.notion.site/7010417f6ffc4d43aaca4a8b77bafcfd>) // 計算するバーの位置
);
ボリンジャーバンドのパラメータは、計算する期間period
と標準偏差の倍率deviation
です。
どのラインを出力するかをmode
の引数で指定します。MODE_MAIN
が移動平均線、MODE_UPPER
が上位ライン、MODE_LOWER
が下位ラインを表します。
バンドを時間方向にシフトしたい場合、bands_shift
に0以外の値を代入します。プラスの値で右方向に、マイナスの値で左方向にシフトします。
基準となる中央ラインMain[0]
は、Price[i]
の単純移動平均線です。上位ラインUpper[0]
は、Price[i]
の標準偏差にdeviation
を掛けた値をMain[0]
に加算した値、下位ラインLower[i]
は、その偏差をMain[0]
から減算した値として求めます。
Main[0] = SMA(Price[i], N)
Upper[0] = Main[0] + deviation * StdDev(Price[i], N)
Lower[0] = Main[0] - deviation * StdDev(Price[i], N)
SMA(Price[i], N)
:Price[i]
の単純移動平均
StdDev(Price[i], N)
:Price[i]
の標準偏差
Price[i]
:applied_price
で指定した価格
N
:ma_period
<aside>
💡 N
個のf(i)
の標準偏差StdDev()
は、以下のような式で計算されます。ただし、SMA()
はf(i)
の単純移動平均を表します。
$StdDev(f(i), N)=\displaystyle\sqrt{\frac{1}{N}\sum_{i=0}^{N-1}(f(i)-SMA(f(i),N))^2}$
</aside>