# BTC VWAP on Hyperliquid for one day -- raw side ## Question What was the volume-weighted average price of the BTC perpetual on Hyperliquid on 2026-09-27 (UTC day)? One number. ## System prompt You are an agent assisting a quantitative researcher. Work the question end to end: find the data, compute, check your own numbers, and make the judgement calls a careful quant would make. You have a Bash tool; Python 3 with duckdb, pandas, pyarrow and numpy is at /tmp/peerfeed-a21/venv/bin/python. Work inside your current directory. When you are done, end with a section headed FINAL ANSWER that gives every number asked for and states each judgement call you made. The researcher has downloaded PeerFeed's parquet archive for the relevant venues and data types to /tmp/peerfeed-a21/archive, in the layout PeerFeed delivers it. That directory is your only source of market data; there is no API access. ## [tool call 1] Bash { "command": "cd /tmp/peerfeed-a21/archive; find . | head -50; find . -type f | wc -l; find . -iname '*readme*' -o -iname '*.md' -o -iname '*.json' | head" } ## [tool result] . ./apex ./dydx ./paradex ./pacifica ./edgex ./extended ./hyperliquid ./nado ./apex/trades ./dydx/trades ./paradex/trades ./pacifica/trades ./pacifica/prices ./edgex/trades ./edgex/ticker ./extended/funding ./hyperliquid/trades ./hyperliquid/activeAssetCtx ./nado/funding_rate ./nado/trades ./hyperliquid/trades/parquet ./hyperliquid/activeAssetCtx/parquet ./nado/funding_rate/parquet ./nado/trades/parquet ./hyperliquid/trades/parquet/2026 ./hyperliquid/activeAssetCtx/parquet/2026 ./nado/funding_rate/parquet/2026 ./nado/trades/parquet/2026 ./apex/trades/parquet ./dydx/trades/parquet ./paradex/trades/parquet ./pacifica/trades/parquet ./pacifica/prices/parquet ./edgex/trades/parquet ./edgex/ticker/parquet ./extended/funding/parquet ./extended/funding/parquet/2026 ./extended/funding/parquet/2026/09 ./extended/funding/parquet/2026/09/27 ./extended/funding/parquet/2026/09/22 ./extended/funding/parquet/2026/09/26 ./extended/funding/parquet/2026/09/20 ./extended/funding/parquet/2026/09/23 ./extended/funding/parquet/2026/09/24 ./extended/funding/parquet/2026/09/21 ./extended/funding/parquet/2026/09/28 ./extended/funding/parquet/2026/09/25 ./hyperliquid/trades/parquet/2026/09 ./hyperliquid/activeAssetCtx/parquet/2026/09 1220 Shell cwd was reset to /tmp/peerfeed-a21/work-s1-raw ## [tool call 2] Bash { "command": "cd /tmp/peerfeed-a21/archive/hyperliquid/trades/parquet/2026/09; ls; find 26 27 28 | head -80" } ## [tool result] 20 21 22 23 24 25 26 27 28 26 27 28 26/12-14.parquet 26/18-20.parquet 26/22-24.parquet 26/04-06.parquet 26/06-08.parquet 26/00-02.parquet 26/02-04.parquet 26/14-16.parquet 26/08-10.parquet 26/16-18.parquet 26/10-12.parquet 26/20-22.parquet 27/12-14.parquet 27/18-20.parquet 27/22-24.parquet 27/04-06.parquet 27/06-08.parquet 27/00-02.parquet 27/02-04.parquet 27/14-16.parquet 27/08-10.parquet 27/16-18.parquet 27/10-12.parquet 27/20-22.parquet 28/12-14.parquet 28/18-20.parquet 28/22-24.parquet 28/04-06.parquet 28/06-08.parquet 28/00-02.parquet 28/02-04.parquet 28/14-16.parquet 28/08-10.parquet 28/16-18.parquet 28/10-12.parquet 28/20-22.parquet Shell cwd was reset to /tmp/peerfeed-a21/work-s1-raw ## [tool call 3] Bash { "command": "cd /tmp/peerfeed-a21/archive/hyperliquid/trades/parquet/2026/09; P=/tmp/peerfeed-a21/venv/bin/python; $P -c \"\nimport duckdb\nc=duckdb.connect()\nprint(c.sql(\\\"describe select * from '27/*.parquet'\\\"))\nprint(c.sql(\\\"select * from '27/00-02.parquet' limit 5\\\"))\nprint(c.sql(\\\"select coin, count(*) from '27/*.parquet' group by 1 order by 2 desc limit 30\\\"))\n\"" } ## [tool result] ┌─────────────┬──────────────────────────┬─────────┬─────────┬─────────┬─────────┐ │ column_name │ column_type │ null │ key │ default │ extra │ │ varchar │ varchar │ varchar │ varchar │ varchar │ varchar │ ├─────────────┼──────────────────────────┼─────────┼─────────┼─────────┼─────────┤ │ coin │ VARCHAR │ YES │ NULL │ NULL │ NULL │ │ side │ VARCHAR │ YES │ NULL │ NULL │ NULL │ │ px │ DOUBLE │ YES │ NULL │ NULL │ NULL │ │ sz │ DOUBLE │ YES │ NULL │ NULL │ NULL │ │ time │ TIMESTAMP WITH TIME ZONE │ YES │ NULL │ NULL │ NULL │ │ hash │ VARCHAR │ YES │ NULL │ NULL │ NULL │ │ tid │ BIGINT │ YES │ NULL │ NULL │ NULL │ │ users │ VARCHAR[] │ YES │ NULL │ NULL │ NULL │ │ recorded_at │ TIMESTAMP WITH TIME ZONE │ YES │ NULL │ NULL │ NULL │ └─────────────┴──────────────────────────┴─────────┴─────────┴─────────┴─────────┘ ┌───────────┬─────────┬──────────┬───┬─────────────────┬────────────────────────────────────────┬──────────────────────┐ │ coin │ side │ px │ … │ tid │ users │ recorded_at │ │ varchar │ varchar │ double │ … │ int64 │ varchar[] │ timestamp with time… │ ├───────────┼─────────┼──────────┼───┼─────────────────┼────────────────────────────────────────┼──────────────────────┤ │ TAO │ A │ 321.75 │ … │ 328399079171261 │ [0x4ef66df2067c588eb98896ede3a8e80f85… │ 2026-09-27 01:59:00… │ │ NIL │ A │ 0.10401 │ … │ 772434366847256 │ [0x8184405076b61ab78013f16393322eaf0d… │ 2026-09-27 01:59:00… │ │ xyz:SHEIN │ A │ 4.5336 │ … │ 743643697789906 │ [0x33ad48ed92e3e91a98278f0f7456eae6ea… │ 2026-09-27 01:59:00… │ │ PUMP │ B │ 0.004414 │ … │ 636245684486438 │ [0x1188953bc6115260ce6c1dc3307c79abd6… │ 2026-09-27 01:59:00… │ │ PUMP │ B │ 0.004414 │ … │ 400139305791247 │ [0x1188953bc6115260ce6c1dc3307c79abd6… │ 2026-09-27 01:59:00… │ └───────────┴─────────┴──────────┴───┴─────────────────┴────────────────────────────────────────┴──────────────────────┘ 5 rows 9 columns (6 shown) ┌──────────────┬──────────────┐ │ coin │ count_star() │ │ varchar │ int64 │ ├──────────────┼──────────────┤ │ NEAR │ 270532 │ │ BTC │ 175978 │ │ WLD │ 165933 │ │ HYPE │ 156007 │ │ ZEC │ 146232 │ │ PUMP │ 131784 │ │ XPL │ 122770 │ │ ENA │ 98787 │ │ ETH │ 92057 │ │ SOL │ 82814 │ │ · │ · │ │ · │ · │ │ · │ · │ │ xyz:BRENTOIL │ 46090 │ │ xyz:CL │ 44586 │ │ MON │ 44441 │ │ PURR │ 42938 │ │ UNI │ 42937 │ │ VVV │ 41346 │ │ ARB │ 40063 │ │ ONDO │ 39848 │ │ GRAM │ 39451 │ │ AERO │ 37164 │ └──────────────┴──────────────┘ 30 rows (20 shown)2 columns Shell cwd was reset to /tmp/peerfeed-a21/work-s1-raw ## [agent thinking] ## [agent] Checking partitioning, duplicates, BTC-variant coin names, and outliers. ## [tool call 4] Bash { "command": "cd /tmp/peerfeed-a21/archive/hyperliquid/trades/parquet/2026/09; P=/tmp/peerfeed-a21/venv/bin/python; $P -c \"\nimport duckdb\nc=duckdb.connect(); c.sql(\\\"set timezone='UTC'\\\")\nc.sql(\\\"create view t as select *, filename f from read_parquet(['26/*.parquet','27/*.parquet','28/*.parquet'], filename=true)\\\")\nprint(c.sql(\\\"select distinct coin from t where coin ilike '%btc%'\\\"))\nprint(c.sql(\\\"select f, count(*), min(time),max(time),min(recorded_at),max(recorded_at) from t where coin='BTC' group by f order by f\\\").df().to_string())\nprint(c.sql(\\\"select count(*), count(distinct tid), count(distinct (tid,hash)), count(distinct (hash,tid,px,sz,time)) from t where coin='BTC' and time>='2026-09-27' and time<'2026-09-28'\\\"))\nprint(c.sql(\\\"select min(px),max(px),quantile_cont(px,[0.0001,0.5,0.9999]),min(sz),max(sz),sum(sz), count(*) filter (where sz<=0 or px<=0 or px is null or sz is null) from t where coin='BTC' and time>='2026-09-27' and time<'2026-09-28'\\\"))\n\"" } ## [tool result] ┌─────────┐ │ coin │ │ varchar │ ├─────────┤ │ BTC │ └─────────┘ f count_star() min("time") max("time") min(recorded_at) max(recorded_at) 0 26/00-02.parquet 11012 2026-09-25 23:58:59.774000+00:00 2026-09-26 01:58:59.051000+00:00 2026-09-25 23:59:00.118000+00:00 2026-09-26 01:58:59.393000+00:00 1 26/02-04.parquet 8896 2026-09-26 01:59:00.258000+00:00 2026-09-26 03:58:59.422000+00:00 2026-09-26 01:59:00.617000+00:00 2026-09-26 03:58:59.746000+00:00 2 26/04-06.parquet 7817 2026-09-26 03:59:00.027000+00:00 2026-09-26 05:58:59.039000+00:00 2026-09-26 03:59:00.386000+00:00 2026-09-26 05:58:59.602000+00:00 3 26/06-08.parquet 7842 2026-09-26 05:59:00.865000+00:00 2026-09-26 07:58:59.518000+00:00 2026-09-26 05:59:01.184000+00:00 2026-09-26 07:58:59.894000+00:00 4 26/08-10.parquet 15935 2026-09-26 07:59:01.854000+00:00 2026-09-26 09:58:59.052000+00:00 2026-09-26 07:59:02.177000+00:00 2026-09-26 09:58:59.383000+00:00 5 26/10-12.parquet 10051 2026-09-26 09:59:00.192000+00:00 2026-09-26 11:58:59.004000+00:00 2026-09-26 09:59:00.547000+00:00 2026-09-26 11:58:59.343000+00:00 6 26/12-14.parquet 10893 2026-09-26 11:59:01.465000+00:00 2026-09-26 13:58:59.344000+00:00 2026-09-26 11:59:01.853000+00:00 2026-09-26 13:58:59.852000+00:00 7 26/14-16.parquet 10069 2026-09-26 13:59:01.773000+00:00 2026-09-26 15:58:59.050000+00:00 2026-09-26 13:59:02.086000+00:00 2026-09-26 15:58:59.418000+00:00 8 26/16-18.parquet 7761 2026-09-26 15:59:01.073000+00:00 2026-09-26 17:58:59.119000+00:00 2026-09-26 15:59:01.372000+00:00 2026-09-26 17:58:59.428000+00:00 9 26/18-20.parquet 8495 2026-09-26 17:58:59.724000+00:00 2026-09-26 19:58:59.022000+00:00 2026-09-26 17:59:00.052000+00:00 2026-09-26 19:58:59.355000+00:00 10 26/20-22.parquet 13838 2026-09-26 19:59:00.241000+00:00 2026-09-26 21:58:59.003000+00:00 2026-09-26 19:59:00.616000+00:00 2026-09-26 21:58:59.321000+00:00 11 26/22-24.parquet 14244 2026-09-26 21:59:00.006000+00:00 2026-09-26 23:58:59.239000+00:00 2026-09-26 21:59:00.531000+00:00 2026-09-26 23:58:59.560000+00:00 12 27/00-02.parquet 9935 2026-09-26 23:59:00.044000+00:00 2026-09-27 01:58:57.861000+00:00 2026-09-26 23:59:00.413000+00:00 2026-09-27 01:58:58.144000+00:00 13 27/02-04.parquet 8939 2026-09-27 01:59:00.676000+00:00 2026-09-27 03:58:55.991000+00:00 2026-09-27 01:59:00.972000+00:00 2026-09-27 03:58:56.270000+00:00 14 27/04-06.parquet 10153 2026-09-27 03:59:02.011000+00:00 2026-09-27 05:58:59.086000+00:00 2026-09-27 03:59:02.351000+00:00 2026-09-27 05:58:59.447000+00:00 15 27/06-08.parquet 11124 2026-09-27 05:59:03.605000+00:00 2026-09-27 07:58:58.845000+00:00 2026-09-27 05:59:04.210000+00:00 2026-09-27 07:58:59.151000+00:00 16 27/08-10.parquet 19423 2026-09-27 07:58:59.852000+00:00 2026-09-27 09:58:57.855000+00:00 2026-09-27 07:59:00.161000+00:00 2026-09-27 09:58:58.150000+00:00 17 27/10-12.parquet 15165 2026-09-27 09:58:59.866000+00:00 2026-09-27 11:58:59.155000+00:00 2026-09-27 09:59:00.164000+00:00 2026-09-27 11:58:59.496000+00:00 18 27/12-14.parquet 19113 2026-09-27 11:59:01.220000+00:00 2026-09-27 13:58:59.395000+00:00 2026-09-27 11:59:01.551000+00:00 2026-09-27 13:58:59.695000+00:00 19 27/14-16.parquet 23516 2026-09-27 13:58:59.732000+00:00 2026-09-27 15:58:58.828000+00:00 2026-09-27 13:59:00.066000+00:00 2026-09-27 15:58:59.137000+00:00 20 27/16-18.parquet 11295 2026-09-27 15:59:01.053000+00:00 2026-09-27 17:58:58.973000+00:00 2026-09-27 15:59:01.571000+00:00 2026-09-27 17:58:59.330000+00:00 21 27/18-20.parquet 12222 2026-09-27 17:59:00.987000+00:00 2026-09-27 19:58:57.471000+00:00 2026-09-27 17:59:01.280000+00:00 2026-09-27 19:58:57.782000+00:00 22 27/20-22.parquet 12155 2026-09-27 19:59:01.862000+00:00 2026-09-27 21:58:58.391000+00:00 2026-09-27 19:59:02.205000+00:00 2026-09-27 21:58:58.686000+00:00 23 27/22-24.parquet 22938 2026-09-27 21:59:01.401000+00:00 2026-09-27 23:58:58.499000+00:00 2026-09-27 21:59:01.743000+00:00 2026-09-27 23:58:58.845000+00:00 24 28/00-02.parquet 34440 2026-09-27 23:59:01.201000+00:00 2026-09-28 01:58:59.595000+00:00 2026-09-27 23:59:01.550000+00:00 2026-09-28 01:58:59.896000+00:00 25 28/02-04.parquet 27734 2026-09-28 01:58:59.901000+00:00 2026-09-28 03:58:58.679000+00:00 2026-09-28 01:59:00.226000+00:00 2026-09-28 03:58:58.998000+00:00 26 28/04-06.parquet 25391 2026-09-28 03:59:00.822000+00:00 2026-09-28 05:58:59.199000+00:00 2026-09-28 03:59:01.118000+00:00 2026-09-28 05:58:59.513000+00:00 27 28/06-08.parquet 19820 2026-09-28 05:59:02.409000+00:00 2026-09-28 07:58:58.108000+00:00 2026-09-28 05:59:02.803000+00:00 2026-09-28 07:58:58.516000+00:00 28 28/08-10.parquet 24203 2026-09-28 07:58:59.717000+00:00 2026-09-28 09:58:57.894000+00:00 2026-09-28 07:59:00.060000+00:00 2026-09-28 09:58:58.200000+00:00 29 28/10-12.parquet 16671 2026-09-28 09:59:02.569000+00:00 2026-09-28 11:58:56.090000+00:00 2026-09-28 09:59:02.878000+00:00 2026-09-28 11:58:56.405000+00:00 30 28/12-14.parquet 34307 2026-09-28 11:59:00.093000+00:00 2026-09-28 13:58:58.976000+00:00 2026-09-28 11:59:00.527000+00:00 2026-09-28 13:58:59.323000+00:00 31 28/14-16.parquet 43206 2026-09-28 13:59:00.036000+00:00 2026-09-28 15:58:59.170000+00:00 2026-09-28 13:59:00.529000+00:00 2026-09-28 15:58:59.529000+00:00 32 28/16-18.parquet 45900 2026-09-28 15:58:59.973000+00:00 2026-09-28 17:58:57.392000+00:00 2026-09-28 15:59:00.300000+00:00 2026-09-28 17:58:57.713000+00:00 33 28/18-20.parquet 28330 2026-09-28 17:58:59.787000+00:00 2026-09-28 19:58:58.995000+00:00 2026-09-28 17:59:00.115000+00:00 2026-09-28 19:58:59.349000+00:00 34 28/20-22.parquet 15240 2026-09-28 19:59:00.205000+00:00 2026-09-28 21:58:59.417000+00:00 2026-09-28 19:59:00.552000+00:00 2026-09-28 21:58:59.896000+00:00 35 28/22-24.parquet 17022 2026-09-28 21:58:59.417000+00:00 2026-09-28 23:58:58.550000+00:00 2026-09-28 21:59:00.027000+00:00 2026-09-28 23:58:58.852000+00:00 ┌──────────────┬─────────────────────┬───────────────────────────────────────┬─────────────────────────────────────────┐ │ count_star() │ count(DISTINCT tid) │ count(DISTINCT main."row"(tid, hash)) │ count(DISTINCT main."row"(hash, tid, px │ │ │ │ │ , sz, "time")) │ │ int64 │ int64 │ int64 │ int64 │ ├──────────────┼─────────────────────┼───────────────────────────────────────┼─────────────────────────────────────────┤ │ 175800 │ 175800 │ 175800 │ 175800 │ └──────────────┴─────────────────────┴───────────────────────────────────────┴─────────────────────────────────────────┘ ┌─────────┬─────────┬────────────────────────────┬─────────┬─────────┬────────────────────┬────────────────────────────┐ │ min(px) │ max(px) │ quantile_cont(px, main.lis │ min(sz) │ max(sz) │ sum(sz) │ count_star() FILTER (WHERE │ │ │ │ t_value(0.0001, 0.5, 0.999 │ │ │ │ ((sz <= 0) OR (px <= 0) O │ │ │ │ 9)) │ │ │ │ R (px IS NULL) OR (sz IS N │ │ │ │ │ │ │ │ ULL))) │ │ double │ double │ double[] │ double │ double │ double │ int64 │ ├─────────┼─────────┼────────────────────────────┼─────────┼─────────┼────────────────────┼────────────────────────────┤ │ 84082.0 │ 85138.0 │ [84084.0, 84577.5, │ 1e-05 │ 50.0 │ 14529.770490000215 │ 0 │ │ │ │ 85137.0] │ │ │ │ │ └─────────┴─────────┴────────────────────────────┴─────────┴─────────┴────────────────────┴────────────────────────────┘ Shell cwd was reset to /tmp/peerfeed-a21/work-s1-raw ## [agent thinking] ## [agent] Files are offset by ~1 minute, so I filter by trade `time` across all files. Next: check for gaps and duplicates, then compute. ## [tool call 5] Bash { "command": "cd /tmp/peerfeed-a21/archive/hyperliquid/trades/parquet/2026/09; P=/tmp/peerfeed-a21/venv/bin/python; $P -c \"\nimport duckdb\nc=duckdb.connect(); c.sql(\\\"set timezone='UTC'\\\")\nc.sql(\\\"create view t as select * from read_parquet(['26/*.parquet','27/*.parquet','28/*.parquet']) where coin='BTC' and time>='2026-09-27' and time<'2026-09-28'\\\")\nprint(c.sql(\\\"select count(*), count(distinct tid) from read_parquet(['2*/*.parquet']) where coin='BTC'\\\"))\nprint(c.sql(\\\"select time, lag(time) over (order by time) p, time-p gap from t qualify gap > interval 2 minute order by gap desc limit 10\\\"))\nprint(c.sql(\\\"select date_trunc('hour',time) h, count(*), sum(sz) from t group by 1 order by 1\\\").df().to_string())\nprint(c.sql(\\\"select sum(px*sz)/sum(sz) vwap, sum(sz) vol, sum(px*sz) notional, count(*) from t\\\").df().to_string())\n\"" } ## [tool result] ┌──────────────┬─────────────────────┐ │ count_star() │ count(DISTINCT tid) │ │ int64 │ int64 │ ├──────────────┼─────────────────────┤ │ 2964554 │ 2964526 │ └──────────────┴─────────────────────┘ ┌──────────────────────────┬──────────────────────────┬──────────┐ │ time │ p │ gap │ │ timestamp with time zone │ timestamp with time zone │ interval │ └──────────────────────────┴──────────────────────────┴──────────┘ 0 rows h count_star() sum(sz) 0 2026-09-27 00:00:00+00:00 4830 355.67965 1 2026-09-27 01:00:00+00:00 4929 191.93956 2 2026-09-27 02:00:00+00:00 4511 227.88675 3 2026-09-27 03:00:00+00:00 4470 253.44323 4 2026-09-27 04:00:00+00:00 4654 196.00216 5 2026-09-27 05:00:00+00:00 5447 285.33355 6 2026-09-27 06:00:00+00:00 5250 318.82944 7 2026-09-27 07:00:00+00:00 6143 351.19070 8 2026-09-27 08:00:00+00:00 10599 1293.07605 9 2026-09-27 09:00:00+00:00 8579 841.22455 10 2026-09-27 10:00:00+00:00 9867 1035.39590 11 2026-09-27 11:00:00+00:00 5262 388.58939 12 2026-09-27 12:00:00+00:00 6297 536.96426 13 2026-09-27 13:00:00+00:00 12958 965.04302 14 2026-09-27 14:00:00+00:00 13035 816.07084 15 2026-09-27 15:00:00+00:00 10360 790.58406 16 2026-09-27 16:00:00+00:00 6375 348.16591 17 2026-09-27 17:00:00+00:00 4908 230.41403 18 2026-09-27 18:00:00+00:00 5506 323.04830 19 2026-09-27 19:00:00+00:00 6880 639.82809 20 2026-09-27 20:00:00+00:00 6320 834.26291 21 2026-09-27 21:00:00+00:00 5697 389.94988 22 2026-09-27 22:00:00+00:00 13896 1757.69621 23 2026-09-27 23:00:00+00:00 9027 1159.15205 vwap vol notional count_star() 0 84600.707607 14529.77049 1.229229e+09 175800 Shell cwd was reset to /tmp/peerfeed-a21/work-s1-raw ## [agent thinking] ## [agent] I get a VWAP of **84,600.71 USD** for the Hyperliquid BTC perpetual on 2026-09-27 (UTC). **How I got it:** I used the Hyperliquid trades files in PeerFeed's archive, took every trade in coin `BTC` whose trade time falls on 2026-09-27 UTC, and computed Σ(price × size) / Σ(size). - 175,800 trades - 14,529.77 BTC traded, about $1.229bn notional - Prices ranged from 84,082 to 85,138, with a median of 84,577.5 **Checks:** - **File boundaries:** The two-hour files are cut by recording time, which runs about one minute behind the 00/02/… hour marks. So `27/00-02.parquet` starts at 23:59 on the 26th and the last minute of the 27th sits in `28/00-02.parquet`. I read the 26th–28th files and filtered on trade time, not on file name. - **Duplicates:** Across the whole archive, 28 trade IDs appear twice, but none fall on the 27th. Every trade ID that day is unique, so nothing was removed. - **Gaps:** There is no gap between consecutive trades longer than two minutes, and every hour has trades. - **Bad values:** No null, zero or negative prices or sizes. Sizes run from 0.00001 to 50 BTC, and nothing looks like a fat-finger trade. FINAL ANSWER **VWAP of the Hyperliquid BTC perpetual on 2026-09-27 (UTC) = 84,600.71 USD** Judgement calls: 1. **Which market:** Hyperliquid coin `BTC` is the perpetual, and it's the only coin containing "BTC" in the files. 2. **Day boundary:** 00:00:00 to 24:00:00 UTC by the exchange's trade time, not by recording time or file name. 3. **Filtering:** No trades were removed, since none were duplicates or bad prints on that day. 4. **Weighting:** Weighted by BTC size (Σpx·sz / Σsz). This is the standard definition and the same as notional divided by BTC volume. ## [run ended] subtype=success turns=6 duration_ms=31250