HK 溫度盤口做 T

{{ d.mode || '—' }} HKT {{ d.hkt || '—' }} 運行 {{ fmtDur(d.uptime_s) }} {{ conn ? '已連線' : '斷線中' }} 市場 {{ d.event && d.event.ok ? '已載入' : '未載入' }} CLOB Relay {{ d.event.slug }}

權益 初始 ${{ n(cap.initial,0) }}

${{ n(cap.equity,2) }}
{{ sgn(cap.return_pct) }}{{ n(cap.return_pct,3) }}% ({{ sgn(cap.equity-cap.initial) }}${{ n(Math.abs(cap.equity-cap.initial),2) }})
現金${{ n(cap.cash,2) }}
持倉市值 (按 best_bid) ${{ n(cap.inventory,2) }}
可動用${{ n(cap.available,2) }}

已實現損益

{{ sgn(cap.realized_pnl) }}${{ n(Math.abs(cap.realized_pnl||0),2) }}
已付 taker 費 −${{ n(cap.fees_paid,3) }}
平倉筆數{{ (d.closed||[]).length }}
勝率{{ winRate }}
每筆均值 {{ avgPnl==null?'—':(sgn(avgPnl)+n(Math.abs(avgPnl)*100,2)+'¢/股') }}

當前讀數 {{ rd.source || '' }}

{{ n(rd.temp,1) }}°C  {{ rd.dT==null?'':(sgn(rd.dT)+n(Math.abs(rd.dT),1)) }}
讀數時刻{{ rd.reading_time }}
今日滾動最高 M {{ n(rd.max_temp,1) }}°C → 桶 {{ leadBucket }}
gap = T − M {{ fair.gap==null?'—':n(fair.gap,2) }}
距抵達{{ age }}s
等待第一筆 relay 讀數…

公允價模型 V δ 表 {{ cfg.fv_table_days }} 天

