|
▼minarai さん:
おはようございます。
RCIの説明は非常にわかりやすかったですよ!!
こんなデータでRCIの算出を考えます。
A B C
1 日付 終値 RCI
2 2006/1/17 11,545
3 2006/1/18 11,520
4 2006/1/19 11,539
5 2006/1/20 11,528
6 2006/1/23 11,439
7 2006/1/24 11,466
上記のデータでN=5でRCIをC列に算出します。
尚、書式は A列は日付 B列は、通貨に設定されているとします。
C列は、標準に設定しておいて下さい
標準モジュールに
'=====================================================
Sub main()
Dim rng As Range
Dim rw As Long
Dim N As Long
Dim add1 As String, add2 As String
N = 5 '←Nの変更はここ
Set rng = Range("a" & Rows.Count).End(xlUp)
Do Until rng.Row - N + 1 <= 1
With rng
add1 = .Offset(1 - N).Resize(N).Address
add2 = .Offset(1 - N, 1).Resize(N).Address
.Offset(, 2).Value = Evaluate("=1-6*SUMSQ(RANK(" & _
add1 & "," & add1 & ")-RANK(" & _
add2 & "," & add2 & "))/(" & N & _
"*(" & N & "*" & N & "-1))")
.Offset(, 2).NumberFormatLocal = "0%"
End With
Set rng = rng.Offset(-1)
Loop
End Sub
として、mainを実行してみて下さい。
A B C
1 日付 終値 RCI
2 2006/1/17 11,545
3 2006/1/18 11,520
4 2006/1/19 11,539
5 2006/1/20 11,528
6 2006/1/23 11,439 -70%
7 2006/1/24 11,466 -60%
こんな結果を得ることができます。
試してみて下さい。
|
|