感情を殺して利益を残す!Pythonで「自分専用AI」投資ツールを自作する方法

  • URLをコピーしました!

投資で一番難しいのは、実はチャートを読むことではありません。自分の「心」を制御することです。

株価が下がれば「また上がるはず」と損切りをためらい、上がれば「もっと上がるかも」と利確を逃す。こうした人間特有の感情が、本来残せるはずの利益を削ってしまいます。

この問題を解決するのが、Pythonを使った「自分専用AI」の自作です。

あらかじめ決めたルールに基づいて機械的に判断を下すツールがあれば、感情に振り回されることなく、データに基づいた投資が可能になります。プログラミングの知識がゼロでも、ブラウザだけで動かせる環境から丁寧に解説していきます。

目次

なぜ投資の判断を「自作AI」に任せるべきなのか?

どれだけ投資の本を読み込んでも、いざ自分のお金が動くと冷静ではいられなくなります。

人間には損を避けたいという強い本能があるため、理屈ではわかっていても行動が伴わないことが多々あります。AIはそんな私たちの「心の弱さ」を補うための、最強のパートナーになってくれます。

この章では、人間が投資で陥りやすい罠と、それをAIがどのようにカバーしてくれるのか、その圧倒的なメリットについて深掘りします。

人間の脳は「損切り」を拒むようにできている

投資の世界には「プロスペクト理論」という、人間が利益よりも損失を重く受け止めてしまう性質があります。

例えば、1万円儲けた時の喜びよりも、1万円損した時の痛みの方が2倍近く強く感じると言われています。この痛みを避けようとするあまり、損切りを先延ばしにして、結果として大きな損失を抱えてしまうのです。

AIにはこうした痛みを感じる心がありません。

あらかじめ「5%下がったら売る」と教えておけば、その瞬間に淡々と処理を実行します。

以下のリストは、感情が投資に与える悪影響の典型的なパターンをまとめたものです。

  • 損失が出ている時に「お祈り投資」をしてしまう
  • 急騰している銘柄を怖くなってすぐに売ってしまう
  • 一度負けると、それを取り返そうとして無理な勝負に出る
  • 相場の急変時にパニックになり、正常な判断ができなくなる

こうした失敗を繰り返さないためには、自分自身の意志に頼るのではなく、システムとして売買の出口を固めておくことが重要です。

AIなら数千銘柄のデータを一瞬で処理できる

人間の目で見られるチャートの数には限界があります。

どんなに張り付いていても、せいぜい数十銘柄が関の山でしょう。しかし、Pythonを使ったAIなら、市場にある全銘柄の動きを同時に監視し、チャンスが来た瞬間に通知を出すことができます。

例えば、市場全体が冷え込んでいる中で、ひっそりと買いのサインが出ている中小型株を見つけ出すのは至難の業です。

AIなら、過去数年分の膨大なデータを数秒で計算し、今の状況が「買い」なのか「待ち」なのかを瞬時に導き出してくれます。

自分のロジックを数値で客観的に検証するため

「この手法は儲かりそうだ」という直感は、往々にして間違っています。

自作AIを作る過程では、自分の考えをすべて数式に落とし込む必要があります。これにより、自分の投資手法が「過去の相場で本当に通用したのか」を数字で客観的に突きつけることができます。

自作AIと既存の分析ツールの違いを表にまとめました。

項目一般的な分析ツール自作AIツール
自由度決められた指標しか使えない自分のアイデアを無限に形にできる
コスト月額数千円〜数万円かかることもAPIの無料枠内なら0円で運用可能
検証の深さ表面的な過去データしか見られない数千回のシミュレーションで弱点を探れる
通知機能制限がある場合が多いLINEやSlackへ自由に飛ばせる

既存のツールに自分の判断を合わせるのではなく、自分の頭脳を拡張する道具としてAIを構築することにこそ意味があります。

準備は5分!ブラウザだけで開発環境を構築する

プログラミングを始める際、自分のパソコンに複雑な設定を行う必要はありません。

Googleが提供している無料のサービスを使えば、ネットに繋がったブラウザさえあれば、すぐにでもAI開発をスタートできます。

この章では、初心者でも迷わずにAI構築のスタートラインに立つための、具体的な手順を解説します。

Google Colabを使えば面倒な設定はいらない

Google Colab(グーグル・コラボ)は、ブラウザ上でPythonのコードを書いて実行できる無料のツールです。

自分のPCの性能が低くても、Googleの強力なサーバーが代わりに計算してくれるため、AIの学習のような重い処理もサクサク進みます。

使い始める手順はこれだけです。

  1. Googleアカウントにログインする。
  2. Google Colabの公式サイトにアクセスする。
  3. 「ノートブックを新規作成」をクリックする。

