AI株式投資ツールのチャート手書きライン機能|支持線・抵抗線・フィボナッチを保存する

手書き機能追加_アイキャッチ

AIに相談しながら改善している株式投資ツールに、チャート上へ手書きで線を引ける機能を追加しました。

これまでのツールでは、移動平均線やピボット水平線のように、自動で計算できる情報をチャートへ表示していました。候補銘柄を見つけるにはそれだけでも助かります。ただ、実際にチャートを見ていると「この高値を超えられるか」「この安値を割ると怖いか」「フィボナッチで見たらどのあたりまで押しているか」を、自分の目で線として残したくなる場面があります。

今回は、AI株式投資ツールのチャートに支持線、抵抗線、トレンドライン、フィボナッチを手書きで残せるようにした改善記録です。

今回できるようにしたこと
  • チャート上に水平線を引き、支持線や抵抗線として残せるようにした
  • 2点クリックでトレンドラインとフィボナッチリトレースメントを表示できるようにした
  • 描いた線を銘柄別にブラウザへ保存し、リロード後も復元できるようにした
目次

チャート判断をAIに丸投げせず、自分で線を引ける余白がほしかった

AI株式投資ツールを作っていると、つい自動判定を増やしたくなります。買い候補、リスク管理、決算前の確認、バックテスト。画面上にいろいろな情報が出るようになるほど、便利にはなっていきます。

でも、チャートを見る作業まで全部を自動化したいわけではありません。
特に支持線や抵抗線は、同じ価格帯を見ても、人によって線を置く場所が少し変わります。直近高値を重視するのか、何度も止まっている価格帯を見るのか、出来高を合わせて見るのかで、線の意味が変わるからです。

そこで今回は、AIに抵抗線や支持線を判定してもらう前に、まず自分で線を引ける機能を作ることにしました。

投資ツール全体を構築している今までの経緯は以下の記事で参照できます。

スポンサーリンク

チャート上に手書きで線を描くための方針

最初にAIへ相談したのは、チャート上に手書きで線を描けるかどうかでした。私が欲しかったのは、抵抗線、支持線、フィボナッチのような補助線を、チャートを見ながら自分で置ける機能です。

既存のCandleChartには、ローソク足、出来高、移動平均線、ピボット水平線がすでに入っています。ここへ無理に描画処理を混ぜると、今ある表示やテストを壊す可能性があります。

AIにはまず、現在のチャート構成、lightweight-chartsの使い方、状態管理、テスト構成を調べてもらいました。その結果、チャート本体に直接描画ロジックを詰め込むより、SVGのレイヤーを上に重ねる方針がよさそうだと分かりました。
既存のチャート画面の上に透明なシートを置いて、そのシート側へ自分の線を書くようなイメージみたいです。

描画線は投資判断ロジックそのものではなく、画面上の補助メモです。だから最初の一歩では、フロントエンドだけで完結し、銘柄ごとにブラウザへ保存できれば十分だと考えました。

人間側で決めたこと
  • 最初に作るのは、水平線、トレンドライン、フィボナッチの3つに絞る。
  • 描画データは銘柄別に保存し、別銘柄へ切り替えたら線も切り替える。
  • 投資判断の自動化ではなく、チャート確認を助ける補助機能として扱う。

手書き線はSVGを重ね、銘柄ごとにブラウザへ保存する形にした

実装方針として選んだのは、SVG overlayという形です。チャートの上にSVGを重ね、クリックした場所をチャート上の時間と価格に変換して、線として保存します。

この仕組みで難しいのは、画面上のピクセル位置と、チャート上の日付や価格を対応させる部分です。たとえば、画面の右上をクリックしただけでは、それが何月何日の何円なのかは分かりません。そこで、lightweight-chartsの座標変換APIを使い、クリック位置を時間と価格へ変換するようになっています。

描いた線は、見た目の位置ではなく「どの日付、どの価格を結んだ線か」として保存する必要があります。そうしておかないと、チャートを拡大したり横に動かしたりした瞬間に、線だけがずれてしまいます。

