株価の歩み値をリアルタイムで保存するスクリプト

スポンサーリンク

楽天証券のマーケットスピード2にログインして、エクセルの設定を済ませておきます。エクセルに株価を表示するためには、マーケットスピード2のRSSのアドインの登録を済ませておいてください。
簡単のため、シート1のA1に歩み値を300本取得する関数を入力します。

例
=RssTickList($A$2:$C$2, "9984.T", 300)

便宜上、シート2を作成して、シート1のデータをシート2に参照するようにします。イコールでシート1とシート2の内容を同じにしただけです。シート1のRSS関数は省くので、シート1とシート2は1行ずれます。これに深い意味はありません。

ここまでのことを名前を付けて保存します。ただし、後でVBAを記述するので、マクロ有効ブック形式(.xlsm)で保存します。
保存するフォルダは、Cドライブ直下のayumiというフォルダ名とします。スクリプトもここに配置しておきます。

保存場所を変更する場合は、スクリプトを修正しておきます。

コマンドプロンプトかPowerShellを開いて、目的のフォルダに切り替えます。

cd\
cd ayumi

pythonスクリプトで、以下のような記述があると思います。ライブラリが不足していて、インストールしていないとエラーになります。インストールしておきます。

import datetime
import pandas as pd
import pickle
import os
import time

ライブラリのインストール例:

pip install openpyxl

スクリプトを実行します。

python ayumi.py

最初の実行時は、エクセルブックを最後に上書き保存した時の歩み値の状態を、別のエクセルブックに保存します。もう一度、上書き保存をすると、続きを先のエクセルブックの別シートに保存します。この時、一時ファイルが作成され、これを元に比較して、続きを保存します。一時ファイルを削除して上書き保存すると、比較対象がないので300行分保存します。新しいエクセルブックは自動で作成されます。スクリプトを停止するときは「Ctrl+C」です。

スクリプトを再度実行して、取り込み元のエクセルブックを上書き保存すると、先とは別のエクセルブックを新たに作成し、シートに保存します。上書き保存時にデータが更新されていれば、シートを作成するので、シートが500を超えた場合は、新たにエクセルブックを作成し、続きを保存します。歩み値は同じ時間に、同じ出来高、同じ値段になり、全く同じ行がエクセル内に存在するときがあります。この問題も回避して、全く同じデータでも別データとして保存します。

次はVBAを記述して、一定間隔で上書き保存するようにします。これにより、自動で歩み値を保存します。VBAを記述する場所は「VBAエディタ」内の「ThisWorkbook」モジュールです。このモジュールは、特定のワークブックに関連するコードを格納するために使用されます。また、各シートに関連するコードは、それぞれのシートオブジェクトに関連付けられた個別のモジュールに配置することもできます(例えば、「Sheet1」、「Sheet2」など)。

「ThisWorkbook」モジュールは、特定のワークブック全体に適用されるコード、例えばワークブックが開かれたときに実行されるマクロなどを格納するのに適した場所です。

最後に、複数作成されたエクセルブックを1つにまとめ、それぞれのブックの複数のシートもまとめるスクリプトを実行します。歩み値が1つのエクセルブックの1つのシートに集約することができます。

python ketugo.py

エクセル結合スクリプト説明

このPythonスクリプトは、特定の名前パターン(’ayumi_copy_*.xlsx’)に一致する複数のExcelファイルを読み取り、それらの全てのシートを1つの新しいExcelファイルに結合します。以下の手順で動作します:

  1. グロブパターン ‘ayumi_copy_*.xlsx’ に一致するファイル名のリストを取得し、ファイル名に含まれる数値部分でソートします。
  2. 新しいExcelワークブックを作成し、その中に “Combined” という名前のシートを作成します。
  3. 各ファイルから全てのシートを読み取り、それらを1つのデータフレームに結合します(各シートの最初の行をスキップします)。
  4. 結合したデータフレームを新しいワークブックの “Combined” シートに書き込みます。
  5. 新しいワークブックを ‘combined.xlsx’ という名前で保存します。

このスクリプトは、大量のデータを効率的に1つのファイルにまとめるために利用できます。

歩み値取得スクリプトダウンロード

タイトルとURLをコピーしました