これだけで、プロのエンジニアと同じ環境があなたの手元に整います。

作成したファイルはGoogleドライブに自動保存されるため、会社やカフェなど、どこからでも分析の続きを行えます。

投資ツールに必要な4つのライブラリを導入する

Pythonには、特定の作業を楽にしてくれる「ライブラリ」という便利なパーツがたくさんあります。

投資AIを作る上で欠かせないライブラリは以下の4つです。これらを導入するだけで、データの取得からAIの学習までが驚くほど簡単に終わります。

  • yfinance:株価データを無料で取り寄せる
  • pandas:取得したデータを表形式で整理する
  • scikit-learn:AIの学習アルゴリズムを呼び出す
  • matplotlib:分析結果をグラフにして見える化する

これらをインストールするには、Google Colabの入力欄に以下の命令を貼り付けて実行してください。

!pip install yfinance scikit-learn pandas matplotlib

一行のコードで、あなたのパソコンが世界中の金融市場にアクセスできる「分析マシン」に変わります。

APIキーを安全に扱うための設定を行う

本格的に運用を始めると、LINE通知用のトークンや証券会社の接続キーなど、大切な「秘密の鍵」を扱うことになります。

これらをコードの中に直接書き込んでしまうと、うっかりSNSなどに公開した際に悪用される危険があります。

Colabの「シークレット(鍵アイコン)」という機能を使って、キーを隠して保存しましょう。

一度設定してしまえば、コード上には「名前」だけを書けば済むようになり、セキュリティと利便性を両立できます。

AIの材料になる「株価データ」を自動で集める

AIにとってデータは「ガソリン」のようなものです。

良質なデータを大量に読み込ませることで、初めて精度の高い予測が可能になります。ここでは、世界中の株価データを一瞬で取得し、AIが処理しやすい形に整える方法を学びます。

yfinanceで世界中の市場データを取得する

「yfinance」を使えば、日本株、米国株、為替レート、さらにはビットコインまで、あらゆるデータを無料で取得できます。

かつては数万円払って購入していたような質の高いデータが、今ではたった数行のコードで手に入ります。

例えば、Appleの過去5年分のデータを取得するコードは以下の通りです。

import yfinance as yf
apple_data = yf.download("AAPL", period="5y")
print(apple_data.head())

これだけで、日付ごとの始値や終値がズラリと表示されます。

日本株の場合は、銘柄コードの後に「.T」を付けて(例:7203.T)実行するだけです。

取得したデータをpandasで整理して扱いやすくする

取得したばかりのデータは少し「荒い」状態です。

「pandas」というライブラリを使って、AIが学習しやすいように表形式を整えていきます。土日の休場日や、データの抜け漏れをチェックして掃除することが、予測の精度を高めるコツです。

データを整理する際のポイントをリストにまとめました。

  • 日付を基準にしてデータを並べ替える
  • 「始値」や「終値」など、必要な項目だけに絞り込む
  • 欠損しているデータ(Nan)があれば、前日の値で埋める

この「データの掃除」を丁寧に行うかどうかで、最終的なAIの勝率が大きく変わってきます。

為替や金利などの「外部要因」も取り込む

株価は、その会社だけの理由で動くわけではありません。

特に日本株の場合、ドル円の為替レートや米国の金利の動きに強く影響されます。AIの精度を上げるためには、株価だけでなく、こうした外部要因も一緒に学習させることが有効です。

「ドル円が円安に振れた翌日は、この銘柄が上がりやすい」といった人間が経験則で感じていることを、AIにデータとして教え込みます。

複数のデータを組み合わせることで、単一のチャートだけでは見えなかった「相場の裏側」をAIが捉え始めます。

AIが相場を読むための「ヒント」を計算して作る

生の株価データだけをAIに見せても、なかなか良い予測はできません。

「移動平均線より上にいるか?」や「売られすぎていないか?」といった、人間が判断に使う「ヒント」を計算して付け加える必要があります。これを専門用語で「特徴量エンジニアリング」と呼びます。

この章では、AIに教えるべき代表的な指標の作りかたを紹介します。

移動平均線などのトレンド指標を算出する

移動平均線は、相場の大きな流れを掴むための基本です。

5日線や25日線といった期間の平均値を計算し、今の株価がその線より上にいるかどうかをAIに教えます。

  • 短期線が長期線を突き抜けたら上昇のサイン
  • 線が上向きなら強いトレンドが発生している

こうしたルールをAIが自ら見つけ出せるように、過去の平均値を一つひとつ算出してデータに追加していきます。

RSIを使って相場の「過熱感」を数値化する

「上がりすぎ」「下がりすぎ」を数値で表すのがRSIです。

人間は「これだけ上がったからそろそろ下がるだろう」と勘で判断しがちですが、AIにはRSIの数値をそのまま渡します。

