2010/12/25
正弦加重移動平均(Sine-Weighted Moving Average)
正弦加重移動平均は加重移動平均の一種で、直近N日の個々の終値に係数としてSin(i/(N+1)*π)(i=1,2…,N)で計算される値を掛けて
平均を計算するものです。加重の掛かり方は中央により大きな加重が掛かるので三角移動平均と似た感じになります。
使用する関数
引数となる配列は行数と列数が等しい配列である必要があります。行数と列数が等しくない場合、エラー値 #VALUE! が返されます。
正弦加重移動平均は加重移動平均と同様にSUMPRODUCT関数を使うと簡単に計算できます。
ここでは任意の日数の加重移動平均が計算できるようにOFFSET関数を使います。
F列で係数を計算しG列で正弦加重移動平均を計算することにします。
G4セルで正弦加重移動平均の日数を指定します。
F列で係数を計算します。
計算式は
G列で正弦加重移動平均を計算します。
計算式の部分は赤枠内赤字の部分です。計算式が2行になっていて見にくいので書き出すと
この部分の形は加重移動平均と同じなので式の説明はそちらを参照してください。
F5,G5セルをF6以下のセルにコピー&ペーストすれば正弦加重移動平均線が計算できます。
Excelファイルがダウンロードできない場合はリンクを右クリックして「対象をファイルに保存」を選択して保存すればダウンロードできます。
平均を計算するものです。加重の掛かり方は中央により大きな加重が掛かるので三角移動平均と似た感じになります。
計算式
正弦加重移動平均 = (C1×S1+C2×S2+…+Cn×Sn)/(S1+S2+…+Sn)
C1…Cnは終値
S1…SnはSin(1/(n+1)*π)…Sin(n/(n+1)*π)
C1…Cnは終値
S1…SnはSin(1/(n+1)*π)…Sin(n/(n+1)*π)
![]() |
日経平均終値と正弦加重移動平均の図
Excelを使って正弦加重移動平均線を計算する
Excelを使って正弦加重移動平均線を計算する手順を説明します。使用する関数
PI()
円周率πを返します。SIN(数値)
数値のSinを計算します。SUMPRODUCT(配列 1,配列 2,配列 3,…)
引数として指定した配列の対応する要素間の積をまず計算し、さらにその和を返します。引数となる配列は行数と列数が等しい配列である必要があります。行数と列数が等しくない場合、エラー値 #VALUE! が返されます。
SUM(数値1,数値2,…)
引数の合計を計算します。OFFSET(基準セル,行数,列数,高さ,幅)
基準セルから指定した行数、列数だけ移動したセルを参照します。または高さ、幅を設定して基準セルから指定した高さ、幅のセル範囲を指定します。IF(条件式,真の場合,偽の場合)
条件式を満たす場合は真の場合の値、満たさない場合は偽の場合の値を返します。ROW(セル)
セルの行番号を返します。何も指定しない場合はROWが書かれたセルの行番号を返します。![]() |
ここでは任意の日数の加重移動平均が計算できるようにOFFSET関数を使います。
F列で係数を計算しG列で正弦加重移動平均を計算することにします。
G4セルで正弦加重移動平均の日数を指定します。
F列で係数を計算します。
計算式は
=IF(ROW()-ROW($F$4)<=$G$4,SIN((ROW()-ROW($F$4))/($G$4+1)*PI()),"")
です。G列で正弦加重移動平均を計算します。
計算式の部分は赤枠内赤字の部分です。計算式が2行になっていて見にくいので書き出すと
SUMPRODUCT(OFFSET(E5,0,0,-$G$4,1),OFFSET($F$5,0,0,$G$4,1))/SUM(OFFSET($F$5,0,0,$G$4,1))
のようになっています。この部分の形は加重移動平均と同じなので式の説明はそちらを参照してください。
F5,G5セルをF6以下のセルにコピー&ペーストすれば正弦加重移動平均線が計算できます。
Excelファイルがダウンロードできない場合はリンクを右クリックして「対象をファイルに保存」を選択して保存すればダウンロードできます。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
↑ TOP PAGE