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

広告

posted by fanblog

広告

posted by fanblog
2013年08月12日
第16回 RSI





今回はRSI (Relative Strength Index、相対力指数) についてです。
0%から100%までの値をとる指標です。80%を上回ると買われすぎ、20%を下回ると売られすぎをあらわします。メーンチャートの下に補助チャートとして表示します。




(1) RSI の計算式



いいかえると

RSI=分子×100÷分母
分母=n日間の日々の値幅の合計
分子=n日間のなかで値上がりした日の値幅の合計

n日間、毎日上がり続けた場合は100になり、毎日下がり続けた場合は0になります。
n日間で値上がりした日の割合を日々の値幅で加重平均したものといえます。

(2) RSI の計算

Function RSI算出(データ配列, 周期, 実表示本数)

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

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

  分子 = 0
  分母 = 0
  For k = 開始行 To 終了行
   価格差 = データ配列(k, 1) - データ配列(k - 1, 1)
   If 価格差 > 0 Then
     分子 = 分子 + 価格差
     分母 = 分母 + 価格差
   End If

   If 価格差 < 0 Then
     分母 = 分母 - 価格差
   End If
  Next k

  If 分母 > 0 Then a(j, 1) = 分子 * 100 / 分母
    j = j + 1
Next i

RSI算出 = a

End Function


入力引数のデータ配列は終値の配列です。
入力引数の周期は14等の期間です。プロパティシートで設定します。
入力引数の実表示本数はチャートに表示する本数です。
出力はRSI の配列です。

(3) RSI の表示

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

Set ch = 補助チャート追加("RSI")

i = 2
周期 = 配列プロパティ取得("RSI", i)

While 周期 > 0
  RSI配列 = RSI算出(終値配列, 周期, 実表示本数)

  Set sr = ch.seriescollection.NewSerie s
  sr.ChartType = xlLine
  sr.Values = RSI配列
  sr.Name = "RSI" & 周期

  i = i + 1
  周期 = 配列プロパティ取得("RSI", i)
Wend

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


指定された期間の折線を複数表示します。
20%と80%の位置に横線を引きます。


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



B11セルをTRUE にするとRSIを表示します。FALSE で非表示です
C11セル以降は周期です。何本でも表示できます


エクセルファイルです。

    ダウンロード


前へ   次へ


Posted by vbafan at 02:18 | この記事のURL
この記事のURL

×

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