例えば、RSIが80を超えている時は「過熱気味」、20を下回っている時は「売られすぎ」といった指標をヒントとして持たせます。

これにより、AIは「トレンド」と「過熱感」の両面から、よりバランスの取れた判断ができるようになります。

機械学習が理解しやすいようにデータを整える

AIにデータを渡す前の最後の仕上げとして、数字の「スケール」を揃える必要があります。

例えば、株価が10,000円でRSIが70という数字をそのまま比べると、AIは「大きい数字である10,000の方が重要だ」と勘違いしてしまいます。

これを防ぐために、すべての数字を0から1の間に収めるなどの「標準化」という作業を行います。

人間で例えるなら、単位の違う「身長」と「体重」を、同じ基準の点数に変換して比べるようなものです。この工程を挟むことで、AIはすべての指標を公平に評価できるようになります。

以下の表に、AIに与える代表的な指標とその意味をまとめました。

指標名意味することAIへの教えかた
移動平均線乖離率平均からどれだけ離れたか価格 ÷ 平均値 で算出
RSI買われすぎ・売られすぎ0〜100の数値として渡す
ボリンジャーバンド価格が収まる確率の範囲バンドの幅や位置を数値化
前日比勢いの強さ変化率(%)として計算

自分専用の予測モデルを実際に学習させてみる

いよいよ、集めたデータをAIに読み込ませて「学習」をさせます。

難しく聞こえるかもしれませんが、Pythonのライブラリを使えば、わずか数行のコードで「明日の株価が上がるか下がるか」を予測するモデルが完成します。

AIに「翌日の騰落」を予測させる仕組み

今回は、価格をピタリと当てる「回帰」ではなく、上がるか下がるかの二択を当てる「分類」という手法を使います。

「今日のこの指標の状態なら、明日は60%の確率で上がる」といった、確率に基づいた判断をAIに行わせるのが目的です。

価格を当てるよりも、上がるか下がるかの方向性を当てる方が、実際の投資判断(買うか売るか)には使いやすいためです。

過去のデータを使ってAIを訓練するコード

AIの学習は、過去のデータを「問題集」と「解答」に分けて行うイメージです。

2015年から2023年までのデータを問題集として渡し、AIに何度も解かせます。

from sklearn.ensemble import RandomForestClassifier

# AIモデル(ランダムフォレスト)を作成
model = RandomForestClassifier()

# 過去のデータ(X)と結果(y)を学習させる
model.fit(X_train, y_train)

この「RandomForest」という手法は、たくさんの「もし〜なら」という判断の枝分かれを組み合わせて、最終的な答えを出す非常に強力なアルゴリズムです。

初心者でも扱いやすく、かつ高い精度が出やすいことで知られています。

作成したモデルの「正解率」を判定する

学習が終わったら、AIがまだ見ていない「2024年以降のデータ」を使ってテストを行います。

過去の相場でどれくらい正解できたかを確認し、そのAIが本番で使えるレベルにあるかを判断します。

「正解率が50%を超えていればいい」と思われがちですが、実際には手数料やスリッページを考慮すると、55%〜60%程度の正解率が求められます。

もし正解率が低すぎる場合は、AIに与える「ヒント」を増やしたり、学習させる期間を変えたりして微調整を繰り返します。

作成したAIが「本当に稼げるか」を過去に遡って検証する

正解率が高いからといって、必ずしも儲かるとは限りません。

「勝率は高いけれど、一度の負けが大きすぎる」というパターンもあるからです。実際にAIの予測に従って売買をシミュレーションする「バックテスト」を行い、資産の増えかたを確かめます。

予測結果に従って売買した時の損益を計算する

AIが「上がる」と予測した時に買い、翌日に決済する。

この単純なルールを過去数年分繰り返した時の累積利益を計算します。

「もし2020年からこのAIを使っていたら、今頃資産はいくらになっていたか?」という答えを出す作業です。

単なる机上の空論ではなく、具体的な金額として結果を見ることで、自分のロジックに対する信頼感が生まれます。

最大でどのくらい資産が減ったかを確認する

投資において、資産が増える喜び以上に大切なのが「どれだけ減る時期があるか」を知ることです。

これを「最大ドローダウン」と呼びます。

例えば、最終的に資産が2倍になったとしても、途中で半分に減る時期があるAIを使い続けるのは、精神的に非常に過酷です。

自分の心が耐えられる範囲のドローダウンに収まっているか、慎重にチェックしましょう。

収益グラフを描写して視覚的に把握する

数字のリストを見るよりも、グラフにした方が直感的に理解しやすくなります。

右肩上がりの綺麗な曲線を描いているか、それとも特定の時期だけ大きく負けているかを確認します。