時槽{{ fair.slot_label }}
gap 分組{{ fair.gap_label }}
格內樣本 n {{ fair.n_samples }}
E[δ] 還會再漲+{{ n(fair.delta_ev,2) }}°C
領先桶 V {{ leadV==null?'—':(n(leadV*100,1)+'¢') }}
無讀數 ⇒ 無法算 V(不猜 0.5

11 桶盤口 × 公允價 桶 = floor(當日最高溫)|黃底 = 領先桶|灰 = 已死(NO 必結算 $1)

V(YES)YES bidYES askask 量 ≤80¢ 深度價差edge = V−ask NO bidNO ask機率條
{{ row.title }} {{ row.V==null?'—':n(row.V*100,1)+'¢' }} {{ px(row.yes.bid) }} {{ px(row.yes.ask) }} {{ row.yes.ask_sz==null?'—':n(row.yes.ask_sz,0) }} {{ row.yes.depth_le80==null?'—':n(row.yes.depth_le80,0) }} {{ row.yes.spread==null?'—':n(row.yes.spread*100,1)+'¢' }} ★ {{ sgn(row.edge)+n(Math.abs(row.edge)*100,1) }}¢ {{ row.edge==null?'—':(sgn(row.edge)+n(Math.abs(row.edge)*100,1)+'¢') }} {{ px(row.no.bid) }} {{ px(row.no.ask) }}
Σ V = {{ n(sumV*100,1) }}¢(負風險事件,理論恆為 100¢;偏離即模型或盤口有一邊錯)

最近一次觸發的逐條判準 ★ 沒進場也記,而且記為什麼沒進 —— 只記成交會看不出濾網擋掉了什麼

標的動作Vaskedge 想買成交閘門
{{ x.leg }} {{ x.label }} {{ x.action }} {{ x.V==null?'—':n(x.V*100,1)+'¢' }} {{ px(x.ask) }} {{ x.edge==null?'—':(sgn(x.edge)+n(Math.abs(x.edge)*100,1)+'¢') }} {{ x.want_shares==null?'—':n(x.want_shares,0) }} {{ x.fill? (n(x.fill.shares,0)+' @ '+px(x.fill.avg)) : '—' }} {{ k }} {{ fmtGate(g) }} 死桶門檻 M≥{{ x.threshold }}
尚未觸發過。觸發條件 = relay 推來新的 reading_time。

未平倉 {{ (d.positions||[]).length }} 筆

標的份額成本進場V 掛賣階梯現 bid浮動剩餘
{{ p.label }}{{ p.leg }} {{ n(p.shares,0) }}{{ px(p.entry_price) }} {{ p.entry_V==null?'—':n(p.entry_V*100,1)+'¢' }} {{ px(exitLimit(p)) }} {{ p.ladder_step }} {{ px(bidOf(p)) }} {{ float_(p)==null?'—':(sgn(float_(p))+'$'+n(Math.abs(float_(p)),2)) }} {{ remain(p)==null?'結算':remain(p)+'s' }}
空倉。

已平倉 最近 {{ (d.closed||[]).length }} 筆

標的份額方式持有損益
{{ p.label }}{{ n(p.shares,0) }} {{ px(p.entry_price) }}{{ px(p.exit_price) }} {{ p.exit_kind }} {{ p.exit_ts? Math.round(p.exit_ts-p.entry_ts)+'s':'—' }} {{ sgn(p.pnl) }}${{ n(Math.abs(p.pnl||0),2) }}
尚無平倉紀錄。

資料源健康

兩條 relay 路徑同時訂閱,先到的先用。誰快是實測問題,不是推理問題。
路徑連線事件首達落後時均值
{{ shortUrl(p.url) }} {{ p.connected?'ON':'OFF' }} {{ p.events }} {{ p.wins }} {{ p.avg_lag_ms_when_lost==null?'—':n(p.avg_lag_ms_when_lost,0)+'ms' }} (n={{ p.lag_samples }})
CLOB 訊息 {{ clobS.msgs }}
CLOB 重連{{ clobS.reconnects }}
有 bid 的簿 {{ clobS.books_with_bid }} / {{ clobS.tokens }}
最後訊息 {{ clobS.last_msg_age_s==null?'—':clobS.last_msg_age_s+'s 前' }}

凍結參數 2026-08-28 預先登記

進場 edge ≥{{ n(cfg.entry.edge_min*100,0) }}¢
進場 |ΔT| ≥{{ cfg.entry.dT_min }}°C
時段HKT {{ cfg.entry.hours[0] }}–{{ cfg.entry.hours[1] }}
ask 上限{{ n(cfg.entry.ask_max*100,0) }}¢
V 下限 {{ cfg.entry.v_min>0 ? n(cfg.entry.v_min*100,0)+'¢(變體 B)' : '無' }}
單腿份額上限{{ cfg.max_shares_per_leg }} 股
合併曝險上限${{ cfg.max_total_notional }}
離場錨{{ cfg.exit.anchor }}
離場掛 V −{{ n(cfg.exit.margin*100,0) }}¢
硬平提前{{ cfg.exit.force_lead_s }}s
多腿{{ cfg.multi_leg?'開(lead+1 的 NO)':'關' }}
死桶搶單 {{ cfg.dead_bucket.enabled?('開 ≤'+n(cfg.dead_bucket.max_price*100,0)+'¢ / $'+cfg.dead_bucket.budget):'關' }}
tick / 最小股 {{ n(cfg.market.tick*100,1) }}¢ / {{ cfg.market.min_shares }}
手續費 {{ cfg.fee.enabled? ('rate '+cfg.fee.rate+' taker only'):'關' }}
{{ cfg.fee.formula }}
出處:{{ cfg.fee.source }}

⚠️ 誠實聲明

① 選擇偏誤:edge≥5¢、|ΔT|≥0.3、11–15 時、L=V−2¢ 四個門檻是 在同一份 70 天資料上掃出來的。樣本外未驗證前,回測的 +3.74¢/筆是樂觀估計

② maker 成交偏樂觀:本模擬用「best_bid 穿越限價」判定成交, 忽略排隊位置。真實成交率會比這裡低。

③ 手續費形狀未獨立驗證:rate=0.05/takerOnly 是 Gamma 硬證據, 但公式裡 exponent 的位置與 rebate 歸屬沿用本專案 BTC 那條已驗證的形狀。 rebate 一律不計(寧可低估)。

④ V 模型只有 4–8 月,沒有分季節,也沒用到預報/雲量/降雨。

⑤ 深度模型是誠實的:taker 逐檔吃,平均價一定比 best_ask 差 —— 回測 v1 用「窗內最低 ask」的樂觀偏誤在這裡已修掉。

⑥⛔ 這個策略在 16 天真實盤口回放上是虧的: 基線 −5.74¢/股(88 筆)、目前跑的變體 B −1.45¢/股(49 筆)。 四個離場變體全部為負 ⇒ 進場信號本身沒有 edge。 它現在跑 PAPER 的目的是收集樣本外證據,不是因為它會賺錢。 完整證據:docs/hkweather/12

事件流 最近 {{ trace.length }} 筆(全量落盤在 hkwsim/logs/trace_*.jsonl)

{{ hms(t.ts) }} [{{ t.chan }}.{{ t.event }}] {{ brief(t) }}