アフィリエイト広告を利用しています

広告

posted by fanblog

広告

posted by fanblog
2013年08月17日
第26回 GMMA




今回は GMMA (Guppy Multi Moving Average、複合型移動平均線) についてです。
メーンチャートに12本の指数平滑移動平均線を表示します。



(1) GMMA の計算式

短期組として6本の指数平滑移動平均線を引きます。周期は 3、5、8、10、12、15 です。
長期組として6本の指数平滑移動平均線を引きます。周期は 30、35、40、45、50、60 です。

(2) GMMA の計算

指数平滑移動平均線の計算になります。 こちら を参照して下さい。

(3) GMMA の表示

(3-1) GMMA の表示

Sub GMMA表示(ch, 終値配列, 実表示本数)

j = 2
For i = 1 To 6
周期 = 配列プロパティ取得("GMMA", j)
If 周期 = 0 Then Exit For

配列 = 指数平滑移動平均線算出(終値配列, 周期, 実表示本数)
Set sr = ch.SeriesCollection.NewSeries
sr.ChartType = xlLine
sr.Values = 配列
sr.Name = "EMA" & 周期
sr.Border.Weight = 1
sr.Border.Color = RGB(0, 0, 255)
j = j + 1
Next i

j = 8
For i = 1 To 6
周期 = 配列プロパティ取得("GMMA", j)
If 周期 = 0 Then Exit For

配列 = 指数平滑移動平均線算出(終値配列, 周期, 実表示本数)
Set sr = ch.SeriesCollection.NewSeries
sr.ChartType = xlLine
sr.Values = 配列
sr.Name = "EMA" & 周期
sr.Border.Weight = 1
sr.Border.Color = RGB(255, 0, 255)
j = j + 1
Next i

End Sub


短期組の6本は青で表示します。長期組の6本はピンクで表示します。Series オブジェクトの Border Color で色を指定します。
12本の移動平均線を表示するため、細い線で表示します。Series オブジェクトの Border Weight を 1 にします。

(3-2) 指数平滑移動平均線算出

Function 指数平滑移動平均線算出(データ配列, 周期, 実表示本数)

n = UBound(データ配列)
ReDim a(1 To 実表示本数, 1 To 1)
表示開始行 = n - 実表示本数 + 1
移動平均 = データ配列(1, 1)

j = 1
For i = 1 To n
  移動平均 = (2 * データ配列(i, 1) + (周期 - 1) * 移動平均) / (周期 + 1)

  If i >= 表示開始行 Then
     a(j, 1) = 移動平均
     j = j + 1
  End If
Next i

指数平滑移動平均線算出 = a

End Function


(4) プロパティシートの設定



B16セルを TRUE にするとGMMAを表示します。FALSE で非表示です
C16セルからH16セルは短期組の周期です
I16セルからN16セルは長期組の周期です

エクセルファイルです。

    ダウンロード


前へ   次へ

Posted by vbafan at 11:11 | この記事のURL
この記事のURL

×

この広告は30日以上新しい記事の更新がないブログに表示されております。