もし特定の時期(例:暴落時)に大きく負けているなら、その時期の相場環境を分析し、「暴落時は取引しない」という追加ルールをAIに教え込むヒントになります。

グラフを眺めることで、AIの「性格」や「得意不得意」が見えてくるようになります。

予測結果を信じて「感情を殺した取引」を続けるコツ

せっかく高性能なAIを作っても、最後に出す注文で「やっぱり怖いから買うのをやめよう」と自分の意志が入ってしまっては意味がありません。

AIの判断を「淡々と実行する」ための仕組み作りを紹介します。

予測が出た瞬間にLINEやSlackへ通知を飛ばす

チャートを毎日チェックしていると、どうしても余計な感情が入ってしまいます。

「AIが買いと判断した時だけ、スマホにメッセージが届く」という仕組みを作り、それ以外の時間は相場のことを忘れるのが、メンタルを保つコツです。

「LINE Notify」などの無料サービスを使えば、Pythonから簡単にメッセージを送れます。

ポケットの中で通知が鳴った時だけ、機械的に証券アプリを開いて注文を出す。これだけで、投資に伴うストレスを大幅に軽減できます。

AIの判断と自分の直感がズレた時の対処法

「AIは買えと言っているけれど、自分はどう見ても下がる気がする」。

こんな場面が必ずやってきます。この時、自分の直感を優先してしまうと、結局は元の「感情に振り回される投資」に逆戻りしてしまいます。

基本的には、AIの判断を100%信じるか、あるいは信じられないならその日は取引を休むのが正解です。

中途半端に自分の意志を混ぜるのが一番危険です。AIの予測が外れたとしても、それは「データの不足」や「手法の限界」として冷静に分析の材料にしましょう。

運用資金の何割をAIに預けるべきか?

自作AIを使い始めたばかりの頃は、資産のすべてを預けるのは避けましょう。

まずは「失っても生活に困らない少額」からスタートし、数ヶ月の実績を見てから徐々に資金を増やしていくのが賢明です。

「理論上は勝てる」はずでも、本番の相場では予期せぬトラブルが起きることがあります。

まずは1株単位の少額投資や、あるいは実際にお金を動かさない「デモトレード」で、AIの動きをじっくり観察する期間を設けてください。

自作AIを「勝てるモデル」に進化させる3つの対策

AIは一度作れば終わりではありません。

相場は常に変化しているため、昨日までの「必勝パターン」が明日から通用しなくなることもあります。AIを常に最新の状態に保ち、磨き続けるための対策をお伝えします。

過去のデータに合わせすぎる「過学習」を防ぐ

AI自作において最大の敵が「過学習」です。

過去のデータにだけ100%正解するように調整しすぎた結果、未知のデータ(未来の相場)では全く使い物にならなくなる現象を指します。

これを防ぐためには、モデルをあえて「単純」に保つことが有効です。

あまりに多くの指標を詰め込みすぎず、王道の指標をいくつか組み合わせる程度のシンプルな作りを目指しましょう。シンプルであればあるほど、変化の激しい相場でも柔軟に対応できるようになります。

新しい指標を組み合わせて予測の精度を上げる

基本のモデルが動くようになったら、自分なりの「独自の指標」を追加してみましょう。

例えば、「SNSでの特定の銘柄のつぶやき数」や「業界団体の統計データ」など、既存のツールでは扱えないデータをAIに学習させるのが醍醐味です。

他人と同じ指標だけを見ていては、平均以上の利益を出すのは困難です。

「自分だけが注目しているデータ」をAIに組み込むことで、市場の裏をかく独自の予測モデルへと進化していきます。

定期的に再学習させて今の相場に適合させる

相場の性質は、数年単位で大きく変わります。

数年前のデータだけで学習したAIは、今の「インフレ局面」や「高金利時代」の動きを理解できていないかもしれません。

数ヶ月に一度は、直近のデータを追加してAIに教え直す(再学習させる)ことが重要です。

「今の相場の空気感」を常にAIに吸わせ続けることで、時代の変化に取り残されない「賢い投資ツール」へと育っていきます。

まとめ:AIを「育てる」投資の新しい楽しみかた

Pythonで自作するAI投資ツールは、単なる利益を出すための道具ではありません。

自分の投資哲学をコードとして形にし、それを市場という過酷な現場で試していく「知的でエキサイティングな趣味」でもあります。感情に左右されず、データという確かな根拠に基づいて投資ができるようになれば、相場の上下に一喜一憂していた頃とは違う、新しい景色が見えてくるはずです。

まずはGoogle Colabを開き、一行のコードを動かすところから始めてみてください。

その小さな一歩が、感情に支配されたトレードを卒業し、自由で合理的な投資家へと変わる大きな転換点になります。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次