-
投資・金融系の企業で 株式スキャナー・独自株価指標の 開発エンジニア(新規プロダクトを0→1で開発)
■ プロジェクトの目的
株式投資の銘柄選定を効率化するため、多数の銘柄を独自の条件で絞り込める「株式スキャナー(スクリーニングツール)」と、売買判断に用いる「独自のテクニカル指標(株価指標)」を新規に開発すること。
■ 体制・人数
少人数の開発体制の中で、開発担当として参画。企画側と密に連携しながら、実装から検証までを担当しました。
■ 自分のポジション・役割
Python を用いたコーディング・開発を担当。株価データの取得・処理から、スキャナーのロジック実装、独自指標の設計・実装、動作検証までを一貫して担当しました。
■ 課題
・多数の銘柄・大量の株価データを、実用的な速度で処理・スクリーニングする必要があった
・外部APIから取得する株価データに、欠損・表記ゆれ・取得制限(レート制限)があり、そのままでは安定して扱えなかった
・独自指標の計算が意図通りに正しく動くか(精度・再現性)をどう担保するか
■ 乗り越えた方法
・処理速度:当初は銘柄ごとのループ処理で時間がかかっていたため、pandas / NumPy によるベクトル化でループを削減し、計算結果のキャッシュ・バッチ処理も導入。実用的な速度まで改善しました。
・データの安定化:取得データの欠損補完・型やフォーマットの正規化を行うクレンジング処理を実装。API のレート制限にはリトライ処理と待機制御を入れ、取得を安定させました。
・品質・正確性:独自指標のロジックに対して単体テストを用意し、過去データを用いたバックテストで想定どおりの挙動になるかを繰り返し検証。異常値やバグを早期に発見・修正できる仕組みにしました。
・保守性:機能追加のたびにコードが複雑化したため、処理を役割ごとにモジュール分割し、命名やコメントを整理。Git でバージョン管理し、変更を追いやすくしました。
■ 成果・学び
・新規プロダクトをゼロから開発し、実際に稼働するところまで導きました。
・「動けばよい」ではなく、処理速度(計算量・データ構造)と、検証しやすさ・保守しやすさまで意識して実装することの重要性を学びました。
・仕様が固まりきらない中でも、パラメータを柔軟に変更できる設計にしておくことで、試行錯誤を素早く回せることを実感しました。
・金融ドメインの知識と、データ処理・アルゴリズム設計というエンジニアリングを掛け合わせる経験を積めました。Python、pandas / NumPy、データ分析、株価データの取得・処理(API連携)、テクニカル指標の実装、アルゴリズム設計、バックテスト、SQL/データベース、Git