移動平均線(計算式、チャート、エクセルVBAコード)テクニカル指標

投稿者: | 2008年11月17日



 

 

移動平均線についてです。計算式、チャート、エクセル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)

 

 

移動平均線(計算式、チャート、エクセルVBAコード)テクニカル指標」への3件のフィードバック

  1. ピンバック: MACD(計算式、VBAコードなど) | IBI-Square

  2. ピンバック: TRIX(計算式、VBAコードなど) | IBI-Square

  3. ピンバック: 移動平均線 (チャート力向上講座日足スイング編) | IBI-Square

コメントは停止中です。