# 日本株式銘柄セミ自動トレードシステムの開発
概要
東証プライム市場上場銘柄(約1900銘柄)を対象に、銘柄選別、新規買注文/決済売注文、保有銘柄の管理をセミオートメーション化した一連のトレーディングシステムを開発しました。本記事では、
- 先行事例の紹介
- 開発のモチベーションと想定効果
- 設計コンセプト
- 実装方法
- 5ヶ月間の運用実績
について説明します。
1. はじめに
自動トレードシステムとは?
株式取引、FX、指数先物、オプション取引では、事前に決めたルールに基づき自動的に取引を行う自動トレードシステムが利用されています。
市販システムには以下のようなものがあります。
市販システムは購入後すぐに利用できますが、仕様の範囲内でしか機能しません。一方、独自開発では自由度が高いものの、開発スキルと時間が必要になります。
私が本システムを開発した理由は、
- 市場分析、銘柄選別、新規買/決済売発注、保有銘柄管理の工数削減
- プロスペクト理論による損失回避心理を排除し、損切りの最適化
を目指したためです。
そのため、Pythonとkabuステーション® APIを利用して独自のトレードシステムを構築しました。
2. 設計コンセプト
本システムの設計コンセプトは以下の2点です。
-
システムの単純化
- 取引対象は「現物株のみ」(空売りなし)
- 上昇基調の銘柄のみを対象に選別
- 新規買/決済売の注文を1日1回に限定
-
リスク低減投資
- 東証プライム市場の低リスク銘柄に投資
- 最大4日間の保有ルールで含み損の拡大を防ぐ
- 新規買注文は前日に目視確認を行い、誤発注を防ぐ
これにより、単純で安定した運用が可能なシステムを実現しました。
3. 実装方法
本システムの処理の流れは、以下の6つのプロシージャーに分割されます。
- procedure1: J-Quants API で銘柄データ取得
- procedure2: 翌営業日新規買銘柄の選別(ユーザー確認)
- procedure3: 損切り・利確ライン、新規買条件の算出
- procedure4: DBに記録
- procedure5: kabuステーション® API への発注指示
- procedure6: 新規買・決済売注文の実行
実行タイミング
- 前日夜: 損切ライン設定、注文条件の記録
- 当日14:50: PC起動(SwitchBot使用)、新規買/決済売注文
また、Windows + Docker(Ubuntu) 環境で動作するよう設計し、
-
kabuステーション® API
(Windows) -
jupyter, Python, MySQL
(DockerのUbuntuコンテナ)
を利用して、柔軟な運用を可能にしました。
4. 運用結果
5ヶ月間の運用結果を検証しました。
-
日経平均騰落率と新規買銘柄の関係
- 相関係数0.42の正相関 → 日経平均が上昇すると新規買銘柄が増加
-
運用利益率
- 日経平均とおおよそ連動
- ただし、以下の期間に特徴的な動き
- 日経平均がレンジ相場(2023/7):本システムは利益を確保(+3.8% → +5.6%)
- 日経平均急落(2023/8):影響を受け運用利益率が減少
- 日経平均下降トレンド(2023/8後半):新規買銘柄が減少し、損失を抑制
5. まとめ
本システムの利点:
- 取引の自動化による工数削減(1日15分以内)
- 損切りをルール化し、心理的要因を排除
- 運用利益率はプラス達成
ただし、以下の課題があります。
-
急激なトレンド転換の影響を受ける
- 対策: 米国CPI, FOMCなどの経済イベント前にポジションを閉じる
-
上昇トレンド時の運用利益率が日経平均を下回る
- 対策: 日経平均VIXが低いときは、ボラティリティが高い銘柄を選別
今後、バックテストを通じてこれらの対策を検証していきます。