ストキャスティクス(計算式、チャート、エクセルVBAコード)テクニカル指標

投稿者: | 2008年12月1日



 

ストキャスティクスについてです。計算式、チャート、エクセルVBAコード

 

オーソドックスなテクニカル指標の一つで、オシレータ系の指標の代表格といえます。

 

過去一定期間の高値と安値の値幅に対して、現在のレートの相対的な位置を計測し、そのパーセンテージを表示する指標です。

 

 

ラインは、%K、%D、S%Dの3本。%Kと%Dの二つのラインを用いて、ストキャスティクス・ファスト、%DとS%Dの2本を用いてストキャスティクス・スローとも表現します。

 

計算式、計算方法、エクセルVBAコード、チャートを掲載しています。

 

 

 

 

ストキャスティクスの計算式

 

計算方法は過去一定期間の最高値・最安値、現在の終値の3つの値を使用して計算を行います。

 

計算方法は下記の通り。(ストキャスティクス[x,y,z]の計算)

<%K>

%K = (終値-min_a) ÷ (max_a-min_a) × 100

max_a = 過去x本の最高値

min_a = 過去x本の最安値

<%D>

%D = (max_b ÷ min_b) × 100

max_b =(終値 – min_a ) のy本合計

min_b =(max_a – min_a )のy本合計

<S%D>

S%D = %Dラインのz本移動平均

 

 

 

ストキャスティクスのチャート

(黄色線=%K、赤線=%D、水色線=S%D)

 

 

通常、80%超で買われすぎと判断し、売りサイン、20%未満で売られすぎと判断し買いサインとなりますが、大きなトレンドを発するような場合には、ストキャスティクスのラインが上や下に張り付いてしまい、意味を成しません。

 

では、最後にVBAのコードです。

 

 

 

ストキャスティクスのエクセルVBAコード

‘※ エクセルの1列目(A列)に行番号、2列目(B列)に日時、
‘※ 3列目(C列)~6列目(F列)に始値・高値・安値・終値
‘********************************
‘ k :%K採用本数
‘ d :%D採用本数
‘ s :S%D採用本数
‘ num:現在の行
‘ cell_k:%K書込み列番号
‘ cell_d:%K書込み列番号
‘ cell_sd:%K書込み列番号
‘ cell_nm:(終値-過去%K採用本数分の最安値)書込み列番号
‘ cell_mm:(過去%K採用本数分の最高値-過去%K採用本数分の最安値)書込み列番号
‘********************************

‘****パラメータ
k = 9
d = 3
sd = 3
‘****************

‘****書込み列
cell_k = 9
cell_d = 10
cell_sd = 11
cell_nm = 7
cell_mm = 8
‘****************

‘———%K
If num – (k – 1) >= 2 Then
r_max = Application.WorksheetFunction.Max _
(Range(Cells(num – (k – 1), 4), Cells(num, 3)))
r_min = Application.WorksheetFunction.Min _
(Range(Cells(num – (k – 1), 5), Cells(num, 4)))
n_min = r_now – r_min
m_min = r_max – r_min
Cells(num, cell_nm) = n_min
Cells(num, cell_mm) = m_min

If n_min = 0 Or m_min = 0 Then’****0値で除算することによるエラー回避
Cells(num_1, cell_k) = 0
Else
Cells(num_1, cell_k)) = n_min / m_min * 100
End If
End If

‘———%D
If num – (k + d – 1) >= 2 Then
n_mins = Application.WorksheetFunction.Sum _
(Range(Cells(num – (d – 1), cell_nm), Cells(num, cell_nm)))
m_mins = Application.WorksheetFunction.Sum _
(Range(Cells(num – (d – 1), cell_mm), Cells(num, cell_mm)))

If n_min = 0 Or m_min = 0 Then’****0値で除算することによるエラー回避
Cells(num, cell_d) = 0
Else
Cells(num, cell_s) = n_mins / m_mins * 100
End If
End If

‘——–S%D
If num – (k + d + sd – 1) >= 2 Then
Cells(num, cell_sd) = Application.WorksheetFunction.Average _
(Range(Cells(num – (sd – 1), cell_d), Cells(num, cell_d)))
End If

 

 

テクニカル指標一覧

罫線談義一覧

(外部リンク)テクニカル指標(Wikipedia)

 

 

ストキャスティクス(計算式、チャート、エクセルVBAコード)テクニカル指標」への1件のフィードバック

  1. ピンバック: 色んな指標をストキャス化してみる | IBI-Square

コメントは停止中です。