今回やること
前回、システムの全体図と「わがままがルールに変わるまで」の話をしました。今回からいよいよ、手を動かすパートに入ります。
まず前回の図をもう一度見てください。
①〜⑨まで工程が並んでいて、初見だと「うわ、多いな」と思うかもしれません。でも、先に種明かしをしておきます。
上半分の自動化パート(①〜⑥)のうち、あなたが頭を悩ませる価値があるのは④の定量スクリーニングだけです。
④は「どんな条件で銘柄を絞り込むか」——つまり、あなたの戦略そのものが入る場所。前回書いた「わがまま→数字のルール」が住む場所です。ここだけは、誰にも任せられません。
じゃあ自動化パートの残りは何かというと、②③⑤⑥はあなたの戦略とは何の関係もない、純粋に技術的な工程です。プログラムを動かす、データを取ってくる、通知を飛ばす。ここに人間が悩む余地はないし、悩んだところで利益は1円も増えません。だから、全部AIに丸投げします。
(下半分の緑ゾーン、⑦⑧の定性チェックは、運用が始まれば毎日それなりに悩む場所です。ただそれは先の話なので、運用の回で。)
今回はその丸投げの実演です。②のプログラムを動かすための環境構築と、③の株価データの取得。ゴールはシンプルで、「日本株の株価データ(数年分)がCSVファイルとして手元にある」状態を作ります。次回のバックテストは、このCSVの上で走ります。
先に言っておくと、今回は完全に作業回です。読むだけでも流れは掴めるように書くので、「やる気が出たら真似する」くらいの気楽さでどうぞ。
環境構築:AIに「ナビして」と言うだけ
最初にやるのは、Pythonのプログラムが動く環境をPCに作ることです。
……と書くと身構える人がいると思うので、実際に私がAIに投げた文章をそのまま載せます。コピペして使ってもらって構いません。
システムトレードに挑戦しようと思っています。 プログラムを書いて自動で銘柄を抽出するようなシステムを作ろうと思います。Pythonをちょっと使ったことがあるので、それでどうにかしたいです。何もかもやり方を忘れたので、まずは開発環境を整えないといけません。ナビゲートしてほしいです。
見てのとおり、専門用語はひとつもありません。「何もかもやり方を忘れた」と正直に白状しているだけです。これで十分です。

余談ですが、SSのAIが妙に優しいのには理由があります。私は普段、Geminiに「共感や忖度を排除しろ」という設定を入れています(第0回のあの塩対応の、背景のひとつです)。今回は初心者ナビをしてもらう場面なので標準設定に戻しました。それでこの温度です。
さて、返ってきたのは3ステップのロードマップでした。
- Python本体のインストール(プログラムを動かすエンジン)
- Visual Studio Code(VS Code)の導入(コードを書く・動かすための高機能なノート)
- 必要なライブラリのインストール(株価データを扱うための拡張パーツ)
ここで、3番目に注目してください。私はこの時点で、データの話をひとこともしていません。「銘柄を自動で抽出したい」としか言っていない。なのにAIは「日本株ならJ-Quants」と、勝手に先回りして調達先の名前を出してきています。
第1回で紹介したJ-Quants、実は私がネットで探し当てたサービスではなく、この瞬間にAIが教えてきたものです。「システムトレードをやる→株価データが要る→日本株ならここ」という段取りが、こちらが言う前から向こうの頭の中にある。丸投げが成立する理由が、この1枚に出ています。
そしてAIは「あなたのPCのOSは何ですか?」と聞いてきます。答えると、ダウンロードするサイトのURLから、インストール画面でどのボタンを押すかまで、一つずつナビゲートしてくれる。迷子になったら「今こういう画面が出てます」と伝えれば、そこから案内し直してくれます。
正直、このパートについて書けることがあまりありません。指示どおりにインストールするだけだからです。カーナビの案内で目的地に着いた話に、ドラマはありません。
終わると、こういう画面が手に入ります。

これがVS Code。今後の作業は基本的にこの画面と、AIのチャット画面の2つを往復するだけです。あとは作業用のフォルダをひとつ、デスクトップにでも作っておいてください(私は「Note連載用」というそのまんまの名前のフォルダでやっています)。
J-QuantsのAPIキーを取る
次に、株価データの調達先であるJ-Quantsの準備をします。第1回で「日本取引所グループ公式の株価データ配信サービス。月1,500円ほど」と紹介したやつです。

課金の話を先にしておくと、今回のテスト規模なら無料プランで大丈夫なはずです。無料プランには「直近のデータは取れない」といった制限がありますが、動作確認のテストには支障ありません。財布を開くのは、本番の数年分を取る段階からで間に合います(私はそこで月1,500円のプランにしました)。
公式サイトでアカウントを作ると、マイページでAPIキーというものが発行できます。