今回のログでは、panやzoomをしたときも再描画されるようになっています。チャートを動かしたら線も追従する状態です。これは地味ですが、実際に使う上ではかなり大事です。線を引いたあとに少し期間を広げただけで位置がずれると、もうその線を信用できなくなります。

保存先はlocalStorageになっています。キーは銘柄ごとに分け、たとえば7203.Tならその銘柄用の描画データとして保存されます。これで、ページをリロードしても同じ銘柄なら線が戻りますし、別の銘柄へ切り替えたときには、その銘柄の線に切り替えられます。

もちろん、localStorageなので別ブラウザや別端末には同期されません。スマホでも同じ線を見たい、別PCでも共有したい、という段階になればサーバー保存が必要です。ただ、最初からそこまで広げると実装範囲が大きくなります。

スポンサーリンク

水平線、トレンドライン、フィボナッチを最小セットで使えるようにした

今回入れた描画ツールは3つです。水平線、トレンドライン、フィボナッチリトレースメント。どれもチャートを見るときによく使うものですが、最初の追加では欲張りすぎないようにしました。

水平線は1回クリックすると、その価格に線が引かれる形です。支持線や抵抗線として使う想定です。トレンドラインは2点をクリックして、その2点を結ぶ斜め線を引きます。フィボナッチも2点を指定すると、0、23.6、38.2、50、61.8、78.6、100%の水準が自動で表示されます。

操作は、チャート上部のボタンでツールを選び、チャート上をクリックして線を置く流れにしました。同じツールをもう一度押すと選択解除できます。描いた線はクリックで削除でき、全消去ボタンも用意しました。

手書きライン機能

ここで意識したのは、最初からプロ向けの描画ツールを作ろうとしないことです。線の色、太さ、ラベル、メモ、複製、ロック、スナップなど、追加したい機能はいくらでも出てきます。でも、最初から全部を入れると、何のために作っているのかがぼやけます。

私がまず欲しかったのは、候補銘柄を見たときに「ここを超えたら見方が変わる」「この押し目を割ると弱いかもしれない」という仮説を残せることでした。だから、ツールの数よりも、線を引き、消し、銘柄ごとに残せることを優先しました。

買いタイミングを画面で確認する流れは、以前の実装から続いています。今回の手書き線は、その表示を見ながら、自分の見立てを重ねるための追加機能です。

まとめ

今回は、AIに相談しながら改善している株式投資ツールに、チャート上へ手書きで線を引ける機能を追加しました。

これまでのツールでは、移動平均線やピボット水平線など、自動で計算できる情報を表示していました。これは候補銘柄を探すうえでは便利です。

ただ、実際にチャートを見ていると、自動表示だけでは足りない場面があります。

この高値を超えられるか。
この安値を割ると弱いのか。
フィボナッチで見ると、どこまで押しているのか。

こうした自分なりの見立てを、チャート上に直接残せるようにしたかったのが今回の目的です。

実装としては、チャートの上にSVGの透明なレイヤーを重ね、水平線、トレンドライン、フィボナッチを描けるようにしました。描いた線は銘柄ごとにブラウザへ保存されるため、リロードしても復元できます。

うまくいった点は、チャート判断をAIに丸投げせず、自分で考える余白をツールの中に残せたことです。AIが出した買い候補をそのまま信じるのではなく、自分で支持線や抵抗線を引きながら確認できるようになりました。

一方で、課題もあります。今の保存先はブラウザ内なので、別の端末では同じ線を見られません。また、線の色やメモ、ラベル、複製、ロックといった細かい機能もまだありません。

それでも、最初の実装としては十分です。

今回の追加で、AI株式投資ツールは「候補を自動で出すだけのツール」から、「自分のチャート判断も残せるツール」に少し近づきました。

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

この記事を書いた人

東証プライム上場企業で生成AIの開発に携わるAIエンジニアです。

仕事では最先端のAIを扱いながら、日常ではあまり活用できていないことに気づきました。

本当にAIは人生を変えるのか.

それを確かめるため、株式投資や副業、子どもとの遊びなどにAIを取り入れ、暮らしがどう変わるのかを実験・発信していきます。

目次