こんにちは、ぼっちbotterよだかです。
今日は、外部ソースを使ったLead-Lag観測機を少し前に進めた日でした。ETF市場が実際にliveになる時間帯で挙動を確認しつつ、時間外取引という存在そのものを理解し、観測機の見え方も整理。さらに、これまでの基準形に加えて「到達」「持続」「減衰」という3つの構造定義を並列で見られるようにしました。まだ「構造あり」とまでは言えませんが、少なくとも今何を定義し、何が見えていないのかは前よりずっとはっきりしてきました。
-
-
🛠️開発記録#512(2026/4/13)リードラグ研究DAY8「見える情報を減らし、判断できる画面に戻した話」
続きを見る
1. ETFのlive帯で観測機を実地確認し、まずは挙動の土台を揃えた

今日の作業は、まずETF市場が実際にliveになる時間帯で観測機の挙動を確認したところから始まりました。ここは机上では詰めきれない部分で、実際に市場が動いている時間に接続しながら見ないと、データ取得の問題なのか、時刻解釈の問題なのか、パネル側の表示なのかが切り分けにくいです。今回は実際にETF市場が開いているはずなのに live 扱いになっていない場面があり、そこを掘っていった結果、データ取得そのものではなく、Nasdaq由来の時刻解釈が原因で stale 判定に落ちていたことが見えてきました。
この修正を通したことで、少なくとも「ETFソースがちゃんと生きている時間帯に、観測機がその事実を正しく受け取れる状態」までは持っていけました。これは見た目の不具合修正というより、以降の観測や定義比較を行うための前提条件を整えた作業です。ここがズレたままだと、あとでどれだけ構造定義を増やしても、「そもそもlive時のデータをまともに見ていたのか」が怪しくなってしまいます。
その流れで、米国ETFにはプレマーケット、通常時間、アフターマーケットという時間帯の違いがあることも改めて認識しました。最初からこれらを厳密に分離して扱うのではなく、現段階ではひとまず同じ情報源として取得しつつ、あとで分けて分析できるようにしておく、という方針で進めています。今の目的は「ETF由来のリアルタイム情報全体がBinance Japanに対して何かleadを持つか」を観測することなので、まずは広く取り、その後で時間帯ごとの差を見に行く順番の方が自然だと判断しました。
その上で、従来の表示ではパネルが長すぎて見づらく、何を定義して何を判定しているのかも一目で伝わりにくかったため、ここも整理を入れました。名前を短くし、GlobalFX表記を実際の中身に合わせてGlobalBTCへ寄せ、さらに各パネルの注釈欄に「今この構造判定が何を見ているのか」をコード準拠で書くようにしています。今日は単に実装を積んだというより、観測機が“何を見ている装置なのか”を言語化しながら整えたという感じです。
2. Lead-Lag構造の定義を4方式に広げ、比較できる形へ整理した
土台側の修正が一段落したあとは、Lead-Lag構造そのものの見方を広げる作業に進みました。これまでは、いわば基準形としての fixed-horizon 型を中心に見ていましたが、それだけだと「ある時点で追随しているかどうか」という点の観測に寄りすぎます。そこで今回は、その基準形を残したまま、新たに「到達」「持続」「減衰」という3つの定義を追加し、4方式を並列で比較できるようにしました。
それぞれが見ているものは少しずつ違います。到達型は、lead側でイベントが起きたあとに lag側が一定時間内に届くかどうか、つまり lag側の反応の時間幅を見るものです。持続型は、lead側の状態がしばらく続いている間に lag側がついてくるかどうかを見るもので、単発イベントではなく状態場を起点にした見方です。減衰型は、方向追随そのものよりも、leadとlagのあいだに生じた residual があとから縮んでいくかを見るもので、価格整合の遅れに近い構造を見にいく定義になっています。ここに従来の基準形を加えることで、「lead-lag をどう定義すると構造候補が見えるのか」を横並びで比較できるようにしました。
重要だったのは、見た目だけ整えるのではなく、比較可能な形に揃えたことです。4方式それぞれについて、GlobalBTC / ETF / CME の3市場を横に並べ、構造判定とEVを同じUIで見られるようにしました。構造判定は 0 / 1 / 2 の共通形式にして、0を構造なし、1を構造ありだがEVはプラスでない状態、2を構造ありかつEVもプラスの状態として整理しています。こうしておくことで、市場ごとの差だけでなく、「どの構造定義なら反応が見えるのか」「構造はあっても収益化できていないのか」を同じ視界の中で見られるようになりました。
この段階ではまだ、どれか一つの定義で明確に勝ち筋が見えたわけではありません。ただ、少なくとも「今までは一つの切り方でしか見ていなかったものを、時間幅や整合過程まで含めて複数の切り口で見られるようにした」という意味では、かなり前進しています。これで構造を探すための問いの立て方を一段まともにすることができました。
3. 画面の役割を削ぎ落とし、「今何を定義して見ているのか」を前面に出した

