konfirmasi_volume
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-10-01, from bearish-candlestick-patterns.
| volume_bucket | kejadian_count | turun_1_sesi_pct | turun_5_sesi_pct | turun_20_sesi_pct |
|---|---|---|---|---|
| 1. volume di bawah 0,8x rata rata | 269 | 48.7 | 44.2 | 39.8 |
| 2. volume 0,8x sampai 1,2x | 597 | 46.2 | 44.6 | 41.5 |
| 3. volume 1,2x sampai 2x | 223 | 46.2 | 42.2 | 41.3 |
| 4. volume di atas 2x rata rata | 30 | 26.7 | 30 | 43.3 |
- Rows × columns
- 4 × 5
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
volume_bucket |
text | 4 distinct values | |
kejadian_count |
number | 30 to 597 | count |
turun_1_sesi_pct |
number | 26.7 to 48.7 | percent |
turun_5_sesi_pct |
number | 30 to 44.6 | percent |
turun_20_sesi_pct |
number | 39.8 to 43.3 | percent |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH
harian AS (
SELECT ticker, date,
argMax(toFloat64(open), _ingest_time) AS o,
argMax(toFloat64(close), _ingest_time) AS c,
argMax(toFloat64(volume), _ingest_time) AS v
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'JPM', 'JNJ', 'KO', 'PG', 'WMT', 'XOM')
AND date BETWEEN '2010-01-01' AND '2026-03-31'
GROUP BY ticker, date
),
pecahan AS (
SELECT ticker, groupArray(execution_date) AS tanggal
FROM global_markets.stocks_splits
WHERE ticker IN ('AAPL', 'MSFT', 'JPM', 'JNJ', 'KO', 'PG', 'WMT', 'XOM')
AND execution_date BETWEEN '2009-11-01' AND '2026-05-31'
GROUP BY ticker
),
bars AS (
SELECT ticker, date, o, c, v,
lagInFrame(o, 1) OVER w AS p1o,
lagInFrame(c, 1) OVER w AS p1c,
leadInFrame(c, 1) OVER w AS f1c,
leadInFrame(c, 5) OVER w AS f5c,
leadInFrame(c, 20) OVER w AS f20c,
avg(v) OVER w2 AS vol_rata_20
FROM harian
WINDOW w AS (PARTITION BY ticker ORDER BY date ROWS BETWEEN 20 PRECEDING AND 20 FOLLOWING),
w2 AS (PARTITION BY ticker ORDER BY date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING)
)
SELECT multiIf(b.v / b.vol_rata_20 < 0.8, '1. volume di bawah 0,8x rata rata',
b.v / b.vol_rata_20 < 1.2, '2. volume 0,8x sampai 1,2x',
b.v / b.vol_rata_20 < 2.0, '3. volume 1,2x sampai 2x',
'4. volume di atas 2x rata rata') AS volume_bucket,
count() AS kejadian_count,
round(100 * countIf(b.f1c < b.c) / count(), 1) AS turun_1_sesi_pct,
round(100 * countIf(b.f5c < b.c) / count(), 1) AS turun_5_sesi_pct,
round(100 * countIf(b.f20c < b.c) / count(), 1) AS turun_20_sesi_pct
FROM bars AS b
LEFT JOIN pecahan AS s ON s.ticker = b.ticker
WHERE b.date BETWEEN '2010-03-01' AND '2025-12-31'
AND b.p1c > b.p1o AND b.c < b.o AND b.o > b.p1c AND b.c < b.p1o
AND b.vol_rata_20 > 0 AND b.f1c > 0 AND b.f5c > 0 AND b.f20c > 0
AND NOT arrayExists(d -> d > b.date - 30 AND d <= b.date + 45, s.tanggal)
GROUP BY volume_bucket
ORDER BY volume_bucket
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.