Pythonで株価分析ツールを自作してみた

株トレードをしていると、つい感情に左右されてしまいませんか?

「リバウンドしたからまだ上がるはず」と根拠のない期待を持ち続け、結局損切りできずに塩漬け……。
私自身、ずっとその繰り返しでした。

そんな負のループを断ち切るために、私は「感情の排除」を決意。 仕事で培ったエンジニアのスキルを資産形成にフル活用し、PythonとAIを組み合わせた「自作株監視ツール」の開発を始めました。

今回は、私の投資スタイルを変えたツールの設計思想から、実装のこだわりまでを公開します。

目次

システムの全体像

チャートツール「TradingView」でスクリーニングし、自作ツールで「詳細分析・管理」、最後に「AI」で投資判断する。これが私の構築した「エンジニア的投資フロー」です。

  1. TradingView: 膨大な銘柄から、自分のロジックに合う「候補」を抽出。
  2. Python(Flask): 候補銘柄の過去データを取得し、独自の配点ルールでスコアリング。
  3. AI: 監視銘柄のデータをAIに渡し、客観的な「買い」の判断を補強。

全体の運用フロー

ツールを作って終わりではなく、日々のトレードにどう組み込んでいるか具体的な4つのStepで紹介します。

1.銘柄の選定と登録

スクリーニングにはTradingViewの株式スクリーナーを使用しています。膨大な銘柄の中から複数のテクニカル指標を組み合わせて、一定の条件を満たした銘柄を抽出しています。
例えば「移動平均線との位置関係」、「RSIの水準」や「出来高」などをベースに銘柄を絞り込んでいます。

次にTradingViewのスクリーナーでヒットした銘柄のコードを自作ツールの登録画面に入力して登録します。

「新規銘柄登録(株価分析ツール)」画面

2.データ取得とスコア自動計算

日付を指定してデータ取得のボタンを押すとPythonが裏側でyfinanceからデータを取得し、瞬時にスコアを算出します。RSIや移動平均線、出来高などを組み合わせて独自のスコアリングを行っています。

データ取得の方法ですが監視銘柄の一括取得と1銘柄毎の取得の2種類を準備しました。

監視銘柄一括取得

「監視銘柄一覧」画面の右上の「年/月/日」に取得したい日付を設定し「全銘柄データ一括取得」ボタンを押下します。

「監視銘柄一覧(株価分析ツール)」画面

※表示銘柄はサンプルになります。

1銘柄個別取得

銘柄詳細画面の「データ登録・更新」画面に取得する日付を設定し「取得実行」ボタンを押下します。

「銘柄詳細(株価分析ツール)」画面

3.チャート確認と「AI解析」による最終判断

スコアだけに頼るのは危険なので、最終判断は必ずチャートで確認します。

また、「確認」ボタン押下するだけでAIが解析に必要なテクニカルデータを整形してコピーできる仕組みにしました。これをAIに貼り付けるだけで、即座に客観的なAI解析が始まります。

「銘柄詳細(株価分析ツール)」画面

4.売買管理と「総損益」の可視化

購入後は追加買いや部分売却もすべてツール内で完結。
常に「現在の総損益」が自動更新されて表示されるため、今自分の資産全体がどんな状態にあるのかを一目で把握できます。

「監視銘柄~ポートフォリオ管理(株価分析ツール)」画面

※上の画像の内容は実際に取引したものではなくサンプルとなります。

開発で苦労した点

実装で苦労したのは、計算精度の調整です。 Pythonのライブラリで計算したRSIやボリンジャーバンドの数値が、TradingViewの画面上の数値と微妙に合わない。

「なぜ合わないのか?」を突き詰めた結果、TradingViewが採用している移動平均の平滑化ロジック(Wilderの手法など)に行き着きました。

AIを使った開発

今回、AIを使って株価分析ツールの開発をしましたが、全てをAI任せにするのではなく、自分である程度コードが読めるからこそ、AIの提案を「正しく取捨選択」して実装スピードを爆上げできました。

AIを使って良かった点

  • エラーの即時解決: ログを投げれば原因と修正案が数秒で返ってくる。
  • 画面デザインの設計:見た目が綺麗なデザインのテンプレートを作成してくれる。
  • ソース作成:母体となるソースを作成してくれる。(私は自分が読みやすいように整えるだけ)

まとめ

今回作成したツールはTradingViewでスクリーニングした後の判断を強化するツールです。

  • TradingViewで抽出
  • Pythonで分析
  • スコアで判断
  • AIで補助

この流れにしたことで感情に流されずトレードの質がかなり変わったかなと思います。
今後このツールを使いやすいように改良していく予定です。

最後まで読んで頂きありがとうございました。

【投資に関する免責事項】
本ブログで紹介している株価解析ツールによるスコアリングおよび銘柄分析は、あくまで個人の学習・研究および技術検証を目的としたものであり、特定の銘柄の売買を推奨するものではありません。

ツールの算出結果や掲載情報の正確性については万全を期しておりますが、その内容を保証するものではありません。投資の最終決定は、必ずご自身の判断と責任において行っていただきますようお願いいたします。

万一、本ブログの情報に基づいて被ったいかなる損害についても、当サイトおよび運営者は一切の責任を負いかねますのであらかじめご了承ください。

目次