構造定義を増やしたあとにやったのは、ダッシュボードの役割整理です。今回の4方式比較は、定義が増えたぶん放っておくと画面の情報量も一気に増えます。そこで、診断用のパネルは折りたたみ、主画面には各定義ごとの構造判定とEVだけを残す形に寄せました。まず見る場所と、必要になったときだけ掘る場所を分けたわけです。
ここで特に手を入れたのが、パネル名と注釈です。従来の長いタイトルでは画面幅に収まらず、どの市場の何の判定なのかが一目で分かりにくかったため、表記を短く整理し直しました。さらに、「判定」ではなく「構造判定」と明示し、GlobalFX のような曖昧な表記も、実際の中身に合わせて GlobalBTC 側へ寄せています。名前だけ短くすると逆に意味が薄くなるので、その補完として注釈欄にコード準拠の定義文を入れ、各パネルが何を構造ありとみなしているのかをその場で読めるようにしました。
この修正で大きかったのは、見た目がきれいになったことではなく、「今どの定義で、何を、どの条件で見ているのか」を曖昧にしない状態を作れたことです。観測機は、動いているだけでは足りません。とくに複数定義を並べ始めた段階では、後から振り返ったときに「この1は何を意味していたのか」「このEVはどの構造定義に対応していたのか」が言えないと、比較しているつもりで比較できていない状態になりやすいです。今回はそこを避けるために、UIの整形と定義の言語化をセットで進めました。
結果として、今日は単にパネルを増やした日ではなく、観測機の主画面を「情報が多い画面」から「問いと判定が対応している画面」へ寄せた日になりました。4方式を並べたことで、構造が強く見えているとはまだ言えない一方で、少なくとも何が立っていて何が立っていないのか、そしてそれがどの定義に基づくものなのかは、前よりかなり明確になっています。
4. 構造が見えたわけではないが、「見えていない」の中身はかなり具体化した
ここまでの修正を入れたことで、今日の時点ではっきりしたのは、「Lead-Lag構造がある」と言える段階ではまだない、ということです。実際、4方式を並べて見ても、構造判定が強く立ち続けているわけではなく、EVも市場によってはかなり弱いままです。ただし、これは単なる空振りではありません。以前のような「なんとなく弱そう」ではなく、「どの定義で見てもまだ強い反応は出ていない」「構造があるとしても、少なくとも今の観測範囲では収益構造としては確認できていない」というところまで、かなり具体的に言える状態になりました。
この違いは大きいです。観測機をいじっていると、実装が進んだこと自体で前進した気になりやすいし、逆に結果が出ていないと何も進んでいないようにも見えやすい。けれど今回は、そのどちらでもなく、問いの形と観測の形を揃えたうえで「今はまだ見えていない」と言えるようになったことに意味があります。これは、単に否定材料が増えたという話ではなく、どこまでが土台の問題で、どこからが構造そのものの問題なのかを切り分けられるようになった、ということでもあります。
また、今日の流れを通して、観測対象の性質にこちらの理解が追いついた部分も大きかったです。ETF市場のlive時間でしか見えない不具合があり、プレ・通常・アフターという時間帯の違いもあり、さらにその上で構造定義の切り方によって見えるものが変わる。こうした前提がある以上、最初から完璧な定義を置いて一発で正解に当てるのは難しい。だからこそ、まずは基準形を残しつつ、異なる見方を並べ、何が立たず、何が薄く、何がそもそも観測対象として不安定なのかを順に分けていく必要があります。今日はその分解がかなり進みました。
整理すると、今日やったことは「構造を見つけた」ではなく、「構造を探すための観測機を、ようやく比較可能な形にした」ということになります。結果そのものはまだ弱い一方で、ここから先は、単に画面を眺めるのではなく、どの定義が本当に候補として残るのかを見ていける状態に入っています。ここまで来ると、次のアイデアや次の仮説修正も、以前よりずっと事実ベースで出しやすくなります。
5. 今見ている4つの構造定義を整理する ― 基準形と、新しく追加した3パターンについて
ここまでの実装で、Lead-Lag構造は4つの定義で並列に見られるようになりました。
基準形を残しつつ、そこから別の時間幅や別の力学を見に行く3パターンを追加した形です。
今回この整理が重要なのは、「何となく反応していそう」ではなく、今どの定義で何を構造ありと呼んでいるのかをはっきりさせるためです。定義が曖昧なままだと、構造があるのかないのかではなく、「何を見ているのか分からないまま数値だけ眺めている状態」になりやすいです。そうなると、たとえパネルが増えても比較していることにはなりません。
そのため今回は、4方式すべてについて共通のUIで見られるようにしつつ、各パターンが何を見ているのかを切り分けて扱えるようにしました。構造判定は共通で、0が構造なし、1が構造ありだがEVはプラスでない、2が構造ありかつEVもプラスという整理です。ただし、「構造あり」の中身は4方式それぞれで異なります。見た目は揃えつつ、意味は方式ごとに分けている、というのが今回のポイントです。
以下、今見ている4方式を順番に整理します。
5-1. 基準形 ― まずは「ある時点で追随しているか」を見る
最初の基準形は、従来から使ってきた fixed-horizon 型です。今は「固定」というより、基準形あるいはベンチマークとして置いているものに近いです。
これは一言でいえば、lead側で一定以上の変化が起きたあと、lag側が所定の horizon 時点で同方向に追随しているかを見る定義です。
たとえば GlobalBTC 系では、lead側の fair value が過去300秒比で一定以上動いた場面を切り出し、そのあと Binance Japan BTC/JPY が primary horizon の時点で同方向に動いていたかを見ます。そのうえで、直近30分の valid sample 数、follow rate、gross move の中央値などを使って「ひとまず構造候補あり」と言えるかどうかを判定します。
この基準形の良いところは、見ているものが明快なことです。
「lead が先に動いたなら、代表的なある時点で lag も同方向に動いているはずだ」という、ごく基本的な問いになっています。4方式を並べるにあたっても、まずこの基準形があることで、新しく追加した定義が何を拡張しているのかが分かりやすくなります。
一方で、弱点もあります。これはどうしても点で見る定義です。そのため、
- lag が途中で一度追随したが、horizon 時点では戻っていた
- lag の反応が遅く、代表時点ではまだ届いていなかった
- lag はじわじわ追随しているが、特定時点だけ見ると弱く見える
といったケースを取りこぼしやすいです。
つまり、この基準形で「構造なし」と出ても、それは必ずしも「lead-lag が存在しない」ことを意味しません。むしろ、この見方では拾えない形で構造がある可能性が残ります。今回、新しい3パターンを追加した理由はまさにそこにあります。
この基準形において「アリ」と言えるのは、少なくとも直近30分でサンプルが積み上がり、primary horizon で同方向追随が一定以上の割合で確認され、中央値ベースでもプラスが維持されている状態です。そこにEVのプラスが乗れば、構造候補にとどまらず、収益構造としての可能性まで見えてきます。
逆に「アウト」なのは、
- sample が足りず、そもそも判定土台がない
- follow rate が低く、同方向追随が安定しない
- gross move の中央値がプラスにならない
- 構造判定が立ってもEVが明確にマイナス
といった状態です。
この場合は、基準形のまま追っても収穫が薄い可能性が高いです。
5-2. 到達型 ― lag側が「いつ」「どこまで」届くかを見る
新しく追加した1つ目が、follow到達時間型です。
これは、leadイベントのあとに lag側が一定時間内に届いたか、届いたなら何秒で届いたかを見る定義です。
基準形が「ある時点でどうだったか」を見るのに対して、到達型は時間幅の中で lag がどう反応したかを見ます。つまり、点ではなく、lag側の反応曲線を見る発想です。
この定義で見ている問いはかなりシンプルです。
leadが動いたあと、lagは遅れてでも追いつくのか。追いつくなら、その反応はどれくらい速いのか。
ここで重要なのは、「最終的に一度でも届いたか」という点です。基準形だと、代表時点で届いていなければ取りこぼしますが、到達型なら、
- 10秒後に届いた
- 40秒後に届いた
- 一度届いたが、その後は失速した
といった違いまで見られます。
この型が強いのは、構造はあるがタイミングが固定でないケースに対してです。現実の lead-lag は、必ずしも「60秒後に綺麗に追随する」わけではありません。早く届くときもあれば、遅れて届くときもあります。到達型は、そうした timing のブレを含めて構造を見に行く定義です。
この型で「アリ」と言えるのは、
- 一定window内での到達率が十分ある
- 到達時間の中央値が極端に遅すぎない
- 最大追随量がある程度確保されている
- 到達しても、その後の失速が多すぎない
- EVベースでも極端な悪化が見られない
といった状態です。
逆に「アウト」なのは、
- そもそも一定window内にほとんど届かない
- 届くとしても遅すぎて、lead-lag というより偶然の追随に近い
- 一度届いても、そこからすぐ逆行してしまう
- 到達率はあっても、EV換算するとコスト負けする
というケースです。
到達型を見て次にやる可能性が高い打ち手は、到達windowや到達幅の見直しです。
今の閾値で届かないのか、それとも本当に届かないのかは分けて考える必要があります。とくに、「60秒では弱いが120秒なら届く」「届くが伸びが小さい」といったパターンは次の調整対象になります。
5-3. 持続型 ― lead側の状態が続いている間に、lagが応答するかを見る
2つ目の新定義が、state持続型です。
これは単発イベントではなく、lead側で発生した状態が一定時間続いている間に、lag側がついてくるかを見るものです。
ここでの発想は、基準形や到達型とは少し違います。
基準形や到達型は、「leadで何か起きたあと、lagがどう反応したか」を見るイベント起点の考え方です。一方で持続型は、「lead側の状態場」が先にあり、その継続中に lag が応答するかを見るものです。
つまり問いとしては、
lead側の方向性や歪みが数秒から数十秒続いているなら、その継続時間そのものが lag の反応を生むのではないか
というものになります。
これはかなり重要です。なぜなら、市場の構造は必ずしも単発ショックで出るとは限らないからです。むしろ、
- lead側でじわじわ方向性が出る
- その状態がしばらく続く
- lag側は後からじわじわ寄ってくる
という形の方が自然な場合もあります。とくに、ローカル市場や反応が遅い市場を相手にするときは、こちらの方が本質に近いことがあります。
この型で「アリ」と言えるのは、
- lead側の状態が短すぎず、一定時間維持されている
- その状態が続いている間に lag 側の追随や整合が確認できる
- 追随後の反転が少なく、持続率がある程度ある
- 一時的なノイズではなく、状態継続と lag 応答が結びついている
といったケースです。
逆に「アウト」なのは、
- state と呼べるほど lead側の状態が続かない
- 状態が続いても lag側がほとんど反応しない
- 反応しても、その後すぐ逆行して持続性がない
- 定義を広げすぎた結果、何でも state に見えてしまう
というケースです。
この型の難しさは、state の定義が広がりやすいことです。ここを雑にすると、何でも state に見えてしまい、結局何も言えなくなります。そのため次の打ち手としては、state の定義を増やすより先に、今置いている状態が本当に lag 応答と結びついているかを観測することが優先になります。状態の強さ、継続時間、方向性の明確さなどをどう切るかが、次の大きな論点になりやすいです。
5-4. 減衰型 ― lag市場が「方向追随」ではなく「価格整合」しているかを見る
3つ目の新定義が、residual減衰型です。
これはかなり重要です。とくに今の Binance Japan 文脈では、本筋にかなり近い定義です。
この型が見ているのは、単なる方向追随ではありません。
leadで説明されるべき価格に対して、lag市場の residual や premium があとから縮んでいくかを見ています。
つまり問いは、
lag は lead を方向として追っているのか、それとも遅れて価格整合しているのか
というものです。
たとえば、Global BTC/USD × USD/JPY から fair value を作ったとします。その fair value に対して Binance Japan BTC/JPY がズレているなら、そのズレを residual や premium として測れます。そこへ lead側の変化が入ったあと、そのズレが後から縮むなら、それは単なる逆張りではなく、lag市場が遅れて整合している過程として読めます。
この定義が強いのは、今の研究対象にかなり合っていることです。
いま見たいのは「Binance Japanがグローバル情報に対してどれだけ遅れて整合するか」であって、単純な方向当てではありません。その意味で、減衰型はかなり自然な問いの立て方です。
この型で「アリ」と言えるのは、
- leadイベントや lead状態のあとに residual の絶対値が一定以上縮小する
- 縮小率が安定している
- 縮小が単発ではなく、ある程度再現する
- residual の改善がEVベースでも完全なコスト負けになっていない
というケースです。
逆に「アウト」なのは、
- residual がほとんど縮まらない
- 一度縮んでもすぐ再拡大する
- fair value 側の定義が甘く、残差の意味自体が怪しい
- residual は縮んで見えるが、実際には単なるノイズ回帰にすぎない
- 整合は見えても、執行コスト込みだと回収不能
というケースです。
この型を見て次にやる可能性が高い打ち手は、residual の定義そのものの検証です。
つまり、「今使っている fair value が本当に妥当なのか」「この residual は何を意味しているのか」をもう一段確かめる方向です。減衰型は筋が良い一方で、残差の定義がズレていると全部の解釈がズレます。ここは今後かなり大事になります。
5-5. 4方式を並べる意味 ― どの市場が強いかではなく、どの定義で構造が見えるか
今回4方式を並べた意味は、単にパネルを増やすことではありません。
本当にやりたかったのは、どの市場が強いかを見ること以上に、lead-lag をどう定義すると構造が見えるのかを比較することです。
たとえば今後、
- 基準形はずっと弱い
- 到達型では少し反応が出る
- 持続型ではさらに明確になる
- 減衰型だけ継続的に立つ
となれば、「方向追随としては薄いが、価格整合遅れとしては見える」という判断ができます。逆に、4方式すべてが弱いなら、少なくとも今の対象と今の設定では lead-lag は薄い、とかなり言いやすくなります。
これはかなり大きい違いです。
前までは、一つの切り方で弱かったときに、それが「構造がない」のか「切り方が悪い」のかが分かりにくかったです。今は、その区別をつけるための比較軸ができました。
5-6. 現時点でのまとめ ― まだ強い構造は見えていないが、問いの立て方は前進した
現時点では、4方式を並べたからといって、どれか一つが明確に勝ち筋として立っているわけではありません。構造判定が継続的に強く立っているとはまだ言えず、EVも市場によってはかなり弱いままです。
ただし、それでも前進です。
今は少なくとも、
- 基準形で見て弱いのか
- 到達としてはあるのか
- 状態持続としては見えるのか
- 価格整合遅れとしては残るのか
を分けて見られるようになっています。
これは「構造がある」と言う段階ではない一方で、「構造が見えていない」の中身をかなり具体的にした状態です。
次にやる可能性が高い打ち手も、前よりはっきりしています。
基準形をさらに磨くより、まずは新しく追加した3パターンがどこで反応するのかを見ていくことです。到達型なら到達率と到達時間、持続型なら state 定義の妥当性、減衰型なら residual の意味の検証。この3本をそれぞれ見ていけば、今後どの定義を主線候補として残すかの判断もしやすくなります。
整理すると、今回の追加は「正解を見つけた実装」ではありません。
lead-lag 構造をどう切ると見えやすいのかを比較するための実装です。
その意味で、今日は結果そのものよりも、問いの立て方と観測の切り方を一段まともにした日だったと言えます。