Je, mapengo ya bei za hisa hujazwa kila mara?
Je, mapengo ya bei za hisa hujazwa kila mara? Sio kwa muda uliopangwa. Tazama viwango vya kujaza pengo kwa vipindi vya siku tano, ishirini na sitini kwa kampuni kubwa.
Je, mapengo ya bei za hisa (stock gaps) hujazwa kila mara? Si ndani ya muda mfupi wa kutosha kufanya biashara, na madai hayo huendelea kuwepo zaidi pale ambapo hakuna anayetoa ufafanuzi. Pengo ni umbali kati ya bei ya ufunguzi ya leo na bei ya kufunga ya kikao cha kawaida cha jana; kujaza pengo ni wakati ambapo bei inafanya biashara tena kupitia bei hiyo ya awali ya kufunga, na hoja nzima inategemea msomaji yuko tayari kusubiri kwa muda gani.
Nini kinachochukuliwa kama pengo, na nini kinachochukuliwa kama kujaza pengo
Pengo hupimwa kwa kulinganisha bei ya ufunguzi na bei ya kufunga ya awali. Kikao cha jana kilimalizika kwa bei fulani, cha leo kilifunguka kwa bei nyingine, na tofauti hiyo ndiyo pengo. Si umbali kutoka kwa bei ya juu au ya chini ya jana ndani ya kikao (intraday). Hilo ni lengo tofauti na rahisi zaidi, na kubadilishana moja kwa nyingine ndiyo njia ambayo "pengo" hubadilika kimyakimya kuwa kitu kinachojazwa wakati wa chakula cha mchana katika siku yoyote ya kawaida. Mapengo madogo hutokea karibu kila kikao: biashara katika maeneo mengine ya saa, mabadiliko ya fahirisi, habari za hisa mahususi, na marekebisho ya ex-dividend yote husogeza bei ya haki wakati soko la Marekani likiwa limefungwa. Kwa nini hisa hupata mapengo usiku kucha inashughulikia chanzo cha marekebisho hayo ya bei ya usiku.
Kujaza pengo ni wakati wa kwanza ambapo hisa inafanya biashara tena kupitia bei ya awali ya kufunga. Ufafanuzi huo haujakamilika bila kuweka muda wa mwisho. Katika muda usio na kikomo, hisa yenye ukwasi (liquid stock) huvuka karibu kiwango chochote ambacho msomaji atataja wakati fulani, jambo ambalo hufanya madai ya "mapengo hujazwa kila mara" kutoweza kukanushwa badala ya kuwa kweli. Kila namba hapa chini ina muda uliowekwa.
Sampuli moja inatumika katika ukurasa huu: hisa nane za kampuni kubwa za Marekani (large-cap), siku za mapengo kuanzia Januari 2021 hadi Februari 2026, mapengo yakijaribiwa dhidi ya bei za juu na chini za dakika moja za kikao cha kawaida. Mapengo yaliyo chini ya 0.25% yanaondolewa kama makadirio.
Je, mapengo ya hisa hujazwa kila mara ndani ya siku hiyo hiyo?
Anza na ukubwa. Panga kila pengo kulingana na ukubwa wake, kisha uulize ikiwa bei ya kufunga ya awali iliguswa tena kabla ya kikao hicho kumalizika.
SQL halisi nyuma ya kila namba
WITH sessions AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS session_open,
argMax(toFloat64(close), window_start) AS session_close,
toFloat64(max(high)) AS session_high,
toFloat64(min(low)) AS session_low
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'JPM', 'KO', 'WMT', 'XOM')
AND window_start >= '2021-01-01'
AND window_start < '2026-07-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, d
),
gapped AS
(
SELECT
d,
session_open,
session_high,
session_low,
lagInFrame(session_close) OVER (PARTITION BY ticker ORDER BY d ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close
FROM sessions
),
measured AS
(
SELECT
abs(100 * (session_open / prior_close - 1)) AS gap_pct,
toUInt8(if(session_open > prior_close,
session_low <= prior_close,
session_high >= prior_close)) AS filled_same_session
FROM gapped
WHERE prior_close > 0
AND d <= toDate('2026-02-28')
AND abs(100 * (session_open / prior_close - 1)) >= 0.25
)
SELECT
multiIf(gap_pct < 0.5, '0.25 to 0.5%',
gap_pct < 1, '0.5 to 1%',
gap_pct < 2, '1 to 2%',
gap_pct < 4, '2 to 4%',
'4% or more') AS gap_bucket,
count() AS gap_days,
round(100 * avg(filled_same_session), 1) AS same_session_fill_pct
FROM measured
GROUP BY gap_bucket
ORDER BY min(gap_pct) ASCMapengo madogo zaidi katika sampuli, 0.25% hadi 0.5%, yalijazwa katika kikao hicho hicho 74.6% ya wakati katika matukio 2381. Mapengo ya 4% au zaidi yalijazwa katika kikao hicho hicho 14.8% ya wakati. Mteremko wa chini kwenye chati ndio funzo kuu: kadiri pengo linavyokuwa dogo, ndivyo hisa inavyozunguka mara nyingi zaidi kuvuka pengo hilo wakati wa mchana, ambayo ni njia nyingine ya kusema kuwa mapengo madogo ni kelele (noise) na kelele hurejea nyuma.
Inachukua muda gani kujaza pengo?
Ongeza muda wa mwisho na kiwango cha kujaza pengo kinaweza kupanda tu. Dirisha refu zaidi huongeza ujazaji na haliondoi hata moja. Swali ni kiasi gani cha jumla kinachofika kwa kuchelewa kiasi cha kuwa hakina faida.
SQL halisi nyuma ya kila namba
WITH sessions AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS session_open,
argMax(toFloat64(close), window_start) AS session_close,
toFloat64(max(high)) AS session_high,
toFloat64(min(low)) AS session_low
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'JPM', 'KO', 'WMT', 'XOM')
AND window_start >= '2021-01-01'
AND window_start < '2026-07-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, d
),
paths AS
(
SELECT
d,
session_open,
session_high,
session_low,
lagInFrame(session_close) OVER (PARTITION BY ticker ORDER BY d ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close,
min(session_low) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) AS low_5,
max(session_high) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 4 FOLLOWING) AS high_5,
min(session_low) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 19 FOLLOWING) AS low_20,
max(session_high) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 19 FOLLOWING) AS high_20,
min(session_low) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 59 FOLLOWING) AS low_60,
max(session_high) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 59 FOLLOWING) AS high_60
FROM sessions
),
gaps AS
(
SELECT
session_open > prior_close AS gap_up,
prior_close,
session_low,
session_high,
low_5,
high_5,
low_20,
high_20,
low_60,
high_60
FROM paths
WHERE prior_close > 0
AND d <= toDate('2026-02-28')
AND abs(100 * (session_open / prior_close - 1)) >= 1
),
flags AS
(
SELECT arrayJoin([
(1, '1 session', toUInt8(if(gap_up, session_low <= prior_close, session_high >= prior_close))),
(2, '5 sessions', toUInt8(if(gap_up, low_5 <= prior_close, high_5 >= prior_close))),
(3, '20 sessions', toUInt8(if(gap_up, low_20 <= prior_close, high_20 >= prior_close))),
(4, '60 sessions', toUInt8(if(gap_up, low_60 <= prior_close, high_60 >= prior_close)))
]) AS f
FROM gaps
)
SELECT
tupleElement(f, 2) AS horizon,
count() AS gaps_measured,
round(100 * avg(tupleElement(f, 3)), 1) AS filled_pct
FROM flags
GROUP BY horizon
ORDER BY min(tupleElement(f, 1)) ASCKatika mapengo 2191 ya 1% au zaidi, 34% yalijazwa ndani ya kikao hicho hicho na 88.7% yalikuwa yamejazwa ndani ya 60 sessions. Takwimu ya pili ndiyo inayotajwa mara nyingi, huku muda wa mwisho ukiachwa. Vikao sitini ni takriban miezi mitatu ya biashara, muda mrefu wa kushikilia nafasi inayotegemea mtafaruku wa siku moja, na pengo linalojazwa siku ya 47 baada ya hisa kusafiri mbali upande mwingine kwanza bado linahesabika kama lililojazwa katika takwimu hiyo.
Mapengo ya kelele na mapengo ya taarifa ni makundi mawili
Pengo katika siku tulivu yenye kiasi cha kawaida cha biashara ni marekebisho madogo ya bei. Pengo linalotokana na habari za mapato (earnings) au ofa ya ununuzi wa kampuni hubeba mabadiliko katika thamani ya kampuni, na hakuna bei ya zamani ya kurejea. Kiasi cha biashara (volume) hutenganisha hayo mawili vizuri: marekebisho ya bei ambayo soko zima linataka kufanya biashara huchapisha mara nyingi zaidi ya kawaida.
SQL halisi nyuma ya kila namba
WITH sessions AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS session_open,
argMax(toFloat64(close), window_start) AS session_close,
toFloat64(max(high)) AS session_high,
toFloat64(min(low)) AS session_low,
sum(toFloat64(volume)) AS session_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'JPM', 'KO', 'WMT', 'XOM')
AND window_start >= '2021-01-01'
AND window_start < '2026-07-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY ticker, d
),
paths AS
(
SELECT
d,
session_open,
session_high,
session_low,
session_volume,
lagInFrame(session_close) OVER (PARTITION BY ticker ORDER BY d ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close,
avg(session_volume) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN 21 PRECEDING AND 2 PRECEDING) AS normal_volume,
min(session_low) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 19 FOLLOWING) AS low_20,
max(session_high) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN CURRENT ROW AND 19 FOLLOWING) AS high_20
FROM sessions
),
measured AS
(
SELECT
session_volume / normal_volume AS volume_ratio,
toUInt8(if(session_open > prior_close, session_low <= prior_close, session_high >= prior_close)) AS filled_same_session,
toUInt8(if(session_open > prior_close, low_20 <= prior_close, high_20 >= prior_close)) AS filled_20_sessions
FROM paths
WHERE prior_close > 0
AND normal_volume > 0
AND d >= toDate('2021-03-01')
AND d <= toDate('2026-02-28')
AND abs(100 * (session_open / prior_close - 1)) >= 1
)
SELECT
multiIf(volume_ratio < 1.5, 'Under 1.5x normal',
volume_ratio < 3, '1.5x to 3x normal',
'3x or more') AS volume_regime,
count() AS gap_days,
round(100 * avg(filled_same_session), 1) AS same_session_fill_pct,
round(100 * avg(filled_20_sessions), 1) AS within_20_sessions_fill_pct
FROM measured
WHERE isFinite(volume_ratio)
GROUP BY volume_regime
ORDER BY min(volume_ratio) ASCMapengo ya 1% au zaidi kwa kiasi cha biashara chini ya mara 1.5 ya kawaida ya hisa yalijazwa katika kikao hicho hicho 35.9% ya wakati. Mapengo ya ukubwa uleule kwa kiasi cha biashara mara tatu ya kawaida au zaidi yalijazwa katika kikao hicho hicho 15.3% ya wakati, na 45.8% ndani ya vikao 20, katika 59 ya hayo. Kundi lenye kiasi kikubwa cha biashara ndipo mapengo ya mapato na mapengo ya mikataba yanapopatikana. Kupata wastani wa makundi hayo mawili katika namba moja hakuelezei lolote kati ya hayo.
Kwa nini dakika za kwanza za kikao hupotosha takwimu za mapengo
Ujazo uliorekodiwa saa 3:31 asubuhi ni kitu dhaifu. Bei ya ufunguzi hutoka kwenye mnada, msalaba mmoja uliopangwa ambao huweka bei moja kwa kila agizo lililopangwa usiku kucha, na ufafanuzi wetu wa mnada wa ufunguzi unaelezea utaratibu huo. Katika dakika baada ya msalaba huo, spread zilizotajwa huwa katika upana wake mkubwa zaidi wa siku na chapa moja ndogo inaweza kusajili bei ya juu au ya chini ambayo hakuna kiasi chochote kilichofanyiwa biashara. Spread hupanuka wakati wa ufunguzi inashughulikia kwa nini nukuu ni ndogo sana hapo.
Chati iliyo hapa chini inaonyesha umbo kwenye kanda ya kikapu: wastani wa kiwango cha juu-chini cha dakika moja katika basis points (basis point moja ni sehemu ya mia moja ya asilimia), kwa kila dakika kumi na tano, hadi 2025.
SQL halisi nyuma ya kila namba
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 15 MINUTE), '%H:%i') AS et_time,
round(10000 * avg(toFloat64(high) / toFloat64(low) - 1), 1) AS avg_range_bps,
round(avg(toFloat64(volume)) / 1000, 1) AS avg_volume_k
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'JPM', 'KO', 'WMT', 'XOM')
AND window_start >= '2025-01-01'
AND window_start < '2026-01-01'
AND toFloat64(low) > 0
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY et_time
ORDER BY et_time ASCKikundi cha ufunguzi kina wastani wa 24.4 bps ya kiwango kwa dakika dhidi ya 6.9 bps katika kikundi cha 12:30, kwa 303.9 elfu ya hisa kwa dakika dhidi ya 69.6 elfu. Ujazo uliopigwa muhuri ndani ya kikundi hicho cha kwanza unategemea bei zisizoaminika zaidi za siku. Namba za kikao hicho hicho hapo juu zinajumuisha dakika hizo, jambo ambalo huzipendelea kidogo juu, na tahadhari hiyo inatumika kwa kila takwimu ya ujazo wa siku hiyo hiyo, ikiwemo hii.
Nini cha kuangalia kabla ya kuchukulia pengo kama biashara
- Muda wa mwisho. Kiwango cha ujazo bila muda wa mwisho si takwimu.
- Idadi ya watu. Ikiwa mapengo ya habari yalitenganishwa na yale ya utulivu, na jinsi mstari huo ulivyochorwa.
- Vipimo. Ikiwa ujazo ulijaribiwa dhidi ya viwango halisi vya biashara, na ikiwa dakika za kwanza za kikao zilihesabiwa.
- Walionusurika. Ikiwa sampuli inashikilia tu hisa zinazofanya biashara leo, jambo ambalo hufuta kimyakimya mapengo ambayo hayakuwahi kujazwa.
Toleo la kweli la madai hayo ni finyu kuliko kauli mbiu. Mapengo madogo kwa kiasi cha kawaida cha biashara hurejea mara nyingi na haraka. Mapengo makubwa kwa kiasi kikubwa cha biashara ni marekebisho ya bei ambayo mara nyingi hudumu kwa miezi. Kwa mtazamo wa moja kwa moja wa majina yanayopata mapengo, ukurasa wa hisa zinazohamia zaidi wiki hii hufuatilia wiki ya sasa, na jinsi masoko yanavyopona kutokana na ajali hutumia nidhamu hiyo hiyo ya muda kwa kupungua kwa fahirisi.
Maswali Yanayoulizwa Mara Kwa Mara
Je, mapengo ya bei za hisa hujazwa kila mara?
Hapana. Katika sampuli iliyo hapa, 88.7% ya mapengo ya 1% au zaidi yalifanya biashara tena kupitia bei ya awali ya kufunga ndani ya 60 sessions, ambayo huacha sehemu halisi yao ikiwa haijajazwa baada ya takriban miezi mitatu ya biashara. Toleo la "kila mara" hufanya kazi tu bila kikomo cha muda, ambapo huacha kuweza kupimika.
Inachukua muda gani kwa pengo kujazwa?
Inategemea pengo. Hapa, 34% ya mapengo ya 1% au zaidi yalijazwa ndani ya kikao hicho hicho, na ujazaji uliobaki hufika katika wiki na miezi inayofuata. Mapengo madogo hujilimbikiza katika kikundi cha siku hiyo hiyo, na yale yenye kiasi kikubwa cha biashara ndiyo ya polepole zaidi.
Kuna tofauti gani kati ya pengo la kawaida na pengo la breakaway?
Msamiati wa chati hugawanya mapengo kulingana na muktadha. Pengo la kawaida hufunguka katika siku ya kawaida yenye kiasi cha kawaida cha biashara na hakuna habari maalum, wakati pengo la breakaway hufunguka kwa kiasi kikubwa cha biashara pamoja na taarifa mpya, mara nyingi nje ya kiwango cha bei ambacho hisa imeshikilia kwa muda. Mgawanyiko wa kiasi cha biashara katika paneli hapo juu ni toleo linaloweza kupimika la tofauti hiyo hiyo.
Kwa nini takwimu za ujazo wa mapengo hutofautiana sana kati ya vyanzo?
Chaguzi nne husogeza namba kwa mbali: muda wa mwisho wa ujazo, kikapu cha hisa, kipindi kilichofunikwa, na ikiwa pengo linapimwa kutoka kwa bei ya awali ya kufunga au kutoka kwa bei ya awali ya juu na ya chini. Kiwango cha ujazo kilichotajwa kinachokosa mojawapo ya hayo manne hakiwezi kulinganishwa na kingine.
Jinsi namba hizi zilivyopimwa
Vikao vinajengwa kutoka kwa pau za dakika moja ndani ya saa za kawaida za biashara kwa saa za New York. Bei ya ufunguzi ni ufunguzi wa pau ya kwanza ya kikao cha kawaida, kufunga ni kufunga kwa pau ya mwisho, na bei ya juu na ya chini ya siku ni ncha za pau hizo. Kila pengo hupimwa dhidi ya bei ya kufunga ya kikao kilichopita cha ticker hiyo hiyo.
Muda wa vikao 5, 20 na 60 unajumuisha siku ya pengo yenyewe. Siku za mapengo huishia mwishoni mwa Februari 2026 wakati kanda ikiendelea hadi Juni 2026, kwa hivyo kila pengo katika paneli ya muda lina angalau vikao sitini vya baadaye vinavyopatikana na hakuna lililopigwa alama kama halijajazwa kwa kukosa data.
Kiasi cha kawaida cha biashara katika paneli ya tatu ni wastani wa kiasi cha biashara cha kikao cha kawaida katika vikao 20 vinavyoishia siku mbili kabla ya pengo, jambo ambalo huweka siku ya pengo na siku iliyotangulia nje ya benchmark yao wenyewe.
Kikapu ni hisa nane za kampuni kubwa zenye ukwasi. Majina madogo hupata mapengo mara nyingi zaidi na hujaza tofauti, kwa hivyo viwango hivi havihamishiwi kwa kampuni ndogo bila kurudia jaribio lilelile juu yao.
Kila paneli hapa inakuja na SQL kamili chini yake. Ili kufanya jaribio lilelile kwenye ticker unayofuatilia, uliza swali kwa Kiingereza rahisi kwenye terminal ya Strasmore.