07 Analis market AI
Berikan tabel market live Anda ke sebuah ClickHouse Agent, buat ia mendeteksi dan menyelidiki sebuah pergerakan sendiri, lalu uji jawabannya dengan SQL deterministik.
Titik awal
Collector sudah healthy dalam mode live, degraded, atau fixture, query Modul 05
mengembalikan hasil, dan Anda sudah masuk ke organization yang memiliki polymarket-workshop. Tidak perlu
API key baru maupun proses lokal: ClickHouse Agents berjalan di Cloud dengan identitas yang
Anda buat di Modul 00.
Mengapa
Modul 05 menjawab empat pertanyaan yang sudah Anda tuliskan sebelumnya. Market tidak menunggu daftar pertanyaan Anda. Bentuk yang berguna adalah analis on-call: memperhatikan sebuah pergerakan, menyusun hipotesis, menulis query yang mengujinya, dan melaporkan putusan beserta buktinya. Loop itu juga bisa gagal tanpa suara, jadi dua langkah terakhir menguji agent itu ketimbang mempercayainya.
Langkah 1 — Buka ClickHouse Agents dan hubungkan service ini
open 'https://ai.clickhouse.cloud'Console Cloud menuju tempat yang sama: service Anda, lalu ClickHouse agents.
Buat agent bernama Polymarket analyst, tambahkan tool ClickHouse, arahkan ke
polymarket-workshop, dan pastikan ia melaporkan Connected. Tanpa tool yang terhubung,
agent akan menebak-nebak schema Anda. Tempelkan ini sebagai instruksinya; setiap baris ada di sana karena
agent akan salah tanpa baris itu:
You answer questions about live public prediction-market data in the polymarket database
of this service. Rules:
- Probability is the quote midpoint: polymarket.price_ticks where midpoint > 0, or the
merged close of polymarket.market_midpoints_1m. A last_trade_price tick is not one.
- market_midpoints_1m holds AggregateFunction states. Read them only through
argMinMerge(open), maxMerge(high), minMerge(low), argMaxMerge(close) and
countMerge(updates), grouped by minute, token_id.
- Metadata comes from polymarket.markets FINAL, trades from polymarket.trades_clean.
- One condition_id per market, one token_id per outcome. A Yes move and its No
counterpart are one event, not two findings.
- Timestamps are UTC and the newest minute is usually still filling.
- Show the SQL you ran and the age of the data behind every number.
- Public-data analysis only. Never give trading advice.Langkah 2 — Putaran satu: biarkan ia menemukan pergerakannya
Using the ClickHouse tool, find the largest midpoint move in the last 30 minutes of
polymarket.market_midpoints_1m. For each token_id compare the merged close of the most
recent complete minute with the merged close five minutes earlier. Report the question,
the outcome, the token_id, both probabilities in percent, the move in percentage points,
and the two minutes you compared. Show the SQL.Diharapkan: satu outcome yang disebut namanya, pergerakan bertanda dalam poin, dan SQL yang me-merge aggregate state ketimbang memilih kolom state mentahnya.
Langkah 3 — Putaran dua: buat ia menyelidiki temuannya sendiri
Investigate that move before you believe it. From polymarket.price_ticks report the
latest best_bid, best_ask, spread in percentage points, and quote age in seconds for that
token_id. From polymarket.trades_clean compare matched volume as price * size over the
five minutes covering the move against the previous five minutes. Then give a verdict of
corroborated, weakly corroborated, or likely artifact, and name the evidence behind it.Anda tidak pernah memberi tahu bagaimana ketiga sinyal itu digabungkan. Membuat pilihan itulah yang menjadikannya agent alih-alih kotak text-to-SQL.
Langkah 4 — Putaran tiga: buat ia menyerang putusannya sendiri
List every assumption in that verdict that could be wrong, and for each one the single
query that would falsify it. Run the two you consider most likely to be wrong, then tell
me whether the verdict survives.Jawaban yang berguna menyebut menit terbaru yang masih parsial, umur quote, dan sesedikit apa update yang menopang menit yang tipis. Catat apakah putusannya bertahan.
Langkah 5 — Uji agent dengan SQL deterministik
Jalankan ini di SQL console Cloud. Query ini menjawab Langkah 2 tanpa agent, jadi baris teratasnya adalah referensi Anda:
WITH per_minute AS
(
SELECT
token_id,
minute,
argMaxMerge(close) AS close_midpoint
FROM polymarket.market_midpoints_1m
WHERE minute >= now() - INTERVAL 30 MINUTE
AND minute < toStartOfMinute(now())
GROUP BY token_id, minute
)
SELECT
m.question,
m.outcome,
p.token_id,
round(argMax(p.close_midpoint, p.minute) * 100, 2) AS latest_percent,
round(argMin(p.close_midpoint, p.minute) * 100, 2) AS oldest_percent,
round(latest_percent - oldest_percent, 2) AS move_points,
min(p.minute) AS window_start,
max(p.minute) AS window_end
FROM per_minute AS p
INNER JOIN
(
SELECT token_id, question, outcome
FROM polymarket.markets FINAL
) AS m ON m.token_id = p.token_id
GROUP BY m.question, m.outcome, p.token_id
ORDER BY abs(move_points) DESC
LIMIT 5;Jendela waktunya memang berbeda: query ini merentang dari menit lengkap tertua sampai terbaru yang ada,
sedangkan agent diminta memakai langkah lima menit. Bandingkan token_id, tanda dari
move_points, dan besarannya, bukan angka desimalnya. Lalu periksa angka koroborasi milik
agent terhadap query Spread and freshness dan Volume velocity yang disimpan di
Modul 06.
Langkah 6 — Tuliskan apa yang salah dari agent itu
Setidaknya satu dari hal-hal ini biasanya muncul. Temukan milik Anda di transkripnya:
- memilih
closeatauhighdarimarket_midpoints_1mtanpa fungsiMerge, lalu menjelaskan apa pun yang kembali dengan penuh keyakinan; - memperlakukan menit terbaru yang masih terisi sebagai sudah lengkap, sehingga bagian terakhirnya terlalu dibesar-besarkan;
- melaporkan token Yes dan token No-nya sebagai dua mover yang independen;
- menghilangkan
FINALpadapolymarket.markets, sehingga market yang ditemukan ulang ter-join dua kali; - menyebut midpoint sebagai harga yang bisa ditransaksikan, atau mengutip pergerakan tanpa umur datanya.
Jika angkanya persis cocok dengan penguji, uji langsung menit parsialnya: tanyakan apakah
menit terbarunya sudah lengkap, lalu bandingkan max(minute) di
polymarket.market_midpoints_1m dengan toStartOfMinute(now()). Nilai yang sama berarti belum lengkap,
dan agent yang mengatakan sebaliknya telah menyatakan sesuatu yang salah tentang data live.
Selesai bila
- SQL deteksi milik agent membaca
market_midpoints_1mmelalui fungsiMerge; - putusannya mengutip spread, umur quote, dan volume trade, bukan harga saja;
- baris teratas query penguji sepakat dengan agent soal token dan arah pergerakannya, atau Anda bisa menjelaskan perbedaannya; dan
- Anda sudah menuliskan satu hal yang salah atau dilebih-lebihkan oleh agent.
Berikutnya: penutup dan bersih-bersih.