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

広告

posted by fanblog

広告

posted by fanblog
2013年08月12日
第18回 スローストキャスティックス




今回はスローストキャスティックスについてです。
0%から100%までの値をとる指標です。%DとSDの2本の線を表示します。
メーンチャートの下に補助チャートとして表示します。
%Dは80%を上回ると買われすぎ、20%を下回ると売られすぎをあらわします。
%DがSDを下から上に抜けると買いのサインです。
%DがSDを上から下に抜けると売りのサインです。


(1) スローストキャスティックス の計算式

本日の%D=分子×100÷分母
分母=過去n日間のなかで最高値−過去n日間のなかで最安値
分子=本日の終値

n日間の値幅に対して本日の終値の位置を%であらわす指標です。
本日の終値がn日間の最高値のときは100、最安値のときは0になります。
ストキャスティックスの%Dと同じです。

本日のSD=%Dの単純移動平均=過去m日間の%Dの合計÷m

(2) スローストキャスティックス の計算

(2-1) %Dの計算

Private Function ストキャスティックス算出(データ配列, 周期, 実表示本数)

n = UBound(データ配列)
ReDim a(1 To 実表示本数, 1 To 1)

j = 1
For i = n - 実表示本数 + 1 To n
  開始行 = i - 周期 + 1
  If 開始行 < 1 Then 開始行 = 1
    終了行 = i

  高値 = データ配列(i, データの高値)
  安値 = データ配列(i, データの安値)
  終値 = データ配列(i, データの終値)

  For k = 開始行 To 終了行 - 1
   If 高値 < データ配列(k, データの高値) Then 高値 = データ配列(k, データの高値)
   If 安値 > データ配列(k, データの安値) Then 安値 = データ配列(k, データの安値)
  Next k

  分子 = 終値 - 安値
  分母 = 高値 - 安値
  If 分母 > 0 Then a(j, 1) = 分子 * 100 / 分母

  j = j + 1
Next i

ストキャスティックス算出 = a

End Function


ストキャスティックスの計算です。
入力引数のデータ配列は4本値の配列です。
入力引数の周期は3等の期間です。プロパティシートで設定します。
入力引数の実表示本数はチャートに表示する本数です。
出力は%Dの配列です。

(2-2) SDの計算

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

n = UBound(データ配列)
ReDim a(1 To 実表示本数, 1 To 1)

j = 1
For i = n - 実表示本数 + 1 To n
  開始行 = i - 周期 + 1
  終了行 = i
  If 開始行 < 1 Then 開始行 = 1

    合計 = 0
  For k = 開始行 To 終了行
   合計 = 合計 + データ配列(k, 1)
  Next k

  件数 = 終了行 - 開始行 + 1

  a(j, 1) = 合計 / 件数
  j = j + 1
Next i

単純移動平均線算出 = a

End Function


単純移動平均の計算です。
入力引数のデータ配列は%Dの配列です。
入力引数の周期は3等の期間です。プロパティシートで設定します。
入力引数の実表示本数はチャートに表示する本数です。
出力はSDの配列です。

(3) スローストキャスティックス の表示

Sub スローストキャスティックス表示(データ配列, 実表示本数)

Set ch = 補助チャート追加("スローストキャスティックス")

D周期 = 配列プロパティ取得("スローストキャスティックス", 2)
D配列 = ストキャスティックス算出(データ配列, D周期, 実表示本数)
Set sr = ch.seriescollection.NewSeries
sr.ChartType = xlLine
sr.Values = D配列
sr.Name = "%D" & D周期

SD周期 = 配列プロパティ取得("スローストキャスティックス", 3)
SD配列 = 単純移動平均線算出(D配列, SD周期, 実表示本数)
Set sr = ch.seriescollection.NewSeries
sr.ChartType = xlLine
sr.Values = SD配列
sr.Name = "SD" & SD周期

ch.Axes(xlValue, xlPrimary).MinimumScale = 0
ch.Axes(xlValue, xlPrimary).MaximumScale = 100
ch.Axes(xlValue, xlPrimary).MajorUnitIsAuto = False
ch.Axes(xlValue, xlPrimary).MajorUnit = 50

補助チャート後処理 ch

水平線表示 ch, 20, RGB(255, 0, 0)
水平線表示 ch, 80, RGB(255, 0, 0)

End Sub


%D線はストキャスティクス線です。
SD線は単純移動平均線です。
20%と80%の位置に横線を引きます。

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


B13セルをTRUE にするとストキャスティックスを表示します。FALSE で非表示です
C13セルは%Dの周期です。
D13セルはSDの周期です。

エクセルファイルです。

    ダウンロード


前へ   次へ

Posted by vbafan at 12:15 | この記事のURL
この記事のURL

×

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