移動平均線についてです。計算式、チャート、エクセルVBAコード
一番オーソドックスなテクニカル指標と言っても過言ではない移動平均線。
計算方法は単純に期間xの終値の平均です。
ただし、上記の様な単純平均の場合は「単純移動平均線(SMA)」となり、その他にも加重移動平均線(WMA)、三角移動平均線(TMA)、指数平滑移動平均線(EMA)があり、そのそれぞれで計算方法が異なってきます。
それぞれの計算式や計算方法、チャート、エクセルVBAコードを掲載。
移動平均線の計算式(Nは足数)
●単純移動平均線(SMA)= (当日も含め)N本の終値の平均
●加重移動平均線(WMA)=[(当日の終値×N)+{前日の終値×(N-1)}+{前々日の終値×(N-2)}+・・・・・+{(N-2)日前の終値×2}+(N-1)日前の終値]÷{(N+(N-1)+(N-2)+・・・+2+1)}
例えば、3本加重移動平均線(3WMA)の場合、
(当日の終値×3)+(前日の終値×2)+前々日の終値
を
3+2+1、(=6)で割った数となる。
●三角移動平均線(TMA)=Y本単純移動平均線のY本単純移動平均線
※Yは(N+1)÷2の端数切り上げ
例えば3本三角移動平均線は、まずYが(3+1)÷2の端数切り上げで4
(当日も含め)4本の単純移動平均線をMとすると、Mの4本単純移動平均線となる。
●指数平滑移動平均線(EMA)
1本目(期間の最初の計算)=(当日も含め)N本の終値の平均
2本目以降=前日のEMA+Y×{当日終値-前日のEMA}
※Y=2÷(N+1)
例えば、3本指数平滑移動平均線の場合、1本目は3本の単純移動平均線。
2本目以降は、Y=2÷(3+1)=0.5 で、直前EMA+0.5×(当日終値-直前EMA)
移動平均線のチャート
上記チャートで、黄線が単純移動平均、水色線が加重移動平均、白線が三角移動平均、赤線が指数平滑移動平均。(いずれも採用本数は25本)
移動平均線のVBAコード
‘※ エクセルの1列目(A列)に行番号、2列目(B列)に日時、
‘※ 3列目(C列)~6列目(F列)に始値・高値・安値・終値
‘********************************
‘ ma :各移動平均線の採用本数
‘ num:現在の行
‘ cell_ma:移動平均線計算値書込み列
‘ 三角移動平均のみ、別に単純移動平均のデータを保持する行が必要
‘********************************
‘——–単純移動平均線
If num – (ma – 1) >= 2 Then
Cells(num, cell_ma) = Application.Average(Range(Cells(num – (ma – 1), 6), _
Cells(num, 6)))
End If
‘——–加重移動平均線
If num – (ma – 1) >= 2 Then
Cells(num, cell_ma) = Application.SumProduct(Range(Cells(num – (ma – 1), 6) _
, Cells(num, 6)), Range(Cells(2, 1), Cells(2 + (ma – 1), 1))) / _
Application.Sum(Range(Cells(2, 1), Cells(2 + (ma – 1), 1)))
End If
‘——–三角移動平均線
aa1 = Application.WorksheetFunction.RoundUp((ma4 + 1) / 2, 0)
If num – (ma – 1) >= 2 Then
‘単純移動平均を先に計算
Cells(num, 11) = Application.Average(Range(Cells(num – (aa1 – 1), 6), _
Cells(num, 6)))
End If
If num – 2 – aa1 > ma Then
Cells(num, cell_ma) = Application.Average(Range(Cells(num – (aa – 1), 11), _
Cells(num, 11)))
End If
‘——–指数平滑移動平均線
If num – (ma – 1) = 2 Then
Cells(num, cell_ma) = Application.Average(Range(Cells(num – (ma – 1), 6), _
Cells(num, 6)))
End If
If num – (ma – 1) > 2 Then
Cells(num, cell_ma) = Cells(num – 1, cell_ma) + ((Cells(num, 6) – _
Cells(num – 1, cell_ma)) * 2 / (1 + ma))
End If
(外部リンク)テクニカル指標(Wikipedia)
ピンバック: MACD(計算式、VBAコードなど) | IBI-Square
ピンバック: TRIX(計算式、VBAコードなど) | IBI-Square
ピンバック: 移動平均線 (チャート力向上講座日足スイング編) | IBI-Square