※本記事のコードや情報は執筆時点の仕様に基づいています。投資は自己責任であり、必ずデモ環境や少額資金でテストした上で運用してください。
Pythonで株価データの取得やバックテストができるようになり、いよいよ実際の売買に進もうとしている段階ではないでしょうか。
その段階で必ず直面するのが「どの証券会社を使えばよいか」という選択です。
手数料体系はもちろん、API提供の有無やデータ取得の自由度は証券会社ごとに大きく異なります。
「手数料無料」という表面的な情報だけで選ぶと、API非対応で自動売買が組めない、データ取得に制限があるといった落とし穴にはまります。
本記事では、Pythonでシステムトレード(System Trading:プログラムによる自動売買)やデータ分析を行うユーザーの視点で、主要証券会社の手数料・API・データ取得環境を比較します。
選定基準を明確にした上で具体的な数値を提示するので、自分の運用スタイルに合った口座を判断してください。
Python利用者が証券会社を選ぶ際の評価軸
手数料だけで選んではいけない理由
2023年以降、SBI証券と楽天証券が国内株式の売買手数料を実質無料化しました。
「手数料ゼロ」が標準になった今、差がつくのは手数料以外の部分です。
Pythonユーザーにとっての本質的な評価軸は以下の4つです。
* 売買手数料:国内現物・信用、米国株それぞれの体系を確認してください
* API提供の有無と仕様:発注API(Order API)があるか、REST形式かWebSocket形式かが自動売買の可否を決めます
* データ取得の自由度:リアルタイム株価、四本値(OHLCV)、板情報(Order Book)をプログラムから取得できるかが分析の質を左右します
* 取得制限とレートリミット:1日あたり・1秒あたりのリクエスト上限が実運用の制約になります
運用スタイル別の優先順位
すべてのユーザーに最適な証券会社は存在しません。
運用スタイルによって優先すべき評価軸が変わります。
* データ分析専用(売買は手動):データ取得の自由度を最優先にしてください。APIでの発注機能は不要です
* 裁量売買+Python分析:手数料の安さとデータ取得を両立できる口座を選んでください
* 完全自動売買(システムトレード):発注APIの提供が必須条件です。手数料よりもAPI仕様の安定性を重視してください
主要証券会社の手数料比較
国内株式の手数料体系
2024年以降、主要ネット証券の国内株式手数料は大きく変動しました。
各社の現物取引手数料を約定代金100万円以下の条件で比較します。
SBI証券は「ゼロ革命」により、条件達成で国内現物・信用ともに0円です。
条件はインターネットコースの選択と電子交付設定で、ほぼ全員が該当します。
楽天証券も「ゼロコース」で国内現物・信用ともに0円です。
SBI証券と同等の条件で手数料無料を実現しています。
松井証券は1日定額制で、約定代金50万円以下が0円、100万円以下は1,100円(税込)です。
auカブコム証券は1注文制で、約定代金10万円以下が99円(税込)、100万円以下が535円(税込)です。
少額取引中心ならSBI証券か楽天証券の無料プランが圧倒的に有利です。
米国株式の手数料体系
米国株の売買手数料は各社で差が残っています。
SBI証券は約定代金の0.495%(税込)で、上限は22米ドルです。
楽天証券も約定代金の0.495%(税込)で上限22米ドルと、SBI証券と同一水準です。
マネックス証券は約定代金の0.495%(税込)で上限22米ドルですが、買付時の為替手数料が無料というメリットがあります。
さらに為替スプレッド(Spread:売買の価格差)も比較してください。
片道25銭が標準ですが、キャンペーンで一時的に無料になる場合があります。
恒常的なコストとキャンペーン価格を混同してはいけません。
API提供状況とPython連携の実態
発注APIを提供している証券会社
Pythonからプログラム的に発注まで行いたい場合、発注APIの有無が最重要です。
現時点で個人投資家向けに発注APIを公開している主要証券会社は限られています。
auカブコム証券はkabuステーションAPI(REST形式)を提供しており、Python連携の実績が最も豊富です。
リアルタイム株価のWebSocket配信にも対応しています。
SBI証券は直接のAPIは未公開ですが、SBI証券が出資するHyper SBI 2のRSS(リアルタイムスプレッドシート)機能を経由した間接的な連携は可能です。
楽天証券はマーケットスピードIIのRSS機能でExcel連携が可能ですが、Python向けの公式APIは未提供です。
完全自動売買を実現するなら、現時点ではauカブコム証券のkabuステーションAPIが最も現実的な選択肢です。
データ取得専用で使える外部サービス
発注は不要でデータ取得だけが目的なら、証券会社のAPIにこだわる必要はありません。
Pythonライブラリのyfinanceは無料で日米株のOHLCVデータを取得できます。
J-Quants API(JPX総研提供)は東証全銘柄の株価・財務データを提供しており、無料プランでも過去12週間分のデータが利用可能です。
有料プランは月額1,650円(税込)からで、全期間のヒストリカルデータにアクセスできます。
分析用途ではJ-Quants API、売買用途では証券会社APIと使い分けるのが効率的です。
運用スタイル別のおすすめ構成
ここまでの比較を踏まえ、運用スタイル別の推奨構成を整理します。
データ分析メインの場合は、SBI証券または楽天証券(手数料無料で手動売買)+J-Quants APIまたはyfinance(データ取得)の組み合わせが最もコストパフォーマンスに優れます。
裁量売買+分析の場合は、SBI証券(手数料無料+Hyper SBI 2のツール充実)+J-Quants API(分析データ)が現実的です。
完全自動売買の場合は、auカブコム証券(kabuステーションAPIで発注)+SBI証券(メイン資産管理・手動売買用)の2口座体制を推奨します。
複数口座の開設・維持は無料なので、用途別に使い分けることにデメリットはありません。
迷ったらまずSBI証券と楽天証券の両方を開設し、データ取得にはJ-Quants APIを導入してください。
よくあるエラーと対処法
「API利用申請が通らない・有効化されない」
auカブコム証券のkabuステーションAPIは、kabuステーション(PC版取引ツール)の起動が前提条件です。
口座開設だけではAPIは使えません。
以下を試してください。
* kabuステーションをインストールし、最低1回は起動・ログインしてください
* API利用規約への同意がウェブサイト上で別途必要です。マイページの設定画面を確認してください
* APIパスワードと取引パスワードは別物です。混同するとログイン認証でエラーになります
「手数料無料のはずなのに手数料が引かれている」
SBI証券のゼロ革命や楽天証券のゼロコースには、適用条件があります。
条件を満たしていないと通常手数料が課金されます。
以下を試してください。
* SBI証券の場合、「インターネットコース」かつ「各種報告書の電子交付設定」が完了しているか確認してください
* 楽天証券の場合、手数料コースが「ゼロコース」に変更されているかマイページで確認してください。デフォルトでは別コースが設定されている場合があります
* コース変更は翌営業日から適用されるケースが多いです。変更直後の取引には旧コースの手数料が適用されます
「yfinanceでデータが取得できなくなった」
yfinanceはYahoo Finance(米国)のWebサイトからデータをスクレイピングしています。
公式APIではないため、Yahoo側の仕様変更で突然動作しなくなるリスクがあります。
以下を試してください。
* pip install --upgrade yfinanceでライブラリを最新版に更新してください。仕様変更への対応パッチが頻繁にリリースされています
* 日本株のティッカーは末尾に.Tが必要です(例:7203.T)。付け忘れると空のDataFrameが返ります
* 恒久的な代替手段として、J-Quants APIへの移行を検討してください。公式サービスのため、突然の仕様変更リスクが低いです
まとめ
この記事では、Pythonでの自動売買・データ分析に最適な証券会社を、手数料・API・データ取得の3軸で比較しました。
要点を整理します。
* 国内株式の売買手数料はSBI証券・楽天証券が条件付きで0円であり、コスト面ではほぼ差がありません
* 発注APIを個人向けに提供しているのはauカブコム証券のkabuステーションAPIが代表的です
* データ取得専用なら証券口座APIよりもJ-Quants APIやyfinanceの方が導入コストが低いです
* 運用スタイルに応じて複数口座を使い分けるのが最適解で、口座維持費は無料です
* 「手数料無料」の適用条件と、外部ライブラリの仕様変更リスクには常に注意を払ってください
次のステップとして、まずSBI証券または楽天証券で手数料無料コースを有効化し、並行してJ-Quants APIの無料プランに登録してください。データ取得環境が整った段階で、自動売買が必要になればauカブコム証券のAPI口座を追加する流れが最もスムーズです。
