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の周期です。
エクセルファイルです。
    ダウンロード
前へ   次へ
【このカテゴリーの最新記事】
-
no image