今回やること

第1回では道具と費用の話をしました。今回は2本立てです。

前半は、あの道具たちがどう繋がって毎日動いているのか、図解で全体像を見せます。前回「気軽に読み流してOK」と言ったツールたちの正体が、ここでスッキリするはずです。

後半は、いよいよこの連載の本丸。頭の中のぼんやりした戦略が、AIとの会話でどうやって数字のルールに変わったのか。私の実例をほぼそのまま再現します。


前半:システムの全体図

まず、完成形の1日の流れを1枚にしました。これが「システムトレード」の正体です。

毎日の運用フロー図
毎日の運用フロー図

上のオレンジのゾーンが全自動パート。夕方18時、Windowsに標準で入っている「タスクスケジューラ」という機能(指定した時刻にプログラムを勝手に動かしてくれるだけの、地味で優秀なやつ)が、AIと一緒に作ったPythonプログラムを起こします。プログラムはJ-Quantsから全銘柄の株価データを取ってきて、私が決めた数字の条件で候補を絞り込む。ここまでが定量スクリーニングです。

そのあとが、前回チラッと出てきたGemini APIの出番です。APIというのは、チャット画面を人間が開かなくても、プログラムが直接AIに質問できる仕組みのこと。私のプログラムは、候補に残った銘柄を1社ずつAPIに投げて「この会社、悪材料が出ていないか?」を確認させます。倒産しかけている、増資を発表したばかり、そういう「数字の条件だけでは見えない地雷」をAIが検索して、承認・棄却を判断する。ここが定性チェックの1人目。費用は1銘柄あたり1円ほどです。

結果はDiscordの「自分ひとりの部屋」に自動送信されます。銘柄名、指標の数字、AIの判断理由まで、承認も棄却も全部届く。夕食後にスマホを見ると「今日の候補」が並んでいる、という寸法です。

ここから下の緑のゾーンが、人間の出番。届いた候補をGeminiチャット(APIより上位のモデル)にもう一度見せて2次チェックを取り(2人目)、最後に自分の目で株探を見て最終判断する(3人目)。つまり私のシステムは、AI→別のAI→人間の三重の定性チェックを通った銘柄だけを、翌朝発注します。

「AIを信用してないの?」と思うかもしれません。半分そのとおりです。AIは検索を間違えることも、堂々と嘘をつくこともある。だから複数の目で見る。そして最後の1票は必ず人間が持つ。ここが私のシステムで唯一、絶対に自動化しないと決めている工程です(この設計思想は定性フィルターの回でじっくり話します)。

正直に書くと、この人間パートは楽ではありません。候補のチェック、買付の発注、保有銘柄の売却発注、日々の記録まで含めて、だいたい1日1時間。シグナルが多い日は2時間かかることもあります。私はYouTubeを垂れ流しながら、ご飯を食べながら(行儀が悪い)やっていますが、それでも結構めんどくさい。

それでも完全自動化はしませんでした。めんどくさいのに、です。検討した結果、完全自動化のほうがむしろ非合理的だと判断したからで、この理由は次回以降でじっくり話します。

候補ゼロの日は「該当なし」の通知が来て終わりです。少なくとも、日中に画面へ張り付く時間は1秒もありません。

全体像はこれだけです。「え、思ったよりシンプル」と感じたかもしれません。私も、完成してから全体を1枚の図にしてみて、同じことを思いました。


後半:「わがまま」がルールに変わるまで

さて、ここからが本丸です。図の④で「私が決めた数字の条件」とサラッと書きましたが、あの条件はどこから来たのか。

種明かしをすると、出発点は戦略ですらありません。ただのわがままでした。

最初に投げたのは、ざっくりした質問

3月の崩壊のさなか(第0回参照)、私がAIに最初に投げたのは、こんな雑な質問でした。

「システムトレードを組みたい。よさげな方法をいくつか教えて」

返ってきたのは、どこかで聞いたことがあるような手法のリストです。正直、ピンとこなかった。ただ、これまでの相場経験でひとつだけ確信していたことがあります。手法の優劣より、自分に合った戦略を選ぶことのほうが大事だということ。合わない戦略は、どうせ守れないからです。