APIキーは、ざっくり言えば「データ倉庫の会員証」です。プログラムがJ-Quantsにデータを取りに行くとき、この文字列を提示して「正規の会員です」と名乗る。画像では塗りつぶしていますが、実物はこういう英数字の長い文字列です。
ひとつだけ注意。この文字列は、パスワードと同じ扱いにしてください。人に見せない、ネットに貼らない。漏れたら再発行すればいいだけなので怖がる必要はありませんが、雑に扱うものでもありません。
ここまでで準備は完了です。ここから、今回のメインイベントに入ります。
データ取得:コピペ往復の実演
さて、いよいよ株価データを取りに行きます。ここでも、私が実際に投げた文章をそのまま載せます。
開発環境は整いました。 J-quontsのAPIキーも取得したので、今のうちにデータを取得したいです。日本市場に上場しているプライムの銘柄すべての過去1か月の株価のデータをとりあえず取得したいと思っています。いずれもっと多くのデータを取得しますが、まずはテストでこの規模を取得します。本番でもcsvで保存するのがいいと思いますのでそれで出力するようなコードをください

ポイントは2つあります。
1つ目は、いきなり本番規模を狙わないこと。最終的に欲しいのは数年分の全銘柄データですが、まずは「プライム市場×1ヶ月」という小さいサイズでテストします。小さく試して、動くことを確認してから広げる。プログラムの世界では鉄則らしいのですが、料理で言う「味見」だと思えば普通の話です。
2つ目は、保存形式(CSV)まで指定していること。CSVは、Excelでも開ける表形式のファイルです。この形で手元に置いておくことが後で効いてくるのですが、それは記事の後半で。
AIからは、手順とコードが返ってきました。

芸が細かいなと思ったのは、AIが「無料プランだと直近のデータが取れない制限がある」のを見越して、エラーにならないよう取得期間を少し昔にずらしたコードを寄越してきたことです。こちらが頼んでもいない配慮が、勝手に入ってくる。
このコードの中身を、私は読んでいません。読めるようになる必要もありません。やることは、コードブロックの右上のコピーボタンを押して、VS Codeに貼り付けて、ファイルとして保存する。それだけです(コード内の「ここにAPIキーを貼ってください」の部分にだけ、さっきの会員証を貼ります)。
ひとつだけ例外があります。お金と秘密に関わる部分です。APIキーは会員証と同じで、人に見せない、ネットに公開しない。慣れてきたら、コードから分離して別ファイルに置く方法をAIに聞いてみるのがおすすめです。それから、コード全体を理解する必要はありませんが、「このコードは何に接続していて、何を売買の判断に使うのか」だけは、AIに説明させて確認しておく。読まなくていい、は、確認しなくていい、ではありません。

貼ったら、実行します。AIが実行方法も教えてくれます。
さあ、動くでしょうか。
動きません(知ってた)
実行した結果がこちらです。

画面下のターミナル(黒い部分)に、赤い文字がドバドバ出ています。エラーです。1行も動いていません。
……で、ここからが今回の記事で一番伝えたいところです。
エラー画面を見ても、読まなくていいです。赤い文字を眺めて意味を考える必要はありません。やることはひとつ。ターミナルの文字を全部コピーして、そのままAIに貼り付ける。コメントすら要りません。私は実際、エラー文だけをベタッと貼って送信しました。

すると、AIがエラーを読解して、原因の説明と解決策を返してきます。

このときのAIの返答が「これはWindowsでPythonを始めた人が100人中99人ぶつかる、超あるあるなエラーです」でした。本当かどうかは知りませんが、初手でつまずいた人間には染みる言い方です。解決策として提示されたコマンドをコピーして、ターミナルに貼って、Enter。
はい、これで1往復です。エラーをコピペで投げる→返ってきた修正をコピペで実行する。この1サイクルが、AIとの開発作業の最小単位です。
そして正直に書きますが、この後もエラーは出ました。修正して実行したら別のエラー。それを貼ったらまた修正案。実行したらまた別のエラー——
都合5往復くらいして、動きました。

ターミナルに「プライム市場の銘柄数: 1559 銘柄」「取得完了!」の文字。作業フォルダを見ると、CSVファイルが生まれています。

開いてみると、こう。

日付、銘柄コード、始値・高値・安値・終値、出来高……プライム市場1,559銘柄×1ヶ月分、約3万行のデータです。ファイルサイズは3.5MBほど。あなたの戦略を検証するための「過去の相場そのもの」が、いま手元のPCに置かれたということです。
嬉しかったので、AIに報告しました。

