銘柄別ティック履歴の蓄積
- こんな課題に
- 自社画面の価格変化を後から細かく検証したい。
- 開発するもの
- 銘柄ID、価格、数量、配信時刻、受信時刻を保存し、銘柄・期間で検索できる履歴画面を作成。約定ティックと気配更新を区別します。
自社のトレード画面に、必要な機能を。リアルタイムの価格をDBへ保存する。複数画面を連動させる。注文・約定・判断の履歴を残す。毎日のトレード業務に合わせた専用ブラウザを開発します。
Windowsアプリケーション、Chrome、自社Webシステム、データベースを高度に連携。既存システムへの機能追加から、専用ワークスペースの構築まで、必要な範囲をご相談いただけます。
株価、先物価格、為替レート、注文、約定、ポジション、損益。自社のWebトレードシステムに流れる情報を、画面表示だけで終わらせず、記録・分析・操作・業務連携まで一体化します。ChromeやWebView2とWindowsアプリケーションを組み合わせ、担当者が日々使う環境そのものを設計・開発します。
「既存画面はそのまま使いたい」「ティックをDBへ残したい」「複数のチャートと建玉を同時に確認したい」「自社の売買ルールに合わせて入力補助を付けたい」。必要な機能から段階的に追加できます。
自社システムとの通信から価格・注文・約定を取得。時系列DBと業務DBへ、目的に合った形で蓄積します。
チャート、板情報、ポジション、分析メモを一つの作業環境へ。銘柄や時間軸の連動も組み込みます。
蓄積データを使ったチャート再生、取引レビュー、条件検証、戦略別の集計を自社環境で行います。
既存のC++資産、Excel、FileMaker、ローカルLLM、社内サーバーと連携します。
本ページの機能・活用例は、自社で開発・運用するWeb画面、自社サーバー、利用権限のあるデータを組み合わせる構成を前提としています。新規構築と既存システムへの機能追加の両方をご相談いただけます。
| 開発の単位 | 作るもの | 利用イメージ |
|---|---|---|
| データ保存機能 | リアルタイム通信の受信・整形・DB登録 | 自社Web画面に届く価格と取引イベントを保存 |
| 専用ブラウザ | 自社画面、ツールバー、複数パネル、銘柄連動 | 担当業務に合わせたトレード用ワークスペース |
| 分析・検証機能 | 時系列検索、チャート再生、指標計算、レポート | 日々の取引の振り返りと戦略検証 |
| 注文支援機能 | 入力補助、数量計算、確認、承認、状態表示 | 自社注文管理システムとの接続 |
| Windows連携 | C++ DLL、ローカルファイル、通知、入力機器 | ブラウザだけでは完結しない処理の統合 |
| 運用基盤 | 常駐収集、死活監視、復旧、バックアップ | 画面を閉じた後も必要な収集処理を継続 |
最初から全機能を実装する必要はありません。「1種類のイベントをDBに保存する」「既存画面に分析パネルを追加する」「取引後のレポートだけを自動化する」といった小さな単位から着手できます。
既存システムの改修範囲、常時稼働の必要性、操作機能の有無によって構成を選びます。ブラウザで受信するデータを記録する方式に加え、自社サーバー側から直接イベントを保存する方式も設計します。
| 構成案 | 適した条件 | 設計上のポイント |
|---|---|---|
| Chrome+制御アプリ | 既存のChrome環境や自社Web画面を活用したい | 専用プロファイル、対象タブ管理、CDP接続の寿命を管理 |
| WebView2+Windowsアプリ | 独自メニューや複数パネルを持つ専用アプリにしたい | Webとネイティブの連携を明示的に実装 |
| 自社サーバー側で収集 | 画面を閉じても継続収集したい | ブラウザとは独立した常駐処理と保存基盤を構築 |
| サーバー収集+専用ブラウザ | 継続保存と現場の使いやすさを両立したい | 共通イベントIDでサーバー履歴と画面上の判断を関連付け |
ブラウザで記録できるのは、接続・購読している対象に届いたデータです。全銘柄・全市場の全ティックを自動的に取得する仕組みではありません。必要な網羅性を満たす配信・購読・補完方法を先に決めます。
自社WebシステムでWebSocketなどにより更新される価格、Bid / Ask、注文状態、約定、損益を、受信イベントとして取り扱います。表示後の文字を繰り返し読む方式とは異なり、自社システムが送るデータ構造を利用して保存処理を設計できます。
価格配信と注文通知では、必要な項目も欠落時の扱いも異なります。price、quote、trade、order、execution、positionなどのイベント種別を定義し、各イベントを対応するテーブルへ登録します。受信時の原文と解析後の値を関連付けて残せば、解析ルール変更時の再処理にも対応できます。
WebSocketの受信・送信イベント、HTTPレスポンス、Server-Sent Eventsなど、実際に採用されている方式を調査します。JSONだけでなく、バイナリ形式、独自フォーマット、アプリケーション層の圧縮がある場合は、自社プロトコルの仕様に沿った復号・展開・解析処理を組み込みます。
通信受信の処理内で重いSQLや集計を実行せず、キューを介して保存ワーカーへ渡す構成にします。キュー上限、書き込み待ち時間、ディスク退避、異常時の停止条件を設け、処理が追いつかない状態を検知します。表示は間引いても、保存対象のイベントまで無条件に間引かない設計が必要です。
配信元時刻、PCでの受信時刻、DBへの保存時刻を分けて記録します。処理遅延の中央値・上位百分位、未保存件数、最終受信時刻、欠番件数を監視し、取得できているように見えて保存が遅れている状態を把握します。目標値は対象PC、通信量、データ形式、保存先を測定して決めます。
以下は、目的に合わせて設計する開発・活用案です。すべてを搭載した既製品の仕様や、導入実績の一覧ではありません。保存したいデータ、既存の画面、実現したい操作に合わせて組み合わせます。
Chrome DevTools Protocol(CDP)を利用する構成では、対象タブ・セッションを識別してNetworkイベントを監視します。WebSocketの受信はNetwork.webSocketFrameReceived、送信はNetwork.webSocketFrameSentで通知されます。取得できたイベントを自社プロトコルの定義に沿って解釈し、保存処理へ渡します。
HTTPではNetwork.responseReceivedがレスポンス情報を通知しますが、その通知だけで本文全体が得られるわけではありません。本文の取得にはNetwork.getResponseBodyなどを利用し、完了タイミングや保持状況を考慮します。WebSocketデータは専用イベントで処理し、HTTPの本文取得と同じ経路に混ぜません。
CDPの対象範囲とイベント・メソッドの定義は、Chrome DevTools ProtocolのNetwork公式資料に基づいて実装時に確認します。ブラウザのバージョン更新に合わせた接続・受信の確認も行います。
WindowsアプリケーションにWebView2を組み込み、自社Web画面とネイティブのメニュー・通知・ファイル機能を統合します。Web messagingなどを使って画面とホストアプリの間で情報を受け渡す構成が可能です。受信元、メッセージ形式、許可する処理を検証し、表示したページへ無条件にローカル機能を公開しない設計にします。
Webとネイティブの連携機能については、MicrosoftのWebView2 API公式資料を参照します。Chromeを外部制御する方式と、WebView2をアプリへ埋め込む方式は、既存環境と配布方法に合わせて選定します。
既存画面に手を入れにくい場合は、ブラウザで受けた通信の記録が有効です。一方、自社サーバーを改修できる場合は、保存用のイベント配信や履歴APIを追加すると、画面の起動状態から収集処理を独立させられます。操作ログだけをブラウザ側で記録し、市場データはサーバー側で保存する組み合わせも可能です。
DOM操作や自社JavaScriptとの連携を使う場合も、クリックできたことだけで完了と判定しません。要求ID、処理中、成功、失敗、不明を区別し、自社サーバーの応答や対象レコードの状態を照合します。画面変更に備えてセレクターや操作インターフェースを整理します。
後から使えるデータにするには、保存量だけでなく「何の値か」「いつの値か」「どう届いたか」を残す必要があります。価格と注文を同じ粒度で無理にまとめず、原イベントと用途別テーブルを関連付けます。
| 保存領域 | 主な項目 | 設計の目的 |
|---|---|---|
| raw_events | event_id / source / session_id / sequence / received_at / payload | 受信した原イベントの追跡と再処理 |
| quotes・ticks | instrument_id / price_type / bid / ask / price / size / event_time | 価格種別を混同しない時系列分析 |
| bars | instrument_id / timeframe / session_id / open / high / low / close / count | 集計条件が分かるローソク足 |
| orders | client_order_id / server_order_id / strategy_id / status | 要求とサーバー側状態の対応付け |
| executions | execution_id / order_id / quantity / price / fee | 約定単位の集計と訂正管理 |
| positions | instrument_id / quantity / valuation_time / reference_price | 保有状態と評価基準の再現 |
| quality・audit | gap / parse_error / reconnect / operator / config_version | データ品質と操作・設定変更の追跡 |
配信元のイベント時刻、PC受信時刻、保存完了時刻を別項目にします。UTCなどの共通基準で保存し、日本時間などの表示時刻へ変換。先物の取引日やFXの集計日境界は、単なる日付切り捨てでなく業務ルールとして保持します。配信元の時計がずれている可能性も評価します。
価格を整数化した値とスケール、または適切なDECIMAL型で扱い、呼値や契約倍率をマスターに定義します。二進浮動小数点による端数が、注文数量や損益の照合に影響しないようにします。欠落値、ゼロ、未更新は別の状態です。
同じ価格が続いても、別の約定や別時刻の更新である可能性があります。イベントID、接続セッション、配信番号など自社仕様にある情報を使って重複を判断します。価格と時刻だけの安易な一意制約は、正当なデータを失う原因になります。
再接続、ネットワーク、複数配信経路により、イベントが時刻順で到着しないことがあります。発生時刻と受信順序を残し、遅着イベントをどこまで再集計へ反映するかを決定。確定済みの足が更新された場合は改訂状態を表示します。
「平均イベントサイズ × 1秒あたりの件数 × 収集秒数」が原データ量の出発点です。たとえば設計上の仮定として200バイト・毎秒1,000件・8時間なら約5.76GBで、インデックス、ログ、複製、バックアップは別途必要です。実測したピーク値と保存期間を基に、分割、圧縮、保持期限を決めます。
単一端末のローカル保存、複数担当者での共有、大量時系列の分析では要件が異なります。SQLite、MySQL、PostgreSQLなどを候補に、同時書き込み、障害復旧、既存運用、検索負荷で選定します。採用バージョンと利用可能な機能は個別に確認します。
同じ1分足でも、約定価格、Bid、Ask、Midのどれで作るかによって値は異なります。時間区間の開始・終了の扱い、同一時刻の並び順、取引のない区間の扱いを定義します。配信件数を出来高と呼ばず、実際の約定数量が取得できる場合にその合計を出来高として扱います。
価格履歴だけでは、当時利用していた設定、監視銘柄、条件式、モデル版、保有状況を再現できません。戦略設定と入力データの版を保存し、同じ条件で再計算できる構成にします。担当者の裁量判断がある場合は、判断時刻とメモを紐付けます。
未確定足の終値、後から訂正された情報、取得時点では未公表だった資料を、過去の判断へ混ぜないようにします。公開時刻と自社が取得した時刻を分け、実際にその時点で利用できた情報で検証します。時系列順の学習・検証分割もこの前提に合わせます。
手数料、Bid / Ask、想定する処理遅延、部分約定や未約定の扱いをモデル化します。価格が一度触れたことだけで、必ずその価格で約定したと仮定しない設計が必要です。これらの条件を結果と一緒に保存し、条件を変えた比較を可能にします。
再生中は実際のPC時刻ではなく、保存したイベントの時刻を基準に画面や指標を更新します。途中から再生するときは、その時点以前の状態を復元。巻き戻し時は派生状態を初期化または再構築し、表示と計算のずれを防ぎます。
この開発はデータ収集・分析・運用を支える基盤の構築です。特定の売買手法の収益や将来の予測精度を保証するものではなく、検証の条件と結果を自社で確認できる環境を整えます。
接続が戻っても、切断中の履歴が自動的に埋まるとは限りません。購読の再登録、保存位置の確認、履歴の再取得、重複除外、欠損の明示をそれぞれ実装します。履歴提供がないデータは復元できないため、継続性が必要ならサーバー側の保存も用意します。
ブラウザから要求を送れた状態、自社サーバーが受け付けた状態、後続処理が確定した状態を分離します。通信断で結果が不明な場合は、注文IDで状態を照会。自社サーバー側に冪等キーの検証を設け、同一要求の再受信を重複注文として処理しない仕組みを検討します。
入力画面の警告だけでなく、サーバー側で権限、数量、金額、ポジション上限を検証します。画面の停止ボタンはその操作範囲を明示し、新規送信停止と既存注文の取消完了を区別します。取消要求に対しても結果を照合します。
注文・約定の確実な記録と、画面の滑らかな更新では重要度が異なります。受信、保存、集計、描画を分離し、描画回数の制御、バッチ登録、適切なキューを設計。CPU、メモリ、ディスク待ち、キュー滞留を測定して調整します。
接続状態、最終イベント時刻、最終保存時刻、未保存件数、解析失敗件数、欠番、DB容量を一覧化します。価格が動いていないだけなのか、データが止まっているのかを、ハートビートや他の状態情報と合わせて判定します。
プロセス再起動、DB停止、ディスク容量不足、ネットワーク切断を想定し、どこから再開できるかを確認します。受信直後のメモリにしか存在しないイベントはプロセス停止で失われ得るため、必要な保証水準に応じて永続キューやサーバー保存を採用します。
トレードの履歴だけでなく、判断ルール、検証条件、プロンプト、監視リストも自社の運用資産です。保存場所とアクセス権を整理し、担当者のPCに分散した情報を継続的に管理できるようにします。
ブラウザの業務用プロファイル、検証用プロファイル、接続先を区別します。CDPの制御経路やローカル連携サービスはアクセス範囲を限定し、不要な外部接続を許可しない構成にします。認証トークンをログへ平文で残さない設計も含めます。
配布ファイルの暗号化、署名、アクセス制御、ライセンス管理、利用期限などを組み合わせます。端末で復号して実行する情報を完全に秘匿できると保証せず、秘密にしたい処理はサーバー側へ置く選択肢も含めて設計します。
ローカルLLMに渡す対象文書、取引データ、生成結果の保存先を定義します。外部通信の有無、モデル取得・更新方法、ユーザーごとの閲覧範囲を整理。推論結果と確定済みの数値を区別して表示します。
生データ、集計、操作ログで必要な保持期間を分け、バックアップと復元手順を用意します。保管領域の暗号化だけでなく、鍵の管理、復元できる担当者、削除のタイミングも決めます。
| 領域 | 技術・構成の候補 | 確認する条件 |
|---|---|---|
| ブラウザ | Chrome / WebView2 / CDP / HTML・JavaScript | 既存画面、配布方式、更新方法、制御対象 |
| ネイティブ | Windows / C++ / C++Builder / DLL | 既存資産、CPU構成、ランタイム、長時間稼働 |
| 通信 | WebSocket / HTTP / SSE / IPC | イベント形式、認証、接続数、再取得機能 |
| 保存 | SQLite / MySQL / PostgreSQL / ローカルファイル | 同時利用、データ量、保持期間、復旧要件 |
| 分析 | ネイティブ計算 / Python連携 / ローカルLLM | 再現性、計算負荷、依存環境、入力データ |
| 業務連携 | Excel / FileMaker / 自社API / CSV・JSON | 利用バージョン、項目仕様、更新頻度、権限 |
上記は構成候補です。対応OSや各製品のバージョン、必要なライセンス、サポート条件は案件ごとに確認します。C++による実装でも処理速度はデータ構造やI/Oに左右されるため、実際の対象データで測定し、要件に合った方法を選びます。
費用は、既存システムの構造、通信仕様、保存量、必要な画面、注文機能の有無、復旧要件によって変わります。調査・試作・本実装・運用整備の単位に分け、優先度の高い機能から見積もります。
| 段階 | 主な成果物 | 確認すること |
|---|---|---|
| 調査・仕様整理 | 対象画面・通信の調査結果、データ項目表、構成案 | 取得対象と取得できない範囲、必要な追加改修 |
| 小規模な試作 | 限定銘柄・限定イベントの保存、確認用の画面 | 取得の正しさ、保存速度、必要な履歴 |
| 本実装 | 専用ブラウザ、連携処理、DB、設定・配布物 | 機能、異常時動作、権限、既存業務との整合 |
| 運用整備 | 手順書、監視項目、復旧・バックアップ手順 | 担当者が起動・確認・復旧できること |
ソースコードの提供、社内配布可能な範囲、導入端末数、追加開発、保守、外部コンポーネントの扱いは見積もり時に明確にします。既存資産を使える部分と、新規実装が必要な部分を整理してご提案します。
自社画面、保存したいデータ、担当者の作業、既存DB、PC台数を確認します。画面資料や匿名化した通信サンプルがあると、検討を具体化できます。
銘柄・時刻・価格種別・注文IDの定義を合わせ、保存と画面操作の範囲を決めます。画面を閉じたときの収集要件も確認します。
対象を絞って取得・保存・表示を試作。正確性、遅延、処理量、既存画面への影響を測定し、構成を確定します。
通常動作に加えて切断、再接続、重複、欠損、DB停止を確認。注文支援がある場合は、検証環境で状態遷移と上限検証を確認します。
端末へ導入し、設定、バックアップ、復旧方法を共有。運用状況を踏まえて分析機能や連携先を追加します。
はい。既存画面を活用する構成から検討できます。Chromeを制御する方式、WebView2で表示する方式、自社画面へ連携処理を追加する方式などを、現在の認証・通信・運用方法に合わせて選びます。
可能です。自社Webシステムの限定されたイベントを取得し、既存DBへ登録する処理だけでも検討できます。全面的な画面変更を伴わない導入も可能です。
自社システムから対象ブラウザへ実際に送信されているデータで、解析可能な仕様があれば対象にできます。ブラウザへ配信されていないデータには、自社サーバー側のAPIや追加配信が必要です。
配信元からの網羅性、接続状態、購読範囲、保存方式によって変わります。ブラウザ監視だけで完全性を保証せず、必要な水準に応じてサーバー保存、履歴補完、永続キュー、欠損検知を組み合わせます。
ブラウザ受信だけの構成では、そのブラウザの終了で収集も止まります。継続が必要なら自社サーバーやWindowsの常駐処理へ収集を分離し、専用ブラウザを表示・操作端末にする構成を選びます。
可能ですが、銘柄、限月、契約倍率、通貨、価格種別、取引日を区別する設計が必要です。共通項目と商品固有項目を分け、同じ意味の値だけを比較できるようにします。
自社の注文管理機能に対する入力補助、確認・承認、状態照会、送信連携を検討できます。サーバー側の権限・上限検証、二重送信対策、検証環境を含めて設計します。
連携対象のバージョンと項目仕様を確認して構成を選びます。大量のティックはDBへ、集計結果と必要な履歴は台帳へ、と役割を分ける方法が有効です。
ハードウェア、モデル、データ量に合う構成で、ローカルLLMや自社の分析処理と連携できます。参照元、計算条件、生成時刻を残し、数値計算と文章生成を分けて確認できるようにします。
対象データと機能範囲を確認してお見積もりします。まず通信仕様の確認と限定した試作を行い、必要な追加開発と運用要件を具体化する進め方をご提案します。
可能です。Windows連携、CDPによる取得、DB書き込み、既存C++の組み込みなど、担当範囲を限定した開発にも対応する構成を検討します。インターフェースと検証条件を先に合意します。
自社システムの概要、画面資料、保存したい項目、想定データ量、既存DB、使っているPCとブラウザが分かれば検討を始められます。認証情報を含まないサンプルや匿名化したログがあると調査しやすくなります。
「この価格を保存したい」「この画面とDBをつなぎたい」「この操作をまとめたい」。具体的な一機能からご相談ください。
現在の自社システム、必要なデータ、既存のPC・DB環境をお知らせいただければ、取得方法と実装範囲から整理します。
開発・お見積もりについて相談する →