そこで私は、手法の話をやめて、自分の希望を並べました。

勝率は高くしたい。1回の利益は少なくていい。あまり長く持ちたくない。毎日少しずつ利益が積み上がっていくと、続けられそう。

読み返すと、ただのわがままです。「甘くて、辛くなくて、熱くなくて、すぐ食べられるもの」と注文しているのと変わらない。

ところが、この保護者(AI)はわがままを翻訳してくれるんです。

「その希望なら、順張りより逆張りが合っているでしょう」

そして提案されたのが——

「ミーン・リバージョン」という立派な名前

ミーン・リバージョン(平均回帰)に基づいた逆張り戦略。

……なんかすごいことをやっている感じがして、この時点で少しテンションが上がりました。単純な人間です。

ミーン・リバージョンとは何なのか、なぜ私のわがままに合うのか、AIは長々と、丁寧に、優しく教えてくれました。要するに「価格は行きすぎると平均に戻ろうとする性質がある。売られすぎた瞬間を拾って、戻ったところで売る。1回の利益は小さいが勝率は高く、保有は短い」——私のわがままと、ほぼ1対1で対応しています。

それと、これは私の場合の話ですが——説明を聞いていると、平均、回帰、ランダムウォーク、と妙に親しみ深い単語が並んでいました。株とはまったく別の場所で、数学として勉強したことのある話たちです。昔やった勉強と、いま目の前の相場が突然つながる感覚があって、これも地味に嬉しかった。過去の蓄積は、どこで効いてくるか分からないものです。

ここで気づいた方もいると思います。これ、私が何年も頭の中で寝かせていた「下げすぎた銘柄のリバウンド狙い」に、学問っぽい名前が付いただけなんです。暗黙知に名前が付いた瞬間でした。

ちなみにこのAI、第0回で私のギャンブルトレードを「運が良いだけです」と一刀両断した、あの同一人物(同一AI?)です。調子に乗っている人間には冷たく、謙虚に学ぶ姿勢には際限なく優しい。塾講師として見習いたい姿勢です。

仮の数字が置かれる

そしてAIは、具体的な条件案を出してきました。最初の細かい数字は正確には覚えていないのですが(すみません、当時のログが残っていませんでした)、だいたいこんな3条件だったはずです。

  • A. 移動平均線からの乖離が◯%以下(平均からどれだけ下に離れたか)
  • B. RSIが30以下(売られすぎの度合いを測る定番の指標)
  • C. 出来高が前日までの平均の1.5倍以上(普段より明らかに商いが膨らんでいる)

Aが「下げすぎ」、Bが「売られすぎ」、Cが「パニックの実在」をそれぞれ数字で言い直したものです。私の「やばいニュースもないのに投げ売られてる銘柄って買いじゃない?」という長年のぼんやりが、3行の数式になった。

大事なのは、AIがこれを「とりあえずこの数字でやってみろ」という仮置きとして出してきたことです。移動平均線にもRSIにも種類があるし、閾値の◯%も暫定値。「過去データで、-25%を-20%にしたり、25日線を15日線にしたり、いろいろ動かして、使い物になるか確かめるといい」——つまり「信じろ」ではなく「確かめろ」と言ってきたわけです。しかも検証用のコードまでその場で出してきて、手取り足取り「さあ、やってみなさい」という構え。放り出される宿題ではなく、隣に家庭教師が座っている感じです。

で、確かめてみたら

その検証作業(バックテスト)のドタバタは、この先まるごと1本使って書きますが、結果だけ先に言うと——

この仮の数字のまま、最終的にまあまあの成績が残りました。

システムトレードの世界では、プロフィットファクター(総利益÷総損失。以下PF)が1.5以上あればとりあえず検討に値する、という温度感があるそうです。最初はもっと派手な数字が出て(その顛末はバックテストの回で)、現実の制約を入れて削りに削って、それでもPF1.5前後が残った。「あれ? こんなもんなの?」と思った記憶があります。

