
移動平均線を中心として、価格の標準偏差の定数倍だけ上下にシフトしたラインを引いた指標です。
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>