「めちゃくちゃイケてます!大成功ですね!」と全力で肯定してくれた上で、CSVの中身がシステムトレードに必要な形式を満たしているかまで勝手にチェックしてくれています。調子に乗っている人間には冷たいくせに、コツコツ進む人間にはとことん甘い。第0回から一貫しています。
【コラム】エラーの中身と、勝手に学習する脳
さて、「5往復くらいして動いた」と書きました。じゃあどんなエラーが出たのか。
1つ目がWindowsの設定まわりの「あるある」だったのはさっき書いたとおり。残りは、ライブラリが新しくなっていてAIの知識が少し古かった、とか、たしかそんな感じの何かです。途中、AIが「申し訳ありません、完全に私のミスです!」と謝りながら自分のコードを直す一幕もありました。AIも間違えるという話は前回書きましたが、間違えたときの謝り方は人間より潔いです。
正直に言うと、初めてこの作業をやった4ヶ月前の私は、エラーの中身をひとつも覚えないまま終えました。理解する必要がなかったからです。エラーが出る→貼る→直る。この流れの中に、私の思考は入っていません。昔、ほんの少しだけプログラムをいじった経験から言うと、これは衝撃的なことです。あの頃はエラーが1つ出るたびに、意味を調べて、掲示板を漁って、半日溶けることもザラでした。「AIがなかったらこれは絶対無理だな」と再確認するくらいエラー自体は出るのに、出ても痛くない。
——ここまでなら「AIすごい」で終わる話です。面白いのはここからで。
今回この記事を書くにあたって、私は画面撮影を兼ねて、同じ作業をゼロからやり直しました。すると、出てくるエラーがどれも「あ、これ見たことあるやつだ」なんです。4ヶ月前とほぼ同じ顔ぶれ。作業も、音楽をかけながらやって5曲聴き終わる前に全部終わりました(初回はもう少しかかった気がしますが、それでも1時間は切っていたはずです)。
コピペで右から左へ流していただけで、勉強したつもりは一切ない。それなのに、脳が勝手に2割くらい学習していたらしい。コードは今も書けないままなのに、です。
意識して理解しにいかなくても、回数をこなせば、この「勝手の2割」は溜まっていく。だったら1回を丁寧に噛みしめるより、雑でいいから何倍も回したほうが得なんじゃないか——実は私の作業スタイルはこの考えに寄っていくのですが、その話はバックテストの回でじっくりやります。
いずれにせよ、結論は変わりません。技術はAIに任せる。戦略は対等に話し合う。エラーの解読は完全に「技術」の側で、あなたが頭のコストを払う場所ではありません。安心してください、払わなくても2割は勝手に残ります。
テストが動いたら、本番規模に広げる
味見が済んだので、本番の量を仕込みます。と言っても、やることはほぼ変わりません。AIにこう頼むだけです。
テストはうまくいきました。同じ形式で、本番用のデータを取得したいです。対象は全銘柄、期間は過去4年分でお願いします。同じようにCSVで保存してください。
期間はお好みですが、4年前後をおすすめします(3〜5年なら好みの範囲です)。短すぎると相場の「いろいろな局面」が入らず、検証の信頼性が落ちます。長すぎても、あまりに昔の相場は今と別物なので効果が薄い。このあたりの理屈も、次回やります。
規模の目安を書いておくと、テスト(プライム×1ヶ月)は、トイレに行く暇もなく終わります。本番(全銘柄×4年分)は、3時間ほど見ておいてください。プログラムを走らせたら、あとは放置でいいです。散歩でも行きましょう。
そして、今回いちばん強く言っておきたいコツがこれです。
使う予定のデータは、先に全部CSVにして手元に置いてください。これは絶対です。
実は私は最初、これをやりませんでした。検証のたびに、必要な分だけをJ-Quantsに毎回取りに行くやり方をしていたんです。一見効率的に見えますが、これが地味に悪手でした。検証のたびに待ち時間が発生するし、通信の分だけエラーの種も増える。データを取る工程と、データを使う工程は、切り離すべきでした。
倉庫に毎日買い出しに行くのではなく、最初に冷蔵庫を満杯にしておく。そうすれば、次回以降のバックテストは冷蔵庫を開けるだけで始まります。何十回、何百回と検証を回すことになるので(なります。断言します)、この差は積み重なると巨大です。
今回のまとめ
今回の内容を振り返ります。
- 自動化パート(①〜⑥)のうち、頭を使う価値があるのは④の戦略部分だけ。②③⑤⑥は技術なのでAIに丸投げ
- 環境構築は「ナビゲートして」とAIに言えば、あとは指示どおりインストールするだけ
- エラーは出る。読まずにコピペでAIに投げる。5往復もすれば動く
- まず小さくテスト→動いたら本番規模。データは先に全部CSVで手元に置く
やる気が出た方は、この記事のプロンプトをそのままコピペして、AIに投げてみてください。今日中に、あなたのPCにも「過去の相場そのもの」が届きます。
次回はいよいよ、このCSVの上であなたの戦略を答え合わせする——バックテストの回です。AIに依頼して、コードをもらって、貼って、動かして、結果をグラフにする。私の場合はここで、前回書いた「あれ? こんなもんなの?」のPF1.5が出ます。そして、夢の戦略たちが次々に死んでいく様子もお見せします。
次回・第4回:はじめてのバックテスト——過去データで答え合わせ、PF1.5が出るまで
免責事項:本記事は筆者の実体験に基づく情報提供を目的としたものであり、特定の銘柄・手法・サービスへの投資や購入を推奨するものではありません。記載のサービス内容・仕様は執筆時点のものです。投資判断はご自身の責任でお願いします。