単位期間を定め、単位期間中に初めに付いた値段を始値、最後に付いた値段を終値、最も高い値段を高値、最も安い値段を安値とし、この四種の値段(四本値)をローソクと呼ばれる一本の棒状の図形に作図し、時系列に沿って並べて株価の変動をグラフとして表したものである。ローソクには、始値よりも終値が高い陽線(ようせん、図:右)と、始値よりも終値が安い陰線(いんせん、図:左)の2種類がある。このローソク足は奥が深く、ここでは省略します。詳しくはネットなどで調べてください。
2.ロウソク足の作り方 (Excel VBA):
(1) 楽天RSSを起動する。
(2) エクセルで(VBAで処理)タイマーを使ってデータを1分ごとに記録できるようにする。
この1分ごとに記録した値が終値となる
(3) 1分毎に1行挿入していく(今まで記録した終値を下へずらす)
(4) 次にロウソク足を作成。
(5) 1秒ごとにデータを取得(1秒目、2秒目、、、、60秒目の終値を記録。)
(5) その記憶したデータ中から、最大値と最小値を求め、四本値を作る。
(6)これを1分毎に古いデータを下に下げていく。
時間 始値 高値 安値 終値
2011/01/29/915 100 110 90 105
3.ロウソク足の作り方 (Excel VBA):
具体的には、次のExcel VBAです。 C3に楽天のRSSの関数を挿入し、3秒ごとにC3のデータを読み取り、 C6にコピーし、1つずつずらいていく。 1分のデータ20個の中から最大値と最小値を求める。
Option Explicit Public STOP_B As Boolean Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub ストップ() STOP_B = False End Sub Sub スタート() Dim i As Integer Dim t As Integer Dim n As Integer Dim R As Range Dim timenow As Variant i = 6 n = 6 STOP_B = True Do While True t = 0 timenow = Format(Now(), "HH:mm") '約3秒スリープする While t < 300 Call Sleep(10) DoEvents t = t + 1 Wend If timenow = Format(Now(), "HH:mm") Then Sheet1.Cells(i, 3).Value = Sheet1.Range("C3").Value i = i + 1 Else Sheet1.Cells(n, 5).Value = timenow '時間 Sheet1.Cells(n, 6).Value = Sheet1.Cells(6, 3).Value '始値 Set R = Sheet1.Range(Sheet1.Cells(6, 3), Sheet1.Cells(i, 3)) Sheet1.Cells(n, 7).Value = WorksheetFunction.Max(R) '高値 Sheet1.Cells(n, 8).Value = WorksheetFunction.Min(R) '安値 Sheet1.Cells(n, 9).Value = Sheet1.Cells(i - 1, 3).Value '終値 Sheet1.Range(Sheet1.Cells(6, 3), Sheet1.Cells(i, 3)).Clear i = 6 Sheet1.Cells(i, 3).Value = Sheet1.Range("C3").Value i = i + 1 n = n + 1 End If If STOP_B = False Then MsgBox "お疲れ様でした" Exit Sub End If Loop End Sub Function xSleep(ByVal dwMilliseconds As Long) Call Sleep(dwMilliseconds) End Function
4.ファイル:
【Excel ファイル】