AI日本株自動売買の判断ロジックとリスク管理ルールを公開します
- この記事で分かること
- スクリーニング→AI判断→リスクルールエンジン→発注、という4段階の仕組みと、実際に使っているリスク管理の数値をすべて載せています。
- 実際に使った環境
- Python / Groq API(無料枠、モデルopenai/gpt-oss-120b) / kabuステーションAPI(三菱UFJ eスマート証券、2026-09-11から実際に発注)
- 筆者の結論
- AIには「買う/売る/様子見」の判断と理由づけまでしかさせず、実際に発注していいかどうかはAIの判断とは独立したコードが機械的にチェックする構成にしている。
「AI日本株トレード日誌」の各動画・記事で「売買ロジックはサイトで公開中」と案内している、その中身をまとめた記事です。AIがどうやって銘柄を選び、売買を判断し、実際に発注するまでの仕組みを、実装しているコードに沿ってそのまま解説します。
💭 実装してみて思うこと
一番時間をかけたのは「AIにどう判断させるか」ではなく「AIの判断をどう信用しないか」でした。AIの出力は毎回微妙に違うので、判断ロジックそのものより、判断が変でも実害が出ない安全装置側の設計に時間を使うことになりました。
全体の流れ
毎回の判断は、次の4段階で行っています。
- スクリーニング(ルールベース、AIは使わない)
- AIの判断(Groq APIに問い合わせ、買い・売り・様子見と理由を出させる)
- リスクルールエンジン(AIの判断とは独立したコードが発注可否をチェック)
- 発注(承認された分だけ証券会社のAPIに送る)
このうち3のリスクルールエンジンには、AIの判断オブジェクトそのものを一切渡していません。銘柄コード・数量・価格といった正規化された注文情報だけを見て判定するので、AIがどんな理由を並べても、ルールを超える注文は通らない構成になっています。
1. スクリーニング(ルールベース)
数千銘柄を毎回AIに読ませるのはコストも時間もかかるため、まずルールだけで候補を絞り込みます。現在の条件は次の通りです。
| 条件 | 値 |
|---|---|
| 時価総額 | 100億円以上 |
| 直近平均出来高 | 10万株以上(直近20営業日) |
| AIに渡す候補数の上限 | 50銘柄 |
このルール自体はコードとして実装済みですが、2026年9月時点、日次の実運用ではこのスクリーニングを毎回は実行していません。 使っている株価データ(J-Quants無料プラン)が約90日遅延しており、「今日」を基準に絞り込もうとすると直近データが1件も無く、候補が常に0件になってしまうためです。
そこで、あらかじめ「実際に買える銘柄」をウォッチリストとして固定し、日々の判断ではこのウォッチリスト全12銘柄をそのままAIに判断させる方式にしています。ウォッチリスト自体は、上記のスクリーニング条件(時価総額100億円以上・出来高10万株以上)をJ-Quantsの全銘柄データに対して機械的に一括適用し、その中から実際にkabuステーションの現在値で元手30万円・1銘柄上限20%(6万円)以内に収まることを確認できた銘柄を選んでいます(NTT・ソフトバンク・東京電力ホールディングス・日産自動車・三菱自動車・LINEヤフー・住友化学・アコム・パーソルホールディングス・セブン銀行・コニカミノルタ・NTN)。有名な大型株を手当たり次第に確認したところ、この予算で買えたのはNTT・ソフトバンク・東京電力ホールディングスの3銘柄だけだったため、機械的な絞り込みに切り替えた経緯があります。
2. AIの判断(Groq API)
判断そのものはGroq API(無料枠)経由でopenai/gpt-oss-120bというモデルに行わせています。「無料であること」をこのプロジェクトの絶対条件にしているため、有料のAPIは使っていません。
AIには自由な文章ではなく、構造化された形式(action・提案数量・判断理由・確信度など)で出力するよう強制しています。ここで出てきた判断理由(reasoning_text)は、要約したり書き換えたりせず、そのままブログ記事・動画に転記する方針にしています。AIの判断を後から検証できる状態を保つためです。
保有していない銘柄については「買う/様子見」、保有している銘柄については「売る/持ち続ける/様子見」を判断させ、いずれの場合も総資産・現金・投資予算(残りいくらまで投資できるか)をAIに伝えた上で判断させています。
3. リスクルールエンジン
AIが「買いたい」「売りたい」と判断しても、それだけでは発注されません。次の表のルールをすべて満たした注文だけが実行されます。
| ルール | 値 | 状態 |
|---|---|---|
| 1銘柄あたり最大投資額 | 総資産の20% | 稼働中 |
| 同時保有銘柄数 | 最大5銘柄 | 稼働中 |
| 1日の最大損失 | 総資産の3% | 稼働中(超過で当日の新規買いを停止) |
| 最大ドローダウン | 総資産の15% | 稼働中(新規買いを自動停止) |
| 指値と現在値の乖離 | ±10%超で拒否 | 稼働中 |
| 二重注文防止 | 同一注文キーの再送を無視 | 稼働中 |
| 損切りライン | 建値-8% | 未接続(下記参照) |
| 利確目安 | 建値+20% | 未接続(下記参照) |
| 急変時停止 | 日経平均前日比-4% | ルールのみ実装、入力データ未接続 |
損切り・利確は、あえてAIの裁量に任せている
建値からの損切りライン(-8%)・利確目安(+20%)は数値としては定義していますが、2026年9月時点ではこの数値をリスクルールエンジンにもAIへの指示にも渡していません。損切り・利確のタイミングは完全にAIの裁量に任せる方針にしています。これは「30万円という小さな実験で、AIの自律的な判断そのものを検証したい」という目的を優先した結果です。将来、機械的なルールを追加する場合の起点として数値だけ用意してあります。
最大ドローダウンは、人間の承認なしで自動的に止めて・自動的に再開する
総資産がピーク時から15%下落すると、新規の買い注文だけを自動停止します。保有中の銘柄の売却・様子見判断は通常通りAIが続けます。ここで人間が承認するステップは設けておらず、ドローダウンが15%未満に戻れば、次の判断のタイミングから自動的に新規の買いを再開します。境界付近で停止・再開が短期間に繰り返される可能性はありますが、再開後の注文も1銘柄あたりの上限や同時保有数の上限を通常通り通過する必要があるため、実害は限定的だと判断しています。
急変時停止は、ルールはあるが今は機能していない
日経平均が前日比-4%を超えて下落したら新規の買いを止める、というルール自体はコードに実装済みです。ただし、この判定に使う日経平均のデータを取得する仕組みをまだ用意しておらず、現状は常にこのルールがスキップされる状態になっています。今後、日経平均のデータ収集を実装した時点で機能するようになります。
4. 発注
リスクルールエンジンを通過した注文だけを、kabuステーションAPI(三菱UFJ eスマート証券が提供するAPI)経由で発注します。現物取引のみを対象にしており、信用取引は使いません。注文の市場コードにはSOR(スマートオーダールーティング)を指定しています。2026年2月の最良執行方針対応の仕様変更以降、東証固定の市場コードでは新規注文が拒否されるようになっており、さらに2026年5月18日以降はSOR指定の注文のみ手数料が無料になるためです。
2026年9月11日から、実際の注文を送信しています。 それまでは、実際には発注せず「発注したつもりで記録だけ残す」検証運用を数営業日行い、判断内容に大きな問題が無いことを確認してから切り替えました。この検証には、証券会社が別途用意している検証用ポート(発注しても実際には執行されない仕組み)を使う予定でしたが、実機で確認したところ検証用ポートは残高・株価とも常に空のデータしか返さない仕様だったため、代わりに本番ポートへの読み取り専用アクセス(残高・保有証券・現在値の取得のみ、発注は一切行わない)で代用しました。
発注の判断・実行は、東証の立会時間帯(9:00〜11:30・12:30〜15:00)に1時間おき+大引け直前に、常駐プロセスが無人で自動実行しています。1回ごとに人間が承認するステップは設けていません。 判断・リスクチェック・発注結果は毎回Discordに通知され、その日の売買記録は引け後に自動生成される「AI日本株トレード日誌」の各記事で個別に公開しています。
よくある質問
Q. AIがルールを無視して大きな注文を出すことはないんですか? A. ありません。AIの判断は必ずリスクルールエンジンを通過してからでないと発注されない構成にしていて、AIの判断オブジェクト自体がこのチェック処理には渡らない設計にしています。ルールを超える注文は理由つきで機械的に却下され、却下されたことも記録に残します。
Q. 損切りラインは設定していますか? A. 建値から-8%のラインを数値としては定義していますが、2026年9月時点でこの数値は自動売却のロジックには接続しておらず、損切り・利確の判断は完全にAIの裁量に任せています。数値だけ用意してあるので、将来ルールとして組み込む場合はここを起点にする予定です。
Q. このロジックは今後変わることはありますか? A. あります。リスク管理の数値は運用しながら調整する前提で、変更する場合は変更理由をこのブログで公開します。ロジック自体を変更した場合も、この記事を実装に合わせて更新します。
免責事項
この記事は投資助言ではありません。特定の銘柄や取引手法を推奨するものではなく、あくまでAIに実際のお金を運用させる実験の実装内容を記録したものです。売買の判断や結果を、他の方の投資判断の根拠として参照しないようご注意ください。投資は自己責任で行ってください。