RSI
Posted: under ├ RSI. Tags: RSI, VBAコード, 相対力指数, 計算å¼
 
 
RSIã«ã¤ã„ã¦ã§ã™ã€‚
 
相対力指数ã¨è¨³ã•ã‚Œã‚‹ã‚ªã‚·ãƒ¬ãƒ¼ã‚¿ç³»ã®æŒ‡æ¨™ã§ã€ç›¸å ´ã®å¼·å¼±ã®å‚¾å‘を測る指標ã®ä¸€ã¤ã€‚
Â
計算方法ã¯éŽåŽ»N本ã®å€¤ä¸ŠãŒã‚Šå¹³å‡å€¤ã€å€¤ä¸‹ãŒã‚Šå¹³å‡å€¤ã‚’基ã«è¨ˆç®—ã•れã¾ã™ã€‚
Â
>>計算å¼ï¼ˆNã¯è¶³æ•°ï¼‰
計算ã®ã¯ã˜ã‚
 RSI = A / (A+B) × 100
     A = éŽåŽ»N本ã®å€¤ä¸ŠãŒã‚Šå¹…å¹³å‡
     B = éŽåŽ»N本ã®å€¤ä¸‹ãŒã‚Šå¹…å¹³å‡
2本目以é™
 RSI = A’ / (A’ + B’) × 100
     A’ = ( ( N -1 ) × A + ç¾åœ¨ã®è¶³ã®å€¤ä¸ŠãŒã‚Šå¹… ) / N 
     B’ = ( ( N -1 ) × B + ç¾åœ¨ã®è¶³ã®å€¤ä¸‹ãŒã‚Šå¹… ) / N 
 
Â
>>ãƒãƒ£ãƒ¼ãƒˆ
上記ãƒãƒ£ãƒ¼ãƒˆã€é»„色線ãŒ9本ã€èµ¤ç·šãŒ18æœ¬ã€æ°´è‰²ç·šãŒ36本ã®RSI
 
Â
Â
>>VBAコード
Â
‘※ エクセルã®1列目(A列)ã«è¡Œç•ªå·ã€2列目(B列)ã«æ—¥æ™‚ã€
‘※ 3列目(C列)~6列目(F列)ã«å§‹å€¤ãƒ»é«˜å€¤ãƒ»å®‰å€¤ãƒ»çµ‚値
‘********************************
‘ rsi :RSIã®æŽ¡ç”¨æœ¬æ•°
‘ num:ç¾åœ¨ã®è¡Œ
‘ cell_rsi:RSI計算値書込ã¿åˆ—
‘ cell_sa : 全足比書込ã¿åˆ—
‘ cell_up:値上ãŒã‚Šå¹…平凿›¸è¾¼ã¿åˆ—
‘ cell_do:値下ãŒã‚Šå¹…平凿›¸è¾¼ã¿åˆ—
‘********************************
If cell(num - 1, 6) <> “” Then Cells(num, cell_sa) = _
                       Cells(num, 6) - Cells(num - 1, 6)
If cell(num - (rsi - 1), 6) <> “” Then
   If Cells(num - 1, cell_rsi) = “” Then
       rsi_max = Application.SumIf(Range(Cells(num - (rsi - 1), _
                    cell_sa), Cells(num_1, cell_sa)), “>0″) / rsi
       rsi_min = Abs(Application.SumIf(Range(Cells(num - (rsi - 1), _
                    cell_sa), Cells(num_1, cell_sa)), “<0″)) / rsi
       Cells(num, cell_up) = rsi_max
       Cells(num, cell_do) = rsi_min
       Cells(num, cell_rsi) = rsi_max / (rsi_max + rsi1_min) * 100
   End If
   If Cells(num - 1, cell_rsi) <> “” Then
       If Cells(num_1, cell_sa) > 0 Then
           rsi_max = (Cells(num - 1, cell_up) * (rsi - 1) + _
                                  Cells(num, cell_sa)) / rsi
       Else
           rsi_max = Cells(num - 1, cell_up) * (rsi1 - 1) / rsi
       End If
       If Cells(num_1, 114) < 0 Then
           rsi_min = (Cells(num - 1, cell_do) * (rsi - 1) - _
                                  Cells(num, cell_sa)) / rsi
       Else
           rsi_min = Cells(num - 1, cell_do) * (rsi - 1) / rsi
       End If
       Cells(num, cell_up) = rsi_max
       Cells(num, cell_do) = rsi_min
       Cells(num, cell_rsi) = rsi_max / (rsi_max + rsi_min) * 100
   End If
End If
| <PR> |
![]() |
| <PR> |



