こんにちは、ぼっちbotterよだかです。
今日は、BinanceJapan向けのリードラグ観測・判定機について、これまでの「とりあえず動くプロトタイプ」から一歩進めて、各市場の性質を踏まえた本格的なチューニングに着手しました。Global BTC/USD×USD/JPY、CME、米スポットBTC ETFを同じ型で雑に扱うのではなく、それぞれの取引時間や制度距離、BinanceJapan BTC/JPYとのつながり方を整理し直し、その前提に沿う形で観測機の設計も修正しています。今日は、調べたこと、そこから導いた設計方針、実装した内容、そして現時点で見えている限界までまとめます。

-
-
🛠️開発記録#515(2026/4/16)Binanceリードラグ研究DAY10 ― 観測機の論点をいったん分解し、未解決の部分を洗い出した話
続きを見る
1. 今日の方針
今日は、観測機の閾値をちょこちょこいじって終わる日にはしないと最初に決めていました。
というのも、今までの観測・判定機は一応動いてはいたものの、正直まだ「とりあえず同じ器にいろいろ流し込んで見ている」感が強かったからです。これだと、Global BTC/USD×USD/JPY も、CME も、米スポットBTC ETF も、性質の違う市場なのに、同じような顔で並べて見てしまうことになります。さすがにそれでは雑すぎるな、というのが今日の出発点でした。
そこで今日は、いきなり「この条件なら勝てる」とか「この市場は弱いから切り」といった結論を出しにいくのではなく、まず各市場の違いや Binance Japan BTC/JPY とのつながり方を整理し、その上で観測機の設計を市場別に寄せていくことを主目的にしました。ざっくり言えば、プロトタイプを「市場ごとに意味のある観測機」に昇格させる日です。
もう少し具体的に言うと、今日やりたかったのは次の3つです。
ひとつ目は、各市場の取引時間や制度的な距離、価格の伝わり方をちゃんと調べること。
ふたつ目は、その違いを踏まえて、観測・判定ロジックの時間窓や閾値を市場ごとに仮置きし直すこと。
そして三つ目は、実装上も「観測不能」と「観測できたけど弱い」を分けて読めるようにすることでした。
要するに今日は、エッジの白黒をつける日というより、その前段階として「ちゃんと白黒をつけられる器に近づける日」だった、という感じです。ここを雑にやると、後でどれだけパネルを眺めても判断がブレるので、地味だけどかなり大事な工程でした。
2. 各市場の違いと、Binance Japan とのつながりを整理した
今回まずやったのは、「どの市場を lead として見るのか」を雑に決めないことでした。
同じ BTC 関連市場といっても、Global BTC/USD×USD/JPY、CME、米スポットBTC ETF は、取引時間も制度も価格の作られ方もかなり違います。ここを曖昧にしたまま観測機だけいじると、結局「その判定って何を見てるの?」が曖昧なままになるんですよね。なので、今日は先に各市場の性質を整理しました。
まず、大まかな違いを並べるとこうなります。
| 市場 | 何者か | 取引時間の性質 | Binance Japan BTC/JPY との距離感 | まず観測すべき中核 |
|---|---|---|---|---|
| Global BTC/USD × USD/JPY | BTC/JPY の合成基準線 | BTC/USD は 24/7 寄り、USD/JPY はほぼ 24/5 | もっとも近い | 価格、FX、fair value、residual |
| CME Bitcoin futures | USD建て・現金決済の制度先物市場 | 24/5、週末休場あり | 遠いが強い | 価格、session、lag 側の follow |
| 米スポットBTC ETF | 米株市場に上場した制度商品の市場 | 米株時間帯中心 | かなり遠い | session、価格、制度フロー窓としての反応 |
| Binance Japan BTC/JPY | 今回の lag 側、日本向けの JPY 建て現物市場 | crypto 現物側 | 基準 | どれだけ遅れて、どう追随するか |
この表の中で、いちばん扱いがはっきりしていたのは Global BTC/USD×USD/JPY です。
これは「何となく相関がありそうな別市場」ではなく、そもそも BTC/JPY を作る構成要素そのものです。USD/JPY は世界でも大きい通貨ペアで、日本銀行も日次の主要公表対象として扱っていますし、BTC/USD を JPY に変換するなら、ここは脇役ではなく中心線です。なので、これは最初から「最優先の基準線」として扱うのが自然だと判断しました。なお、Global BTC/USDやUSD/JPYの価格の一次ソースは過去の記事にまとめていますが、その時の状況によって少しずつ変えていくようにしています。おそらく、一般的には一次ソースとしてここが揺らぎ続けるのはよくないのでしょうが、自分が信頼できるもの且つ予備軸を常に用意しておくというのが現状の最適解かなと思っています。lead-lagの構造をどう定義するかによって必要なリソースが変わるので必ずしも高頻度なものが必須というわけでもないです。(この点についてまとめると記事がまるまる一本書けてしまうので、今回は割愛します)
一方で、CME はかなり性格が違います。
CME Bitcoin futures は USD 建て・現金決済・BRR ベースの規制先物市場です。つまり、24/7 の暗号資産現物市場とは違って、制度市場の都合と参加者の都合で動く市場なんですよね。なので、Binance Japan BTC/JPY に対して「近い市場」とは言いにくい。ただ、その代わり制度市場としての価格シグナルは強い可能性がある。要するに、CME は「近くはないが、強い市場」という整理がいちばんしっくりきました。
米スポットBTC ETF はさらに別物でした。
IBIT、FBTC、ARKB、GBTC などは、それぞれ上場市場も参照 index も完全には一致していませんし、そもそも証券市場の商品なので、米株時間帯にかなり強く縛られます。これは 24/7 の BTC price discovery 市場というより、「米株時間帯に制度資金が BTC エクスポージャーを売買する窓」と見た方が自然でした。つまり ETF は、価格系列として見るだけでなく、session そのものが大きな意味を持つ市場だと考えたわけです。
ここで逆に、lag 側である Binance Japan BTC/JPY も整理し直しました。
Binance Japan は日本の登録交換業者で、日本向けに切られたプラットフォームです。だから、グローバル Binance 本体の主導市場というより、日本法域下の JPY 建て現物市場として見る方が自然です。しかも BTC/JPY の手数料条件もキャンペーンで変わりうるので、execution の見え方も常に一定ではない。つまり、今回の lag は「グローバル BTC 市場の中心」ではなく、グローバルな価格発見や為替、制度市場のフローを受けて反応するローカル JPY 現物市場、という位置づけになります。
この整理をしたことで、少なくとも今日の時点で次のことはかなりはっきりしました。
まず基準線として置くべきもの
Global BTC/USD×USD/JPY。
これは最も近く、BTC/JPY の説明線として自然です。ここが曖昧だと、他市場を見ても話が散らかります。
条件付きで観測する市場
CME。
制度市場として強い lead 候補ではあるけれど、24/7 ではないし JPY 建てでもないので、session 条件つきで扱うべきです。
さらにセッション依存が強い市場
米スポットBTC ETF。
これは常時の price lead というより、米株時間帯の制度フロー窓として見るのが自然でした。短秒のリードラグ候補として即採用、みたいな扱いはちょっと雑すぎると感じました。
今回の調査で個人的に大きかったのは、「全部 BTC 関連市場だから、同じ形で並べて比較しても大丈夫だろう」という雑な見方を、かなり切れたことです。
実際には、
- 基準線として近い市場
- 制度市場として強いが距離のある市場
- セッション依存の強いフロー窓
が混ざっている。
この違いを踏まえずに同じ型で見ていたのが、ここまでのプロトタイプの限界だったんだと思います。
なので、この章でやったことを一言でまとめると、
「lead 候補を全部 BTC 市場として一括りにするのをやめて、Binance Japan BTC/JPY との接続のされ方で整理し直した」
ということになります。ここが固まったことで、次の章で書く設計方針もかなりクリアになりました。
3. そこから導いた考えと、今日の設計方針
各市場の違いを整理してみて、今日いちばんはっきりしたのは、**「全部を同じロジックで見続けるのは、やっぱり無理がある」**ということでした。
今さらと言えば今さらなんですが、実際に取引時間、価格距離、制度距離、Binance Japan BTC/JPY へのつながり方を並べてみると、同じ器に同じ意味で流し込む方がむしろ不自然なんですよね。
たとえば Global BTC/USD×USD/JPY は、BTC/JPY の基準線として最も近い存在です。
ここで主に見たいのは、まず fair value(理論上の妥当価格) と residual(”残差"とか”取り残されたズレ”)です。
一方で CME は、近い市場ではなく、制度市場としての価格シグナルを持つ市場です。
ETF はさらに、米株時間帯に限定された制度フローの窓として見る方が自然でした。
つまり、同じ「lead 候補」でも、役割が全然違う。
だったら観測機も、少なくとも次のレベルでは市場ごとの差を持たせないといけない、というのが今日の設計判断でした。
今日の設計方針は、大きく4つあった
1. 市場ごとに意味の違う観測機にする
まず、ここが一番大きいです。
今までは「同じ型で比較すること」にかなり寄っていましたが、今日はそこから一歩進めて、市場ごとに意味を持った観測機にすることを優先しました。
もちろん、比較できること自体は悪くないです。
ただ、比較のために意味が薄くなるなら本末転倒なんですよね。
なので今回は、
global_fvcme_btcus_spot_etf
ごとに、market profile を持たせる方向で整理しました。
ざっくり言うと、「同じパネルの中にいるけど、同じ存在ではない」という前提をコードと設定に入れていく方針です。
2. 「観測不能」と「弱い」を分ける
これは今回かなり大事にした点です。
特に ETF と CME を見ていると、今までは「シグナルが弱い」のか「そもそも市場が開いていない / source が死んでいる」のかが混ざりやすかったんですよね。これだと、弱い市場なのか、まだ見えていないだけなのかが分からなくなります。
なので今日は、少なくとも状態として
- 市場が閉まっている
- source が stale / missing
- computable ではない
- sample が足りない
- 観測できたが weak
- 構造はあるが EV が足りない
を分けて読めるようにする、という方針を置きました。
要するに、
「何も起きていない」
と
「見える条件がまだ整っていない」
を混同しないようにしたかったわけです。
3. 今日は最適化ではなく安定化まで
ここも意識していました。
市場ごとの差を整理し始めると、そのまま「じゃあ threshold ももう一段詰めよう」「主判定まで決めよう」と行きたくなるんですが、今日はそこまではやらないことにしました。
理由は単純で、まだ器を通したばかりだからです。
この段階で細かい最適化に入ると、結局「意味の薄い器をうまく回す」方向に流れやすい。
なので今日は、
- 市場別の器を通す
- reason を分ける
- 主画面を読みやすくする
- 再起動して安定化フェーズに入る
ここまでを合格ラインにして、それ以上は欲張らない方針にしました。
これは、やや慎重にも見えるかもしれません。
でも今の段階では、ここで止める方がむしろ自然でした。
市場別の主判定・補助判定まで今日中に持っていくと、次の設計フェーズに半分突っ込むことになるので、少し重すぎると判断しました。
4. 主画面は「構造が立つか」を中心にする
設計だけでなく、見せ方についても判断がありました。
今回の観測機は、パネルを増やそうと思えばいくらでも増やせます。
でも、増やしたから判断しやすくなるわけではないんですよね。むしろ意味の違うものが同列に並んで、読みにくくなることの方が多い。
なので今日は、主画面についてはかなりバッサリ整理して、
「いま構造が立っているか」「どの理由で落ちているか」
を中心に読む方向に寄せました。
EV 系の表示も一応残しつつ、主画面の主役は構造判定に寄せる。
これは結果的にかなり良かったと思っています。
今の段階で見たいのは「どの市場でどの定義が反応しやすいか」であって、まだ EV の細かい遷移を追い回す段階ではないからです。
今日の設計判断をひとことで
今日の設計方針を一番短く言うなら、
「同じ器で比べるプロトタイプから、市場ごとの差を前提にした観測機へ寄せる。ただし、主判定の作り込みまでは踏み込まず、今日は安定化までで止める」
という感じです。
ここは結構大事で、今日は「何か勝ちそうな条件を見つけた日」ではありません。
むしろ、**「あとでちゃんと白黒をつけるために、器の意味を整えた日」**です。
この順番を守る方が、結果的に余計な遠回りを減らせるはずだと考えました。
4. 各 lead-lag 構造の仮説をどう置いたか
市場ごとの違いを整理した上で、次にやったのは「じゃあ、それぞれ何を lead-lag として見にいくのか」を仮説として置き直すことでした。
ここが曖昧なままだと、結局パネルを眺めても「で、何が起きたら構造ありと見なすの?」がぼやけるんですよね。なので今回は、各市場ごとに役割をかなり意識して仮説を置いています。
0.前提整理
抽象的だと分かりにくいと思うので、各市場について**「どういう場面を想定しているのか」**を先に書いておきます。
今回はまだ実際の勝ち筋を断定しているわけではありませんが、少なくとも「こういう動きが見えるなら、その市場を lead として扱う意味がある」というイメージは持っておいた方が、観測機の意図が読みやすくなります。
各市場で想定している場面
| 市場 | 想定している場面 | そこで見たいこと |
|---|---|---|
| global_fv | global BTC/USD や USD/JPY が先に動いているのに、Binance Japan BTC/JPY がまだ十分追いついていない | fair value と lag のズレ、つまり residual がその後どう詰まるか |
| CME | CME セッション中に BTC 先物が先に大きく動き、その後 Binance Japan BTC/JPY が遅れて反応する | 制度市場シグナルとしての価格変化が、ローカル JPY 現物へ波及するか |
| ETF | 米株時間帯に ETF 側で価格変化や制度フローが出て、その時間帯に Binance Japan BTC/JPY 側にも遅れて動きが出る | 米株セッションの制度フロー窓として意味があるか |
もちろん、これは現時点での仮説にすぎません。ただ、各市場をどういう場面で lead 候補として観測するのかを先に言語化しておくことで、後段の構造定義も読みやすくなります。
global_fv で想定している場面
たとえば、global BTC/USD が上がり、同時に USD/JPY も上がっているとします。
このとき、合成した BTC/JPY の fair value は当然上方向へ動きます。にもかかわらず、Binance Japan BTC/JPY がまだそこまで追いついていないなら、そこには 「本来このくらいにいてもおかしくない価格」と、「実際の lag 側価格の差」 が残っていることになります。
global_fv で見たいのは、まさにこの取り残された差です。これがその後すぐ詰まるのか、少し遅れて詰まるのか、あるいはそもそも素直に詰まらないのか。ここを観測することで、global_fv を基準線として使う意味があるかを見にいきます。
CME で想定している場面
CME では、もっと制度市場寄りの場面を想定しています。
たとえば、米時間に入って BTC 先物が先に強く動いたのに、Binance Japan BTC/JPY はまだ大きくは反応していない、という状況です。
この場合、見たいのは「CME が正しい」「Binance Japan が遅い」と即断することではなく、制度市場側の価格シグナルが、ローカルの JPY 建て現物へ遅れて伝わるような場面が本当にあるのかという点です。
もしそういう場面があるなら、CME は fair value のような基準線ではなく、制度市場の先行シグナルとして観測する意味が出てきます。
ETF で想定している場面
ETF はさらに違っていて、ここでは price discovery そのものというより、米株時間帯の制度フロー窓としての場面を想定しています。
たとえば、米株時間中に ETF 側で価格変化や売買の偏りが出て、その時間帯に Binance Japan BTC/JPY にも少し遅れて動きが見える場合です。
このとき ETF で見たいのは、「ETF が24/7で価格を決めている」という話ではなく、米株時間帯に制度資金の動きが現れ、それが関連市場へどのように波及するかです。
だから ETF については、価格だけでなく「その時間帯に開いているかどうか」自体が重要な観測対象になります。
4定義についても、具体的にはこういう場面を見ている
4つの構造定義も、抽象的に書くと少し分かりづらいので、かなりざっくり言うと次のような場面を見ています。
| 定義 | ざっくり見ている場面 |
|---|---|
| fixed_horizon | 一定時間後に、素直に追っているか |
| follow_arrival | 追うなら、どれくらい早く追うか |
| state_persistence | 反応が一瞬ではなく、状態として続くか |
| residual_decay | 最初に残っていたズレが、その後ちゃんと縮むか |
つまり今回は、「どの市場でどの場面が起きやすいのか」を見るために、この4つを比較対象として置いています。
この段階ではまだ「この定義が正解」と決めているわけではなく、市場ごとにどの見方がハマりやすいかを探るための仮説群として使っている、というのが実際のところです。
1. global_fv は「基準線」として見る
まず、Global BTC/USD×USD/JPY については、これはもうかなりはっきりしていて、Binance Japan BTC/JPY を説明する最優先の基準線として扱うことにしました。
ここで見たいのは主に、
- fair value がどう動いたか
- Binance Japan BTC/JPY がそれに対してどれだけ遅れているか
- そのズレがどう詰まるか
です。
つまり global_fv については、単なる「別市場の価格」ではなく、
“本来このくらいの値段にいてもおかしくない” という基準
として見る、ということです。
この仮説に立つと、global_fv で大事なのは「follow があるか」だけじゃなくて、まず residual が見えているか なんですよね。
なので本来ここでは、
- fair value / residual
- FX freshness
- lag 側の追随
あたりが中心に来るべきだろう、という整理になりました。
時間窓も、いちばん近い市場なので、最初は短めを中心に置いています。
完全に決め切ったわけではないですが、少なくとも global_fv は、他の市場より短いスケールで見ていくのが自然だろう、という仮説です。
2. CME は「遠いが強い制度市場シグナル」として見る
CME は global_fv とはかなり違う位置づけです。
こちらは fair value の基準線というより、制度市場の価格シグナルとして見る方がしっくりきました。
要するに、
- CME が先に動く
- その動きが BTC の制度市場側の再評価として意味を持つ
- それが最終的に Binance Japan BTC/JPY に遅れて波及する
という仮説です。
ここで大事なのは、CME は 24/7 の市場ではないということです。
なので global_fv みたいに「常に見えていて当然」という前提ではなく、まず
- 今そもそも見える市場なのか
- セッション中なのか
- そのうえで signal があるのか
という順序で見るべきだろう、と考えました。
この前提だと、CME で見たいのは主に
- session 条件
- 価格の方向性
- lag 側の追随
- ある程度持続するかどうか
です。
なので、global_fv より一段遅めの時間窓を仮置きしつつ、制度市場シグナルとして観測する、というのが今回の整理でした。
3. ETF は「米株時間帯の制度フロー窓」として見る
米スポット BTC ETF は、さらに別の仮説にしました。
ここは price discovery 市場として即扱うより、米株時間帯に制度資金が BTC へ入ってくる窓として見る方が自然だと考えています。
つまり ETF で見たいのは、
- 米株のセッション中に何が起きるか
- その時間帯の価格変化やフローの気配が、Binance Japan にどう波及するか
です。
この場合、ETF は 24/7 の lead ではありません。
なので、まず session 自体がかなり大事になります。
ここが global_fv と大きく違うところで、ETF では価格より前に
- 今見える時間帯か
- 見えていないなら weak ではなく unavailable なのか
をちゃんと分けないといけない、という判断になりました。
時間窓も、ETF は短秒より、少し長めのスケールで仮置きする方が自然だろうという整理です。
ここもまだ本決めではないですが、「近い市場ではない」「米株時間帯の制度フロー窓」という見方に合わせて、global や CME より長めに置いています。
4. 4つの構造定義自体も「比較用の仮説群」として扱う
今回の観測機には、
- fixed_horizon
- follow_arrival
- state_persistence
- residual_decay
の4定義があります。
これについても、今日は「これが正解」と決めたわけではありません。
今の段階では、どの市場でどの定義が反応しやすいかを見るための仮説群として置いています。
ざっくり役割を言うとこうです。
fixed_horizon

一定の horizon で見たときに、follow_rate と gross が立つかを見る定義です。
いちばんベーシックな「その窓で素直に追うか」を見るものですね。
follow_arrival

最初に gross が正になるまでの速さと到達率を見る定義です。
「追うなら、どれだけ早く追うのか」を見たい時に向いています。
state_persistence

primary と tail の両方で正方向が維持されるかを見る定義です。
これは、単発の反応ではなく、状態として持続するかを見るものです。
residual_decay

lead と lag の差分、つまり residual が改善するかを見る定義です。
これは特に global_fv みたいな基準線型の市場で意味が強いだろうと考えています。
今日の時点では、この4つを同列の「正解候補」として置くというより、
市場ごとにどれが効きやすいかを見るための比較対象
として使っています。
5. ただし、まだ「市場ごとの主判定」は決め切っていない
ここは正直に書いておきたいところです。
今回かなり market-aware には寄せましたが、まだ
- global_fv では residual 系を主判定
- CME では session + follow / persistence を主判定
- ETF では session + arrival を主判定
みたいな、市場ごとの主判定 / 補助判定の完全な切り分け まではやっていません。
今はあくまで、
- 市場ごとの差を前提に器を作る
- その中で4定義を市場別に回してみる
- どれが反応しやすいかを見る
という段階です。
なので、今回の仮説は「最終形」ではなく、
各市場をどう観測するかの第一段の仮説配置
と考えた方が正確です。
まとめると
この章でやったことを一言で言うなら、
「各市場を同じ lead として見るのをやめて、それぞれに違う役割を与えた上で、4つの構造定義を仮説群として配置した」
ということです。
- global_fv は基準線
- CME は制度市場シグナル
- ETF は制度フロー窓
この整理ができたことで、ようやく「何を見に行く観測機なのか」が少しずつ輪郭を持ち始めました。
まだ主判定までは作り込んでいませんが、少なくとも今日は、そこへ進むための土台をちゃんと置けたと思っています。
5. 実際にやった実装
ここまで市場の違いや仮説を整理してきましたが、今日はそれをちゃんと実装にも落としました。
といっても、いきなり「市場ごとの完成版判定器」を作ったわけではありません。
今日やったのは、各市場を同じ雑な器で見る状態から抜けて、少なくとも市場別に意味を持った観測機へ寄せることです。
1. market_profile を入れて、市場ごとの差をコード上で持たせた
まず大きかったのは、market ごとの profile をちゃんと持たせたことです。
今回対象にしたのは、
global_fvcme_btcus_spot_etf
の3市場で、それぞれについて
- market_type
- timezone
- session_type
- session_open_rule
- main / aux horizons
- required_features
- priority_features
- structure / EV logic version
を設定できる形にしました。
これによって、少なくともコードの上では
「全部 BTC 関連市場だから似たようなもんでしょ」
という扱いではなくなりました。
ここはかなり大きいです。今後さらに主判定・補助判定を分けるにしても、この器がないと話が始まらないので。
2. 市場ごとの初期推奨値を反映した
今日は、ここまでの議論で置いた初期推奨値も config に反映しました。
ざっくり言うと、
- global_fv は短め
- cme_btc は中間
- us_spot_etf は長め
の horizon と threshold に寄せています。
たとえば global_fv は比較的短い event spacing と低めの shock threshold を置き、
ETF は逆に長めの horizon と少なめの min sample で見る。
CME はその中間です。
ここで大事だったのは、「この数字が正解だ」と決め打ちすることではなく、旧仕様の数字を無自覚に引きずらないことでした。
今日の段階では、これらはあくまで仮置きです。でも、仮置きであっても市場調査の内容に沿っている方がはるかにマシです。
3. 「観測不能」と「弱い」を分ける reason/state を入れた
今回いちばん実装として意味が大きかったのは、ここかもしれません。
これまでは、見えていないのか、見えたけど弱いのか、ちょっと混ざりやすかったんですよね。
でも ETF や CME を扱うなら、そこを混ぜたままだとかなり危ない。
なので今回は、reason を少なくとも次のように分けました。
unavailable 系
MARKET_CLOSEDSOURCE_STALESOURCE_MISSINGCOMPUTE_NOT_READYPAIR_INVALIDPARTIAL_WIRING
weak 系
INSUFFICIENT_SAMPLESNO_FOLLOWWEAK_STRUCTUREEV_NOT_POSITIVE
さらに wiring 系として
NOT_WIRED_YETCONFIG_INCOMPLETE
も別枠で扱うようにしています。
要するに、
「市場が閉まっていて見えない」
と
「見えたけど構造が弱い」
を、少なくとも state と reason の上では分けて読めるようにしたわけです。
これはかなり大きいです。
ここがないと、たとえば ETF が米株時間外で死んでいるだけなのに「この市場は弱い」と誤読しやすいので。
4. EV の意味差を最低限見えるようにした
今回の観測機には4つの定義があるのですが、それぞれ EV の意味が少しずつ違います。
特に residual_decay は、収益 EV というより structural improvement に近いものです。
ここを同じ「EV」として横並びにすると、どうしても誤読しやすい。
なので今回は、
pnl_likearrival_likepersistence_likestructural_improvement
という EV type を持たせて、少なくとも
「定義ごとに EV の意味が違う」
ことが分かるようにしました。
ここはまだ途中です。
正直、主画面で完全にきれいに分離できているとは言えません。
でも、少なくとも「全部同じ EV です」という雑な見せ方からは一歩進めたと思います。
5. ダッシュボードはかなりバッサリ整理した
実装の後半では、ダッシュボードの見せ方もかなり整理しました。
最初は ready 系や EV 系をいろいろ重ねていたんですが、途中で見ていて、これはさすがにノイズが多いなと。
今の段階でいちばん見たいのは、「その市場で構造が立つかどうか」であって、各 ready を毎パネルで全部見ることではないんですよね。
なので、主画面ではかなり思い切って削って、
- Availability / Session / Computable
- Sample Flow
- Reject / Reason Summary
- 構造判定パネル
を中心にし、各種 EV の遷移は折りたたみ側へ寄せました。
この判断はかなり良かったと思っています。
今の段階では、見えるものを増やすより、何を主に見るのかを絞る方が大事でした。
6. ただし、まだ完成ではない
ここはちゃんと書いておきたいです。
今日の実装でかなり前進はしましたが、まだ完全ではありません。
たとえば、priority_features は profile に入っていますが、まだそれ自体が主判定に効いているわけではありません。
つまり現時点では、
市場ごとに違う設定値で、同じ4定義を回している
段階です。
本当にやりたいのは、その先にある
- global_fv は fair value / residual を主に見る
- CME は session + follow / persistence を主に見る
- ETF は session + arrival を主に見る
みたいな、市場ごとの主判定 / 補助判定の切り分けです。
ここまでは今日は踏み込んでいません。
でも逆に言えば、それは意図どおりでもあります。
今日はそこまでやらず、まずは「市場別の器を通す」ことを優先する日だったからです。
まとめると
今日やった実装をひとことで言うなら、
「市場別の違いを、コード・設定・state・画面の上に最低限ちゃんと載せた」
という感じです。
- market_profile を入れた
- 初期推奨値を反映した
- unavailable と weak を分けた
- EV の意味差を最低限見えるようにした
- 主画面を構造判定中心に整理した
まだ主判定の本実装までは行っていませんが、少なくとも今日は、
“同じ器に全部突っ込んで並べていた状態” からは抜け出せた
と言ってよさそうです。
6. 今日時点で見えていること
実装を通して再起動し、しばらく回してみて、今日は少なくとも「市場別に意味を持たせた観測機として動いているかどうか」はかなり確認できました。
もちろん、ここで「勝てる構造が見えた」とか「この市場は主線で行ける」といった結論まではまだ出しません。ただ、プロトタイプを市場別に整えた結果として、何が見えやすくなって、逆に何がまだ曖昧なままなのかは、かなりはっきりしてきました。
まず大きかったのは、市場ごとの差が、少なくとも観測の挙動としてはちゃんと出てきたことです。
昼の時点でもそうでしたが、今回しばらく回してみても、
global_fvは比較的素直に観測が回りやすいcme_spotは時間帯によって構造判定が断続的に立つetf_spotはセッション依存がかなり強い
という差が見えてきました。
これは当たり前と言えば当たり前なんですが、以前のように全部を同じ感覚で眺めていた状態より、かなり読みやすいです。少なくとも今は、「この市場は見えていないのか」「見えているけど弱いのか」を前より明確に切り分けられるようになっています。
次に、構造判定パネルをバッサリ削って見やすくした判断は正しかったと思っています。
ready 系や EV 系を主画面に全部出していた頃は、情報量はあるけれど、正直かなり読みづらかったんですよね。今は構造判定を主に見て、細かい EV の遷移は別に逃がしたことで、「いまどの定義が立ちやすいか」を素直に追いやすくなりました。
これは、実装そのものというより、観測機を人間がどう読むかという意味でかなり大きな改善でした。
また、各定義の反応の仕方にも少し差が見えています。
数時間〜半日弱くらい眺めた範囲では、全体としてはまだ常時強い構造が立っているわけではありません。ただし、定義によっては断続的に反応が出ています。特に follow_arrival は比較的動きやすく見え、state_persistence はそれより控えめ、residual_decay は一部市場で反応しているものの、これは収益 EV ではなく構造改善量なので、そのまま喜んではいけない、という感じです。
このあたりは、まさに「見えるようになったけど、まだ解釈は慎重に」という段階ですね。
一方で、まだ未完成な部分もかなりはっきりしています。
一番大きいのは、やはり「市場ごとの主判定・補助判定」がまだ本実装されていないことです。今の観測機は、market-aware にはなっています。horizon や threshold、session 条件も市場ごとに違います。
でもその一方で、まだ本質的には
市場ごとに違う設定値で、同じ4定義を回している
段階でもあります。
本来やりたいのは、もう一歩踏み込んで、
global_fvは fair value / residual を主に見るcme_spotは session + follow / persistence を主に見るetf_spotは session 依存のフロー窓として見る
みたいに、市場ごとに何をいちばん大事な情報とするかを主判定へ反映することです。
そこまでは今日まだ行っていません。
ただ、逆に言えば、今はそこを次の本丸として切り出せる状態になったとも言えます。
もう一点、実装と画面の整理を進めたことで、「まだ何も分かっていない」のではなく、「何がまだ分かっていないか」が分かるようになったのも大きかったです。
これは地味だけどかなり重要で、以前は「動いているけど、何が原因でこう見えているのか」が曖昧なままパネルを眺めている感じがありました。
今は少なくとも、
- unavailable なのか
- weak なのか
- sample 不足なのか
- 構造はあるが EV が足りないのか
を分けて考えられるので、観測の意味がかなりクリアになっています。
今日時点の結論
今日の時点で言えることをまとめると、こんな感じです。
- 市場別の器は、ちゃんと通った
- 主画面はかなり見やすくなった
- 数時間の観測でも、市場ごとの差は一応見える
- ただし、主判定の優先度づけまではまだ未実装
- したがって、今日は「勝ち筋が見えた日」ではなく、「観測機の意味がかなり整った日」と評価するのが妥当
という感じでしょうか。
言い換えると、今日は
“市場ごとに違うものを見ているつもり” から、実際に市場ごとの差を前提に観測できる状態へ近づいた日
でした。
白黒判定の完成まではまだ距離がありますが、その前段としてはかなり大きな前進だったと思っています。
7. これからやること
今日かなり進んだとはいえ、ここで「よし完成」とは当然なりません。
むしろ、今日は次に何を詰めるべきかが見えた日でもありました。なので、これからやることも以前よりだいぶ整理しやすくなっています。
まず直近でやるのは、この状態の観測機をしばらく回して、各市場の挙動をちゃんと見ることです。
今日の時点では、構造判定が断続的に立つ場面は見えています。でも、それがたまたまなのか、継続的な傾向なのか、あるいは時間帯依存なのかまではまだ分かりません。
なので次は、数時間〜数日単位で回しながら、
global_fvは本当に基準線として安定して使えるのかcme_spotはどの時間帯に反応しやすいのかetf_spotは session 依存の lead として意味を持つのか- unavailable / weak / sample不足 の遷移がどう出るのか
を見ていくことになります。
その上で、次の本丸としてかなり明確なのが、市場ごとの主判定・補助判定をどう置くかです。
今日の実装で market-aware 化はかなり進みましたが、まだ本質的には「市場ごとに違う設定値で同じ4定義を回している」段階です。
本来やりたいのは、その先にある
global_fvは fair value / residual を主に見るcme_spotは session + follow / persistence を主に見るetf_spotは session + arrival を主に見る
みたいな、市場ごとに何をいちばん信用するかを判定器の中心に据えることです。
ここを次に詰めることで、はじめて「市場ごとに追うべき情報の優先度が主判定に反映された観測機」に近づくはずです。
もう一つやることとしては、今の構造判定の表示を見ながら、どの定義を主線候補として残し、どれを補助へ回すかを判断することです。
今日の時点では、4定義はまだ比較用の仮説群として置いています。でも観測を続ければ、
- 比較的立ちやすい定義
- 立つが意味が薄い定義
- 今の市場ではほぼ寝ている定義
が少しずつ見えてくるはずです。
ここを見誤ると、全部を同じ熱量で追ってしまってまた散らかるので、観測の結果を踏まえて主線と補助線を分けていく必要があります。
一方で、やらないこともあります。
少なくとも今すぐは、
- トレード執行への接続
- EV>0 の最終結論
- 市場の大幅追加
- feature の横拡張
まではやりません。
これは、今日の作業を通して改めてはっきりしました。
今はまだ、器の意味と市場ごとの構造理解を固める段階です。ここで欲張って横に広げると、結局また「何を見ているのか分からない観測機」に戻りやすい。
なので、しばらくは今の3市場と今の4定義に絞って、観測と判断の質を上げる方を優先します。
今日の締めとして
今日の開発を一言でまとめるなら、
「リードラグ観測機を、ようやく“市場ごとの差を前提にした装置”として扱い始めた日」
でした。
まだ完成ではありません。
でも、少なくとも今は
- 何を見ているのか
- 何がまだ見えていないのか
- 次に何を詰めるべきか
が、前よりかなり明確です。
この状態でしばらく観測を回し、その上で主判定・補助判定を切り分けていく。
そこが、次の一歩になりそうです。