株のアルゴリズム開発に時間を費やしていたため、更新が遅れてしまいました。
突然ですが、今回は、リアルタイム株価の取得方法に関して考えて見ます。
もともとは0日から最大2日程度保有するスイングトレードを想定していましたが、
デイトレードもバリエーションに加えようと考え、場中のリアルタイムな株価を取得する必要性を感じました。そこで、今回その方法を構築してみました。
リアルタイム株価取得について
リアルタイム株価を取得する方法として「タワー」という有料のリアルタイム株価データベースサービスを利用する方法があります。しかし、ちょっと敷居が高そうなので、今回は、楽天証券のRSS(リアルタイムスプレッドシート)を利用することにしました。
今回の方法はまだ構築段階にあり、完全に検証を行っているわけではないので、
ご利用に当たっては自己責任でお願いします。
リアルタイム株価取得といっても、完全なリアルタイムではなく、1分間隔の現在値をデータベースに取り込んでいくことをターゲットとしています。計画では次の株価取得までの1分間にシステムで売買サインを出力することとしています。
データ格納までの流れ
今回の流れは下記のようになります。非常に単純ですね。
1・楽天証券RSSを利用し、Excel上のセルに最新情報を取得
2・エクセル上のセルに反映された株価情報をODBC経由でMySQLデータベースに格納
上記を行うために準備が必要です。以下では必要な準備に関してコメントします。
大前提として、楽天証券の口座を開設し、RSSを利用可能な条件を確保しておいてください。
データベースの準備
株価を保存するテーブルを用意します。
テーブルは下記の4項目の属性を保持します。
コード
日付
時間
株価
ExcelシートにRSS用記述の準備
RSSではセルに下記のように記述することにより、データを取得することができます。
まずは、データ取得用のシートにRSSのコードを準備してください。
コード : =RSS|'1515.T'!銘柄コード
日付 : =RSS|'1515.T'!現在日付
現在の株価 : =RSS|'1515.T'!現在値
株価更新時刻 : =RSS|'1515.T'!更新時刻
今回は上記のシートを作成するマクロを用意しましたので、簡単に準備することができます。
RSSシート作成マクロ
RSSシート作成マクロを利用してRSSシートを作成します。
1・まず、code_listというシートをExcel上に新規作成(挿入)してください。
2・そのシートのA列に今回リアルタイム株価取得対象とするコードを記載してください
(最大で300個まで記載可能です。これはRSSの制限が最大300銘柄までとなっているためです。)
3・dataというシートを新規作成(挿入)してください
4・下記のマクロを実行してください。
[RSSシート作成マクロ]
----------------------------------------------------------
Sub create_rss_sheet()
Dim i, j As Long
Sheets("code_list").Select
For i = 1 To Cells(Rows.Count, 1).End(xlUp).row
code = Worksheets("code_list").Range("A" & i).Value
j = i + 1
Worksheets("data").Range("A" & j).Value = code
Worksheets("data").Range("B" & j).Value = "=RSS|'" & code & ".T'!現在日付"
Worksheets("data").Range("C" & j).Value = "=RSS|'" & code & ".T'!更新時刻"
Worksheets("data").Range("D" & j).Value = "=RSS|'" & code & ".T'!現在値"
Next i
End Sub
-----------------------------------------------------------
次回は、データベースに登録する部分に関して記述する予定です。
テーマ:株自動売買ソフト開発 - ジャンル:株式・投資・マネー