Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37279 / 76738 ←次へ | 前へ→

【44632】Re:RCI系指数をVBAで
お礼  minarai  - 06/11/26(日) 9:27 -

引用なし
パスワード
   ▼ichinose さん:
お答え有難うございました、私も自動記録で作ってみました、日付け順位を価格順位に関数ランクでつくりましたが引数が見つかりませんになりエラーで全体のVBAが動かなくなりました、下のランク関数を入れない後からのは大体動きました、ランク関数を使ってランダムな株価に価格順位付ける方法がよく判りません。昨晩は夜勤で、今から出かけますので、帰りましたらシンプルに作っていただきましたRCI指数を試してみます。


RCI系指数                            
銘柄名    新日鉱HD                                
日付      日付順位  終値  価格順位           順位差平方            
2006/11/17    5    800    1    4    4    16            
2006/11/20    4    788    4    0    0    0        132    
2006/11/21    3    779    5    -2    -2    4        120    
2006/11/22    2    795    3    -1    -1    1        1.1    
2006/11/24    1    797    2    -1    -1    1    順位差平方の合計(d)22    -0.1    RCI(%)-10

Sub オシレータ系RCI指数()
'
' Macro1 Macro
' マクロ記録日 : 2006/11/25 
'

'
  Range("E4").Select
  ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-1]"
  Range("F4").Select
  ActiveCell.FormulaR1C1 = "=RC[-4]-RC[-2]"
  Range("G4").Select
  ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
  Range("E5").Select
  ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-1]"
  Range("F5").Select
  ActiveCell.FormulaR1C1 = "=RC[-4]-RC[-2]"
  Range("G5").Select
  ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
  Range("E6").Select
  ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-1]"
  Range("F6").Select
  ActiveCell.FormulaR1C1 = "=RC[-4]-RC[-2]"
  Range("G6").Select
  ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
  Range("E7").Select
  ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-1]"
  Range("F7").Select
  ActiveCell.FormulaR1C1 = "=RC[-4]-RC[-2]"
  Range("G7").Select
  ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
  Range("E8").Select
  ActiveCell.FormulaR1C1 = "=RC[-3]-RC[-1]"
  Range("G7").Select
  Selection.Copy
  Range("G8").Select
  Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
  Range("F8").Select
  ActiveCell.FormulaR1C1 = "=RC[-4]-RC[-2]"
  Range("H8").Select
  Selection.FormulaR1C1 = "="
  ActiveCell.FormulaR1C1 = "=SUM(R[-4]C[-1]:RC[-1])"
  Range("I5").Select
  ActiveCell.FormulaR1C1 = "=6*R[3]C[-1]"
  Range("I6").Select
  ActiveCell.FormulaR1C1 = "=5*(25-1)"
  Range("I7").Select
  ActiveCell.FormulaR1C1 = "=R[-2]C/R[-1]C"
  Range("I8").Select
  ActiveCell.FormulaR1C1 = "=1-R[-1]C"
  Range("J8").Select
  ActiveCell.FormulaR1C1 = "=RC[-1]*100"
  Range("J9").Select
End Sub
>おはようございます。
>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%
>
>こんな結果を得ることができます。
>
>試してみて下さい。

0 hits

【44629】RCI系指数をVBAで minarai 06/11/25(土) 1:02 質問
【44630】Re:RCI系指数をVBAで ichinose 06/11/25(土) 8:16 発言
【44632】Re:RCI系指数をVBAで minarai 06/11/26(日) 9:27 お礼
【44635】Re:RCI系指数をVBAで minarai 06/11/26(日) 18:23 お礼

37279 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free