MarketSpeed II RSSとは?
楽天証券のMarketSpeed II RSS(リアルタイムスプレッドシート)は、Excelへリアルタイム株価データを配信できる機能です。PythonからはCOMインターフェース経由でアクセスできます。
⚠️ 注意:MarketSpeed II RSSはWindows専用です。MacやLinuxでは動作しません。
前提条件
- 楽天証券の口座(無料開設可能)
- MarketSpeed II のインストールとログイン
- Windows環境(7/8/10/11)
- Python + pywin32ライブラリ
環境セットアップ
pywin32のインストール
pip install pywin32
MarketSpeed II の設定確認
MarketSpeed II を起動し、ツール → RSS設定 でRSSが有効になっていることを確認してください。
Pythonからの基本接続
import win32com.client
import time
# MarketSpeed II RSSへ接続
rss = win32com.client.Dispatch("MarketSpeedII.RSS")
# 接続確認
print(f"接続状態: {rss.IsConnected()}")
株価データの取得
import win32com.client
import pandas as pd
from datetime import datetime
def get_stock_price(ticker_code):
"""
銘柄コードから現在株価を取得する
ticker_code: 例) "7203" (トヨタ自動車)
"""
rss = win32com.client.Dispatch("MarketSpeedII.RSS")
if not rss.IsConnected():
print("MarketSpeed IIに接続できません。起動してください。")
return None
# 銘柄情報の取得
symbol = f"{ticker_code}.T" # 東証の場合
# 現在値
current_price = rss.GetCurrentPrice(symbol)
# 前日終値
prev_close = rss.GetPrevClose(symbol)
# 出来高
volume = rss.GetVolume(symbol)
# 銘柄名
name = rss.GetName(symbol)
return {
"銘柄コード": ticker_code,
"銘柄名": name,
"現在値": current_price,
"前日終値": prev_close,
"出来高": volume,
"更新時刻": datetime.now().strftime("%H:%M:%S")
}
# 使用例
data = get_stock_price("7203")
if data:
for key, val in data.items():
print(f"{key}: {val}")
複数銘柄の一括取得
import win32com.client
import pandas as pd
import time
def get_multiple_stocks(ticker_list, interval=1):
"""
複数銘柄の株価を取得してDataFrameに格納する
ticker_list: 銘柄コードのリスト
interval: 取得間隔(秒)
"""
rss = win32com.client.Dispatch("MarketSpeedII.RSS")
results = []
for ticker in ticker_list:
symbol = f"{ticker}.T"
try:
row = {
"コード": ticker,
"銘柄名": rss.GetName(symbol),
"現在値": rss.GetCurrentPrice(symbol),
"前日比": rss.GetChangeRatio(symbol),
"出来高": rss.GetVolume(symbol),
}
results.append(row)
time.sleep(interval) # API負荷軽減
except Exception as e:
print(f"{ticker} 取得エラー: {e}")
return pd.DataFrame(results)
# 主要銘柄リスト
tickers = ["7203", "9984", "6758", "8306", "4063"]
df = get_multiple_stocks(tickers)
print(df)
リアルタイム監視スクリプト
import win32com.client
import pandas as pd
import time
from datetime import datetime
def monitor_stocks(ticker_list, update_interval=5):
"""
株価をリアルタイムで監視する
update_interval: 更新間隔(秒)
"""
rss = win32com.client.Dispatch("MarketSpeedII.RSS")
print("株価監視開始(Ctrl+Cで停止)")
print("-" * 60)
try:
while True:
print(f"
更新時刻: {datetime.now().strftime('%H:%M:%S')}")
data = []
for ticker in ticker_list:
symbol = f"{ticker}.T"
price = rss.GetCurrentPrice(symbol)
change = rss.GetChange(symbol)
change_rate = rss.GetChangeRatio(symbol)
# 前日比に応じて表示を変える
sign = "▲" if change >= 0 else "▼"
data.append({
"コード": ticker,
"現在値": f"{price:,.0f}円",
"前日比": f"{sign}{abs(change):,.0f}円 ({change_rate:.2f}%)"
})
df = pd.DataFrame(data)
print(df.to_string(index=False))
time.sleep(update_interval)
except KeyboardInterrupt:
print("監視を停止しました")
# 監視する銘柄
watch_list = ["7203", "9984", "6758"]
monitor_stocks(watch_list)
注意事項とよくあるエラー
「pywintypes.com_error」が発生する場合
- MarketSpeed II が起動していることを確認
- 楽天証券にログイン済みであることを確認
- RSS機能が有効になっていることを確認
立会時間外について
東証の立会時間(9:00〜11:30、12:30〜15:30)以外はリアルタイムデータが取得できません。取引時間内に実行してください。
まとめ
MarketSpeed II RSSを使うことで、楽天証券のリアルタイムデータをPythonから直接利用できます。ただしWindows専用であることに注意が必要です。MacやLinuxを使う場合は、yfinanceなどのライブラリを検討しましょう。