もちろん、これは運が良かった。AIは一般的で堅い手法を提案してくるので、最初からそこそこの数字が出やすいという事情もあります。実際このあと私は「手法作り放題じゃん!」と調子に乗り、そんなに甘くないことを思い知らされるのですが、それはバックテストの回で。

愚者(私)は経験に学び、賢者(AI)は歴史に学ぶ——とはよく言ったものです。AIがいきなり出してきた手法は、その場の思いつきではなく、相場の歴史が長い時間をかけて紡いできた堅い方法だった、というわけです。

実録:崩壊から10日間の取引ログ

このあたりの時系列を、実際の取引履歴で見せます。我ながらドタバタです。

3月・撤退直後の取引ログ
3月・撤退直後の取引ログ
  • 3/4ごろ:絶賛損失中にAIに相談開始。その日のうちにバックテストまでこぎつける
  • 3/5:バックテストの数字を見て「イケる」と判断。システムなんて全然できていないので、シグナルだけとりあえず出して速攻買付(JDSC・4418)。なお同じ日、最後のデイトレもやっている。懲りない。
  • 3/5夕方:JDSCに良いニュースが出る
  • 3/6:ストップ高で決済、+152,000円。「……あれ? こんな感じならデイトレいらんやん」。あっさり切り替え完了
  • 3/10〜13:ログに並んでいる純金・純銀信託の損切りは、デイトレ時代の名残の後始末です。以前シルバーのスイングで儲かって調子に乗って持っていたもの。心機一転システムトレードに専念するぞ、ということで整理しました
  • 3/13:開発を続けながらシグナルを出し、サン電子(6736)で+130,000円。ニュース頼みではない、初めての「まともな」結果

JDSCの一発は完全にビギナーズラック(好ニュース直撃)ですし、全体としてかなり流れに助けられたと言わざるを得ません。ただ、この10日間で私の中の何かが切り替わったのは確かです。感覚で撃つトレードから、数字の根拠がある候補を淡々と処理するトレードへ。

この章のまとめ

言語化のプロセスを、型として抜き出しておきます。

  1. 手法を聞くのではなく、自分の希望(わがまま)を話す。「勝率高め・薄利OK・短期・毎日コツコツ」レベルの雑さでいい
  2. AIがわがままを戦略のタイプに翻訳してくれる(私の場合:逆張り/ミーン・リバージョン)
  3. AIが仮の数字を置いてくれる(乖離◯%・RSI30・出来高1.5倍)
  4. その数字が使い物になるかは、過去データでAIと並走しながら確かめる(検証用のコードもAIが出してくれる。この先の回の内容)

ポイントは、戦略の主導権が一度も手放されていないことです。希望を出したのは私、最終的に採用を決めるのも私。AIがやったのは翻訳と、数字への変換と、検証方法の提示。技術はAIに任せる、戦略は対等に話し合う——第1回で書いた役割分担そのままです。


今回のまとめ

AIチャットに、あなたの「わがまま」をそのまま話してみてください。型はこうです。

株の売買ルールを作りたい。希望は「(勝率は高め or 一発の利益重視)」「(短期 or 長期)」「(毎日コツコツ or たまにドカン)」。この希望に合う戦略のタイプと、検証しやすい仮の条件を教えて。

かっこいい専門用語は要りません。わがままのほうが、いい答えが返ってきます。

次回からは、手を動かすパートに入ります。まずは検証の舞台を整えるところから——開発環境の構築と、株価データの取得です。エラーだらけの実況をお見せしますが、安心してください。あなたが直す必要はありません。


次回・第3回:エラーは出ます。でも、あなたが直す必要はありません——環境構築と、株価データが手元に届くまで


免責事項:本記事は筆者の実体験に基づく情報提供を目的としたものであり、特定の銘柄・手法・サービスへの投資や購入を推奨するものではありません。過去の検証結果は将来の成果を保証しません。投資判断はご自身の責任でお願いします。