個人投資家が継続的に成績を改善するうえで、最も大きな差が出るのは「良い銘柄を一発で当てる能力」ではありません。実際には、同じ条件で相場を観察し、同じ基準で銘柄を比較し、売買後に検証できる状態を作れるかどうかです。そこで有効になるのがPythonによる株価データの自動分析です。
株価分析というと、難しい数式や機関投資家向けの高度なシステムを想像しがちですが、個人投資家が最初に作るべきものはもっと実践的です。たとえば、毎日決まった時間に株価データを取得し、移動平均線、出来高変化率、年初来高値との距離、直近高値更新、下落率、ボラティリティ、売買代金などを自動で計算し、条件に合う銘柄だけを一覧化する仕組みです。これだけでも、感覚的な銘柄探しから抜け出し、再現性のある投資判断に近づけます。
本記事では、Pythonを使って株価データを自動分析する流れを、初心者でも実装イメージを持てるように初歩から整理します。単なるプログラミング解説ではなく、投資判断にどう使うか、どこで間違えやすいか、どのように自分の売買ルールへ落とし込むかまで具体的に解説します。
- Python株価分析の目的は「予想」ではなく「判断の標準化」
- まず作るべき全体フロー
- 分析環境の準備
- 株価データの基本構造を理解する
- 最初に作るべきスクリーニング条件
- 実装イメージ:米国株ETFで分析の型を作る
- コードを書く前に決めるべき分析ルール
- pandasで計算する代表的な指標
- 自動分析で見るべき「価格」より重要なもの
- 実践例:急騰後に崩れない銘柄を探す
- バックテストで最低限確認すべき項目
- 過去検証でありがちな落とし穴
- 売買代金フィルターを入れる理由
- ランキング化すると銘柄選定が安定する
- チャート画像を自動保存するメリット
- 実運用で使える日次ルーティン
- 売買記録とPython分析を連携させる
- 通知機能を付けると分析が継続しやすい
- AIや機械学習を使う前にやるべきこと
- 個人投資家向けの実践的な分析テンプレート
- リスク管理をコードに組み込む
- 分析結果を鵜呑みにしないためのチェックリスト
- Python分析を継続するための設計思想
- 実践ロードマップ:最初の30日で作るべきもの
- まとめ
Python株価分析の目的は「予想」ではなく「判断の標準化」
最初に明確にしておくべきことがあります。Pythonで株価データを分析しても、未来の株価を確実に予言できるわけではありません。ここを勘違いすると、チャート指標を過信したり、過去データに過剰適合した売買ルールを作ったりして、実運用で失敗しやすくなります。
Python分析の本質は、相場判断を標準化することです。人間はその日の感情、SNSで見た情報、直近の損益、相場全体の雰囲気に強く影響されます。前日は「押し目」と判断した下落を、翌日は「暴落の始まり」と感じてしまうこともあります。こうしたブレを減らすために、定量的な条件で市場を見る仕組みを作ります。
たとえば、次のような問いを毎日自動で確認できれば、相場の見方はかなり安定します。
- 直近20営業日の高値を更新している銘柄は何か
- 出来高が過去20日平均の3倍以上に増えた銘柄は何か
- 株価が25日移動平均線より上にあり、かつ移動平均線自体も上向きの銘柄は何か
- 地合いが悪い中でも下げ幅が小さい銘柄は何か
- 急騰後に5日線を割らずに横ばいを維持している銘柄は何か
これらはすべてPythonで自動化できます。重要なのは、分析対象を「何となく強そうな銘柄」ではなく、「条件に合致した銘柄」に変えることです。これにより、売買の検証が可能になります。
まず作るべき全体フロー
Pythonで株価データを自動分析する場合、いきなり高度なAI予測モデルを作る必要はありません。最初に作るべき基本フローは、以下の5段階です。
- 株価データを取得する
- データを整形する
- 指標を計算する
- 条件に合う銘柄を抽出する
- 結果をCSVやExcelに出力して確認する
この流れが安定すれば、次にバックテスト、資金管理、売買記録との連携、チャート画像の自動保存、通知機能などへ拡張できます。逆に、最初から複雑な機械学習や予測モデルに飛びつくと、何が効いていて何が効いていないのか分からなくなります。
個人投資家にとって最も費用対効果が高いのは、まず「毎日同じ条件で候補銘柄を抽出するスクリーナー」を作ることです。これは裁量投資にも、システムトレードにも応用できます。
分析環境の準備
Pythonで株価分析を始めるには、最低限の環境としてPython本体、コードを書くエディタ、データ分析用ライブラリが必要です。初心者の場合は、Anacondaを使う方法と、通常のPythonに必要なライブラリを追加する方法があります。どちらでも構いませんが、投資分析ではpandas、numpy、matplotlib、yfinanceなどを使うことが多くなります。
代表的なライブラリの役割は次のとおりです。
- pandas:株価データを表形式で扱う
- numpy:数値計算を効率化する
- matplotlib:チャートを描画する
- yfinance:米国株やETFなどの価格データ取得に使いやすい
- datetime:日付処理に使う
日本株のデータについては、無料で使える範囲に制限がある場合があります。証券会社のCSV、取引所公開データ、有料データベンダー、または自分で保存した日足データを使う選択肢があります。米国株やETFで検証するなら、まずはyfinanceで練習するのが現実的です。
環境構築で大切なのは、最初から完璧なデータベースを作ろうとしないことです。まずは数銘柄で動くコードを作り、次に100銘柄、500銘柄、全銘柄へ広げていく方が失敗しにくくなります。
株価データの基本構造を理解する
株価データの基本は、日付、始値、高値、安値、終値、出来高です。英語表記ではOpen、High、Low、Close、Volumeと呼ばれます。これに調整後終値が加わることもあります。調整後終値は、株式分割や配当などの影響を調整した価格です。長期検証では調整後終値を使うことが多くなります。
初心者がよく間違えるのは、単純な終値だけを見て過去検証をしてしまうことです。株式分割があった銘柄では、過去の価格が大きく変わったように見えてしまうため、検証結果が歪む可能性があります。短期売買の検証では通常のOHLCを使う場面もありますが、長期リターンの比較では調整後データを確認する必要があります。
また、出来高も重要です。株価だけを見ると上昇しているように見えても、出来高が極端に少ない場合は売買しづらく、実際の約定価格が想定とズレることがあります。小型株では特にこの問題が大きくなります。Python分析では、価格条件だけでなく、最低売買代金や平均出来高も条件に入れるべきです。
最初に作るべきスクリーニング条件
Pythonで銘柄分析を始めるなら、最初のテーマは「強い銘柄を見つけるスクリーニング」が適しています。なぜなら、結果が直感的に分かりやすく、日々の銘柄選定にすぐ使えるからです。
具体的には、次のような条件を組み合わせます。
- 終値が25日移動平均線を上回っている
- 25日移動平均線が5営業日前より上昇している
- 直近20日高値を更新している
- 出来高が20日平均出来高の2倍以上
- 売買代金が一定以上ある
- 直近60日の下落率が大きすぎない
この条件は、短期から中期の順張り候補を探すうえで使いやすい基本形です。単に高値更新だけを見ると、一時的な材料で急騰しただけの銘柄も混ざります。そこで出来高、移動平均線、売買代金を加え、継続的に資金が入っている可能性がある銘柄に絞ります。
逆に、逆張り戦略を作りたい場合は、下落率、RSI、乖離率、出来高減少、過去の反発水準などを使います。ただし、初心者が最初に逆張りを自動化すると、落ちるナイフを拾う条件になりやすいため注意が必要です。まずは上昇銘柄を定量的に見つける方が実践しやすいでしょう。
実装イメージ:米国株ETFで分析の型を作る
ここでは、米国ETFを例にしたシンプルな分析イメージを考えます。対象をSPY、QQQ、IWM、DIA、TLT、GLDなどにすれば、株式、ハイテク、小型株、債券、金の大まかな資金循環を見ることができます。
Pythonでは、各ティッカーの価格データを取得し、20日リターン、60日リターン、200日移動平均線との位置、直近高値からの下落率を計算します。これを一覧化すると、現在どの資産に資金が向かっているかを把握しやすくなります。
たとえば、QQQが200日線より上、20日リターンもプラス、直近高値からの下落率も小さい一方で、TLTが200日線を下回り続けているなら、金利低下期待よりもグロース株選好が強い相場かもしれません。逆に、株式ETFが軒並み弱く、GLDやTLTが相対的に強いなら、リスクオフの可能性を考える材料になります。
この分析は、個別株にも応用できます。個別株をいきなり数千銘柄で見る前に、まずETFで市場全体の方向を確認し、その後に個別銘柄のスクリーニングへ進むと、地合いと銘柄選定を分けて考えられます。
コードを書く前に決めるべき分析ルール
Python分析で失敗しやすい人は、コードを書きながら条件を思いつきで追加します。これは危険です。条件を増やすほど、過去データには合いやすくなりますが、将来も機能するとは限りません。まずはコードを書く前に、分析ルールを日本語で書き出すべきです。
たとえば、順張りスクリーナーなら次のように定義します。
「対象銘柄の中から、終値が25日移動平均線を上回り、25日移動平均線が上向きで、直近20日高値を更新し、出来高が20日平均の2倍以上で、かつ売買代金が一定以上ある銘柄を抽出する」
このように文章で定義してからコード化します。文章で説明できない条件は、後から検証もしづらくなります。投資ルールは、他人に説明できる程度に単純である方が長く使えます。
pandasで計算する代表的な指標
Python株価分析では、pandasを使ってさまざまな指標を計算します。代表的なものは移動平均線、リターン、ボラティリティ、出来高倍率、移動平均乖離率です。
移動平均線は、一定期間の終値平均です。5日線は短期、25日線は中期、75日線や200日線は長期の流れを見るために使われます。単純な指標ですが、銘柄のトレンド判定には非常に有効です。
リターンは、一定期間で何%上昇または下落したかを表します。1日リターン、5日リターン、20日リターン、60日リターンを並べると、短期と中期の勢いを比較できます。短期では強いが60日では弱い銘柄は、単なるリバウンドかもしれません。一方、20日も60日も強い銘柄は、継続的な資金流入が起きている可能性があります。
ボラティリティは値動きの大きさです。高ボラティリティ銘柄は利益機会が大きい反面、損失も大きくなります。銘柄選定時にボラティリティを見ないと、同じ投資金額でも実質的なリスクが大きく異なります。
出来高倍率は、当日の出来高が過去平均と比べて何倍かを見る指標です。株価上昇と出来高急増が同時に起きている場合、材料や大口資金の流入が発生している可能性があります。ただし、出来高急増後に上ヒゲで終わる場合は、短期資金の売り抜けにも注意が必要です。
自動分析で見るべき「価格」より重要なもの
多くの個人投資家は価格ばかり見ます。しかし、Python分析で本当に差が出るのは、価格以外の変化を同時に見ることです。具体的には、出来高、売買代金、値幅、ギャップ、連続陽線数、移動平均線の傾き、相対順位です。
たとえば、株価が同じ5%上昇した2銘柄があるとします。A銘柄は出来高が通常の5倍、売買代金も十分あり、高値引けです。B銘柄は出来高が少なく、上ヒゲが長く、終値は高値から大きく押し戻されています。終値の上昇率だけなら同じでも、需給の質はまったく違います。
Pythonでは、こうした違いを数値として抽出できます。高値引け率を「終値が当日レンジの上位何%にあるか」で計算したり、上ヒゲの長さを「高値から終値までの距離」で計算したりできます。これにより、チャートを一枚ずつ目視しなくても、候補銘柄の質を比較できます。
実践例:急騰後に崩れない銘柄を探す
実用性の高い分析例として、「急騰後に崩れない銘柄」を探す方法があります。短期急騰銘柄は、翌日以降に大きく下落することも多い一方で、本当に強い銘柄は急騰後も5日線や10日線を維持しながら横ばいを作り、再上昇することがあります。
このパターンをPythonで探すなら、次のような条件を使います。
- 過去10営業日以内に1日で8%以上上昇した日がある
- その急騰日の出来高が20日平均の3倍以上
- 急騰後の終値が5日移動平均線を大きく割っていない
- 急騰後の下落率が急騰日の上昇幅の半分以内に収まっている
- 現在の売買代金が一定以上ある
この条件は、材料株の初動後に押し目候補を探す場面で使えます。目視だけで探すと見落としが多くなりますが、Pythonで条件化すれば毎日機械的に候補を抽出できます。
さらに、急騰日から何日経過したか、急騰後の安値を割っていないか、出来高が減少しながら株価が横ばいになっているかを加えると、より実践的になります。出来高が減りながら株価が崩れない状態は、短期筋の売りを吸収している可能性があるためです。
バックテストで最低限確認すべき項目
スクリーニング条件を作ったら、次に簡易バックテストを行います。バックテストとは、過去のデータに同じ売買ルールを適用した場合に、どのような成績になったかを確認する作業です。
ただし、バックテストは過信すべきではありません。過去に勝てた条件が未来でも勝てるとは限らないからです。それでも、まったく検証しないよりははるかに有益です。最低限、次の項目は確認したいところです。
- 総損益
- 勝率
- 平均利益
- 平均損失
- 最大ドローダウン
- 連敗回数
- 保有期間の平均
- 手数料とスリッページを考慮した成績
特に重要なのは、勝率ではなく期待値です。勝率が高くても、負けるときの損失が大きければ資産は増えません。逆に勝率が低くても、利益が損失より十分大きければ成り立つ戦略もあります。
Pythonでは、エントリー日、エントリー価格、決済日、決済価格、損益率を記録した表を作ることで、簡単なバックテストができます。最初は複雑な注文条件を再現する必要はありません。終値で買って、一定日数後の終値で売る、または移動平均線を割ったら売る、という単純な検証から始める方が実態を理解しやすくなります。
過去検証でありがちな落とし穴
Pythonでバックテストをすると、簡単にきれいな成績の戦略が作れてしまいます。しかし、その多くは実運用で機能しません。理由は、検証方法に落とし穴があるからです。
代表的な問題は、未来のデータを使ってしまうことです。たとえば、その日の終値で条件判定し、同じ日の終値で買ったことにすると、実際には不可能な取引になります。終値が確定するのは取引終了後だからです。現実的には、条件判定後の翌営業日寄り付きや翌日終値でエントリーするなど、実行可能なルールにする必要があります。
次に、上場廃止銘柄を除外してしまう問題があります。現在残っている銘柄だけで過去検証すると、過去に消えた弱い銘柄が除かれ、成績が過大評価されます。これはサバイバーシップバイアスと呼ばれます。個人投資家が完全に回避するのは難しいですが、少なくとも「検証結果は良く見えやすい」と認識しておくべきです。
さらに、流動性の問題もあります。小型株で過去チャート上は大きく取れているように見えても、実際には希望価格で売買できないことがあります。売買代金が少ない銘柄をバックテスト対象に含める場合は、売買代金の下限を設ける必要があります。
売買代金フィルターを入れる理由
自動分析で非常に重要なのが売買代金フィルターです。出来高だけではなく、株価と出来高を掛け合わせた売買代金を見ることで、実際にどの程度の資金が動いているかを把握できます。
たとえば、株価100円で出来高100万株なら売買代金は1億円です。一方、株価3,000円で出来高10万株なら売買代金は3億円です。出来高だけを見ると前者が大きく見えますが、資金流入の規模では後者の方が大きい場合があります。
個人投資家でも、売買代金が極端に小さい銘柄ではスプレッドが広くなり、成行注文で不利な価格を掴みやすくなります。バックテスト上は利益が出ていても、実際には約定コストで成績が悪化します。そのため、短期売買では最低でも一定以上の売買代金を条件に入れるべきです。
具体的な水準は投資額によって変わります。少額投資なら数千万円規模でも扱える場合がありますが、ある程度の資金を動かすなら、1日売買代金が数億円以上ある銘柄を中心にした方が運用しやすくなります。
ランキング化すると銘柄選定が安定する
条件に合う銘柄を抽出するだけでなく、スコア化してランキング化すると、銘柄選定はさらに安定します。たとえば、20日リターン、60日リターン、出来高倍率、移動平均線からの乖離率、売買代金を点数化し、合計スコアで並べます。
ランキング化の利点は、候補が多すぎるときに優先順位を付けられることです。強い相場では、条件に合う銘柄が数十銘柄出ることがあります。その中から感覚で選ぶと、結局いつもの裁量判断に戻ってしまいます。スコアを使えば、少なくとも選定基準を明文化できます。
ただし、スコア化にも注意点があります。指標を増やしすぎると、何を評価しているのか分からなくなります。最初は3〜5項目程度に絞る方が良いでしょう。たとえば、トレンドの強さ、出来高の変化、流動性、過熱度の4項目だけでも十分に実用的です。
チャート画像を自動保存するメリット
Python分析では、数値一覧だけでなくチャート画像を自動保存することも有効です。スクリーニングで抽出された銘柄について、終値、移動平均線、出来高を含むチャートを自動で保存すれば、目視確認の時間を大幅に短縮できます。
人間の目は、数値では見えない違和感を見つけるのが得意です。たとえば、条件には合っているものの、上ヒゲが連発している、急騰後の出来高が不自然に細っている、過去の高値帯に強い抵抗がある、といった情報はチャートで確認した方が早い場合があります。
つまり、Python分析は人間の判断を完全に置き換えるものではありません。候補を絞る作業を自動化し、最終確認に人間の判断を使うのが現実的です。この役割分担ができると、分析効率は大きく向上します。
実運用で使える日次ルーティン
Python分析を投資成績に結びつけるには、毎日のルーティンに組み込む必要があります。コードを書いて満足するだけでは意味がありません。実運用では、次のような流れが使いやすいです。
- 取引終了後に株価データを更新する
- スクリーニング条件に合う銘柄を抽出する
- 候補銘柄のチャート画像と指標一覧を確認する
- 翌日の監視リストを作成する
- エントリー条件、損切り位置、利確条件を事前に決める
- 売買後に結果を記録する
この流れを毎日繰り返すことで、投資判断が場当たり的になりにくくなります。特に重要なのは、翌日の寄り付き前ではなく、前日のうちに候補とルールを決めておくことです。寄り付き直後は値動きが激しく、感情的な判断が入りやすくなります。
Pythonで抽出した候補銘柄に対して、「どの価格を超えたら買う」「どこを割ったら見送る」「損切りは何%またはどの支持線にする」といった行動ルールを事前に設定すれば、実際の売買がかなり安定します。
売買記録とPython分析を連携させる
多くの個人投資家は、買う前の分析には時間を使いますが、売買後の検証を軽視します。しかし、成績改善に直結するのは売買後の記録です。Pythonを使えば、自分の売買記録を読み込み、どの条件のときに勝ちやすいかを分析できます。
記録すべき項目は、銘柄コード、銘柄名、エントリー日、エントリー価格、決済日、決済価格、損益率、保有日数、エントリー理由、損切り理由、地合い、出来高倍率、移動平均線との位置などです。
この記録をCSVで保存し、Pythonで集計すれば、自分の得意パターンと苦手パターンが見えてきます。たとえば、上昇トレンド中の押し目買いは利益が出ているが、決算直後の飛び乗りは損失が多い、低流動性銘柄では損切りが遅れやすい、地合いが悪い日のエントリーは期待値が低い、といった傾向が数値で分かります。
この分析は、一般的なテクニカル指標より重要です。なぜなら、自分の実際の行動と成績に基づいているからです。どれほど優れた理論でも、自分が実行できなければ意味がありません。
通知機能を付けると分析が継続しやすい
Python分析は、継続できなければ効果が出ません。そこで、条件に合う銘柄が出たらメールやチャットツールに通知する仕組みを作ると便利です。たとえば、毎日引け後にスクリーニングを実行し、候補銘柄があれば一覧を自分宛てに送る運用です。
通知内容は複雑にする必要はありません。銘柄コード、銘柄名、終値、前日比、出来高倍率、25日線乖離率、20日高値更新の有無、売買代金などを並べるだけで十分です。重要なのは、毎日自動で届くことです。
ただし、通知が多すぎると見なくなります。最初は条件を厳しめにして、本当に注目したい銘柄だけが出るように調整しましょう。候補が毎日50銘柄も出るようでは、結局確認しきれません。実運用では、1日5〜15銘柄程度に絞れる条件が扱いやすいです。
AIや機械学習を使う前にやるべきこと
近年はAIを使った株価予測に関心が集まっています。しかし、個人投資家がいきなり機械学習モデルで株価を予測しようとするのは、あまり効率的ではありません。理由は、金融市場のデータはノイズが多く、過去の関係が将来も続くとは限らないからです。
機械学習を使う前に、まずは単純なルールベース分析を作るべきです。移動平均線、出来高、リターン、ボラティリティ、売買代金、相対順位といった基本指標だけでも、多くの投資判断を改善できます。
AIを使うなら、価格そのものを予測するよりも、情報整理に使う方が実用的です。たとえば、決算短信の要約、ニュース分類、銘柄メモの作成、売買記録の振り返り、異常値検出などです。価格予測をAIに丸投げするのではなく、人間の分析工程を効率化する補助ツールとして使う方が現実的です。
個人投資家向けの実践的な分析テンプレート
ここでは、個人投資家が最初に作ると効果が高い分析テンプレートを提示します。テーマは「中期順張り候補の自動抽出」です。
条件1:流動性
売買代金が一定以上ある銘柄だけを対象にします。これにより、売買しにくい銘柄やスプレッドが広すぎる銘柄を除外します。流動性は実運用で非常に重要です。
条件2:トレンド
終値が25日移動平均線と75日移動平均線を上回っている銘柄を対象にします。さらに、25日移動平均線が上向きであることを条件に加えると、単なる一時反発を減らせます。
条件3:勢い
20日リターンがプラスで、かつ市場平均を上回っている銘柄を優先します。相場全体が上がっているだけでなく、相対的に強い銘柄を探すためです。
条件4:出来高
直近出来高が過去20日平均より増えている銘柄を評価します。価格上昇に出来高が伴っていれば、需給面の裏付けがある可能性が高まります。
条件5:過熱度
移動平均線からの乖離率が大きすぎる銘柄は除外します。強い銘柄を買うことと、過熱しすぎた銘柄を高値掴みすることは違います。たとえば、25日線から30%以上乖離している銘柄は、短期的な反落リスクが高い場合があります。
この5条件を組み合わせるだけで、かなり実践的なスクリーニングになります。しかも、すべてPythonで自動計算できます。
リスク管理をコードに組み込む
Python分析では、銘柄を探すだけでなく、リスク管理も自動化すべきです。候補銘柄を抽出した時点で、想定損切り幅、1銘柄あたりの投資額、許容損失額を計算できるようにします。
たとえば、総資金500万円、1回の許容損失を資金の1%、つまり5万円に設定したとします。ある銘柄の損切り幅が10%なら、投資額は50万円までです。損切り幅が5%なら、投資額は100万円まで許容できます。このように、損切り幅に応じて投資額を変えると、銘柄ごとのリスクを平準化できます。
多くの個人投資家は、値動きの大きい銘柄にも値動きの小さい銘柄にも同じ金額を入れてしまいます。その結果、高ボラティリティ銘柄で資金を大きく削られます。Pythonでボラティリティや損切り幅を計算し、ポジションサイズを自動表示するだけでも、資金管理の質は大きく改善します。
分析結果を鵜呑みにしないためのチェックリスト
Python分析は強力ですが、万能ではありません。自動抽出された銘柄をそのまま買うのではなく、最終確認のチェックリストを持つべきです。
- 直近決算や業績修正で異常な材料が出ていないか
- 出来高急増が一過性のニュースによるものではないか
- 上場廃止リスク、監理銘柄、極端な低流動性ではないか
- 日経平均やTOPIXなど市場全体の地合いは悪化していないか
- 同業他社と比べて不自然な値動きではないか
- 決算発表や権利落ちなど重要イベントが近くないか
自動分析は、候補を絞るためのフィルターです。最終的な投資判断には、ファンダメンタルズ、需給、イベント、地合いを加える必要があります。ここを分けて考えることが、実践では非常に重要です。
Python分析を継続するための設計思想
個人投資家が作る分析ツールは、複雑すぎると続きません。最初から高度なダッシュボードやリアルタイム監視を目指すより、毎日確実に動くシンプルな仕組みを作る方が価値があります。
設計の基本は、入力、処理、出力を分けることです。入力は株価データや銘柄リスト、処理は指標計算やスクリーニング、出力はCSV、Excel、チャート画像、通知です。この3つを分けておけば、後からデータ取得元を変えたり、条件を追加したりしやすくなります。
また、分析結果は必ず保存しましょう。毎日のスクリーニング結果を日付別に保存しておくと、「過去に抽出された銘柄がその後どうなったか」を検証できます。これは非常に価値のあるデータになります。自分専用の銘柄発掘データベースを作る感覚です。
実践ロードマップ:最初の30日で作るべきもの
これからPython株価分析を始めるなら、最初の30日は次の順番で進めると効率的です。
1週目:データ取得と表示
まずは数銘柄の株価データを取得し、pandasで表示できるようにします。終値、出来高、移動平均線を計算し、簡単なチャートを表示するところまでで十分です。
2週目:指標計算
20日リターン、60日リターン、25日線乖離率、出来高倍率、売買代金を計算します。1銘柄で動いたら、複数銘柄に広げます。
3週目:スクリーニング
条件に合う銘柄だけを抽出し、CSVに出力します。最初は条件を少なくし、結果を見ながら調整します。この段階では勝つことより、毎日使える形にすることを優先します。
4週目:売買記録との連携
実際に監視した銘柄、エントリーした銘柄、見送った銘柄を記録し、後から成績を集計できるようにします。ここまで作れば、単なる分析ツールではなく、投資改善システムになります。
まとめ
Pythonによる株価データの自動分析は、個人投資家にとって非常に実用性の高い武器になります。ただし、その目的は未来を完璧に予測することではありません。銘柄選定、地合い確認、売買記録、検証、資金管理を標準化し、感情に左右される判断を減らすことです。
最初に作るべきものは、高度なAI予測モデルではなく、毎日同じ条件で候補銘柄を抽出するシンプルなスクリーナーです。移動平均線、リターン、出来高、売買代金、ボラティリティ、乖離率といった基本指標だけでも、投資判断の質は大きく変わります。
さらに、抽出結果を保存し、売買記録と連携させれば、自分の得意パターンと苦手パターンを数値で把握できます。これは市販の情報ツールだけでは得にくい、自分専用の優位性になります。
Python分析で重要なのは、複雑さではなく継続性です。毎日使える仕組みを作り、同じ条件で市場を見続けること。その積み重ねが、場当たり的な投資から、検証可能な投資スタイルへの移行につながります。


コメント