найбільші зміни вартості акцій цього місяця
Рейтинг акцій за результатами біржових торгів. Список лідерів зростання та падіння з обсягом у доларах та фільтрацією за обігом за поточний місяць.
Нижче наведено рейтинг найбільших змін вартості акцій за цей місяць безпосередньо за даними біржі. Список охоплює 21 завершених торгових сесій з Jun 23 по Jul 22. У переліку представлені лише операційні компанії, обсяг торгів якими за цей період склав не менше $1 billion, тому кожна зміна в таблиці підкріплена реальними капіталами. Боргові та інверсні фонди виключені з вибірки; період переглядається по мірі завершення нових сесій.
Найбільші зростання акцій цього місяця
У таблиці наведено рейтинг найбільших прибутків за обраний період. Кожен рядок містить суму у доларах та відсоткове значення; саме сума дозволяє відрізнити масове переоцінювання від обмеженого.
Точний SQL-код для кожного числа
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC
LIMIT 10CRNX очолив список із прибутком 136.1% при обігу в $9.7 мільярдів, випередивши PBF з 65.9% та MAN з 62.1%. Рух такого масштабу протягом місяця зазвичай спочатку проявляється як підвищений відносний обсяг порівняно з середнім денним обсягом акції, і часто він починається з нічного розриву в одну сесію, а не через стабільне зростання протягом усього періоду.
Найбільші втрати акцій цього місяця
Аналогічний показник у зворотному порядку: найрізкіше падіння за період серед компаній з обсягом торгів не менше ніж $1 мільярд.
Точний SQL-код для кожного числа
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) ASC
LIMIT 10CLBK продемонстрував найсильніше падіння на -44.6% при обсязі торгів 1.1 мільярд доларів, наступним став NVTS з показником -41.6%. Звертайте увагу на стовпець доларів у цій таблиці. Падіння на ринку з великими обсягами торгів відрізняється від ситуації на спокійному ринку; тут ці події розрізняються, а не припускаються.
Те саме питання на трьох часових проміжках
Одне питання, три вікна. Назва може очолювати один список і зовсім не з'являтися у двох інших.
- найбільші втрати акцій цього тижня, а також акції-лідери зростання за останні п'ять сесій
- Ця сторінка за останній місяць
- найбільші зміна ціни акцій у 2026, за показниками з початку року
Ці три таблиці створюються окремо, і їхні критерії відбору не є ідентичними. Щотижнева сторінка встановлює власний мінімальний поріг ліквідності та мінімум за сесію протягом п'ятисесійного вікна. Сторінка за результатами з початку року використовує середній щоденний обсяг у доларах, а не загальний обсяг торгів за весь період. Кожна сторінка описує власні правила у відповідному розділі з методологією, тому ознайомтеся з ними, перш ніж переносити назву з однієї таблиці в іншу.
Окремий розрив ціни домінує у щотижневій таблиці, але зникає протягом року. Повільне місячне коливання взагалі не потрапляє до щотижневої таблиці. Порівняння трьох таблиць одночасно — це найпростіший спосіб відрізнити одноденну подію від тренду.
Показники ринку за той самий період
Динаміка окремих акцій суттєво відрізняється від загальноринкової динаміки. Чотири основні індекси, кожен з яких перераховано від ціни відкриття на початку обраного періоду:
Точний SQL-код для кожного числа
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT session,
round(anyIf(cum_pct, ticker = 'SPY'), 2) AS sp500_pct,
round(anyIf(cum_pct, ticker = 'QQQ'), 2) AS nasdaq100_pct,
round(anyIf(cum_pct, ticker = 'DIA'), 2) AS dow_pct,
round(anyIf(cum_pct, ticker = 'IWM'), 2) AS russell2000_pct
FROM (
SELECT ticker,
formatDateTime(d, '%Y-%m-%d') AS session,
100 * (c / first_value(o) OVER (PARTITION BY ticker ORDER BY d) - 1) AS cum_pct
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
)
)
GROUP BY session
ORDER BY sessionНа останній торговій сесії індекс S&P 500 склав 1.85%, Nasdaq 100 — -1.47%, Dow — 1.33%, а Russell 2000 — 0.17%. Чотири кошики, один період, чотири різні результати. Тепер порівняємо лідерів зростання з цим діапазоном: показник найкращих акцій за цей період перевищив 136.1%. Показники окремих компаній мають значно більший розкид, ніж індекси, що їх об'єднують, — саме тому списки найбільш активних акцій складаються з окремих назв.
Як показали себе відомі бренди
Читачі, які шукають найкращі акції цього місяця, зазвичай також хочуть знати результати компаній, які вони вже мають у портфелі. Фіксований кошик із восьми відомих мега-капіталізацій, той самий період та та сама структура:
Точний SQL-код для кожного числа
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'META', 'TSLA', 'AVGO')
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESCПоказники групи коливалися від 11.5% для META на максимумі до -4.7% для TSLA на мінімумі. Компанії не рухалися як єдине ціле, що є скоріше правилом, ніж винятком. Належність до індексу об'єднує ці компанії, проте їхні структури доходів майже не пов'язані між собою. Цей кошик є фіксованим списком із восьми назв, а не рейтингом, тому використовуйте його для орієнтації, а не як твердження про розмір компаній.
Як виглядає типовий місяць
Рейтинги відображають екстремальні значення. Цей графік показує основну масу. Усі компанії 1167, що пройшли відбір, розподілені за рівнем прибутковості за цей період:
Точний SQL-код для кожного числа
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT tup.1 AS return_bucket,
tup.3 AS stocks
FROM (
SELECT arrayJoin(arrayZip(
['down 20% or more', 'down 10% to 20%', 'down 0% to 10%',
'up 0% to 10%', 'up 10% to 20%', 'up 20% or more'],
[1, 2, 3, 4, 5, 6],
[countIf(r <= -20), countIf(r > -20 AND r <= -10), countIf(r > -10 AND r < 0),
countIf(r >= 0 AND r < 10), countIf(r >= 10 AND r < 20), countIf(r >= 20)])) AS tup
FROM (
SELECT ticker,
(argMax(c, d) / argMin(o, d) - 1) * 100 AS r
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
)
ORDER BY tup.252 відібраних компаній продемонстрували зростання на 20% або більше, а 50 — падіння на 20% або більше. Два сегменти, найближчі до нульової позначки, містили 300 та 515 назв. Цей графік відображає структуру, з якої формується рейтинг найбільш активних акцій, де перша десятка — це крайній правий край. Враховуйте це при аналізі наведених вище таблиць: зміна на 10% за місяць є статистичним відхиленням за своєю природою, а не типовим показником для звичайної акції.
Що потрапляє до списку лідерів місячного приросту
Місяць — це достатньо довгий період для багатьох подій, але зазвичай одна з них стає визначальною. Назви в таких списках зазвичай пов'язані з конкретними датами в календарі компанії. Найчастіше це квартальні звіти: перевищення або невідповідність прогнозам змінює ціну за одну торгову сесію, після чого протягом решти місяця торгівлі відбуваються навколо нового рівня. Зміна прогнозів (guidance) діє аналогічно, навіть без публікації фінансових результатів.
Новини про злиття та поглинання залишають найбільш характерний слід у місячних списках. Ціна акцій зростає до рівня, близького до ціни оголошеної угоди, після чого активність затихає; при цьому обсяг торгів у доларах залишається величезним, тоді як відсоткова зміна стабілізується. Якщо компанія на початку списку лідерів зростання демонструє величезний обсяг торгів у доларах і ціну, яка припинила рух посеред періоду, цей патерн варто перевірити насамперед.
Секторальні тренди мають значення протягом місяця, що рідко спостерігається на тижневому проміжку. Зміни відсоткових ставок, цін на нафту або на чипи пам'яті впливають на цілу групу активів одночасно. Саме тому в місячних списках часто спостерігаються кластери схожих компаній, а не десять непов'язаних між собою назв. Решту списків доповнюють дії аналітиків, включення або виключення з індексів, результати судових чи регуляторних розглядів, а також short squeezes. Жодна з цих причин не є очевидною лише за відсотковим показником, тому поруч із кожною зміною завжди наведені стовпчик обсягу торгів у доларах та часовий проміжок ринкової активності.
Як це вимірюється
Тут чітко вказано кожен поріг, замість того щоб залишати його прихованим. Екран зі прихованими правилами виглядає як дані, але фактично є лише думкою.
- Вікно. Останні 30 календарних днів, що завершилися на останній сесії з повністю завантаженими даними, яка склала 21 сесій з Jun 23 по Jul 22. Кваліфікацію сесії визначають два правила. Сесія має завершитися до поточної дати в Нью-Йорку, тому поточна сесія ніколи не враховується. Кількість барів у регулярні години має становити не менше 85% від медіани сесій за 34-денний період сканування; це правило відсікає попередні дні, дані за якими ще завантажуються. Скорочена святкова сесія створює приблизно половину звичайного дня барів, тому це правило виключає її, а не розраховує як напівзавантажену.
- Дохідність. Різниця між ціною відкриття першої регулярної сесії у межах вікна та ціною закриття останньої регулярної сесії, розрахована на основі хвилинних барів. Враховуються лише регулярні години, тому дані премаркету та післяторгового періоду виключені. Це цінова дохідність: дивіденди не додаються.
- Нижні межі. Обсяг торгів за весь період вікна має становити не менше $1 billion, ціна відкриття — $10 або більше, а торги мають відбуватися щонайменше у 15 сесіях вікна. Доларовий поріг розраховується як місячний підсумок, що полегшує його виконання порівняно з тим самим показником за один тиждень.
- Виключення. Біржа виключає кредитно-плечеві та зворотні фонди за назвою. Кожен тікер також повинен мати фундаментальні показники компанії та ринкову капіталізацію в наших довідкових даних. Друге правило виключає ETF, закриті фонди, товарні трасти та швидкозростаючий клас продуктів з кредитним плечем на окремі акції, які інакше складали б більшу частину обох панелей. Ця довідкова таблиця містить по одному рядку на кожен тікер, а не щоденний знімок даних на певну дату, тому екран аналізує всю таблицю, і одна дата не визначає право на включення. Будь-який тікер, у якому протягом останніх 45 днів відбувся спліт акцій, виключається, а не коригується ретроспективно, оскільки спліт змінює ціну за одну акцію, не змінюючи вартість володіння. Один символ, який постачальники даних перепризначили між двома різними компаніями, виключено за назвою.
- Панель mega-cap. Фіктований кошик із восьми популярних великих компаній США, перелічених за назвою в SQL-запиті цієї панелі. Вона використовує те саме вікно та той самий метод розрахунку дохідності, що й основні панелі, і не підпадає під фільтр за обсягом торгів у доларах.
- Що не застосовується. Секторний фільтр, нижня межа за ринковою капіталізацією та вимоги щодо членства в індексі відсутні, тому компанія з малою капіталізацією та високою оборотністю може перебувати на панелі поруч із великою компанією. Ранжування здійснюється лише за відсотковою зміною, саме тому поруч виводиться стовпець обсягу торгів у доларах.
Одна панель містить звіт про всі ці параметри: сесії, що охоплювало вікно, та перелік активів, з яких проводилося сканування для кожної панелі.
Точний SQL-код для кожного числа
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
),
screened AS (
SELECT ticker
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
SELECT formatDateTime(w.first_d, '%b %e') AS first_session_date,
formatDateTime(w.last_d, '%b %e') AS last_session_date,
w.n AS sessions,
(SELECT count() FROM global_markets.stocks_ratios WHERE market_cap > 0) AS companies_on_file,
(SELECT count() FROM screened) AS companies_screened
FROM (SELECT min(d) AS first_d, max(d) AS last_d, count() AS n FROM window_days) AS wСканування розпочалося з 4121 тікерів, що мають ринкову капіталізацію в довідковій таблиці, і завершилося 1167 компаніями, які пройшли поріги за обсягом торгів у доларах, ціною та кількістю сесій. Обидва показники зберігаються при кожному оновленні цієї сторінки, тому зменшення кількості активів відображається у звіті, а не залишається непоміченим.
FAQ
Які акції продемонстрували найбільший приріст цього місяця?
За період, що закінчився у Jul 22, найбільший приріст серед компаній з обсягом торгів понад $1 billion продемонстрували CRNX на рівні 136.1% та PBF на рівні 65.9%. Повний список із десяти позицій наведено в першій таблиці на цій сторінці; він оновлюється після завершення нових торгових сесій.
Які акції продемонстрували найбільше падіння цього місяця?
Найбільше падіння зафіксовано у CLBK на рівні -44.6%, за ним слідує NVTS на рівні -41.6%. Обидва показники розраховані за той самий період 21 з таким самим порогом обсягу торгів у $1 billion, як і у списку лідерів зростання.
Як розраховуються місячна прибутковість акцій?
Місячна прибутковість у цьому звіті — це зміна ціни акції від ціни відкриття першої регулярної сесії у межах періоду до ціни закриття останньої регулярної сесії, розрахована на основі хвилинних графіків. Це цінова прибутковість, тому дивіденди не враховуються. Будь-яка компанія, що здійснює дроблення акцій (stock split) наприкінці періоду, виключається зі списку замість проведення коригування.
Чому з лідерів ринку виключено leveraged ETF?
Leveraged або інверсний фонд помножує щоденну зміну індексу або окремої акції, тому він може очолити звичайний список лідерів без жодних корпоративних новин. Виключення таких фондів дозволяє зберігати цей список лише для операційних компаній. Як працюють leveraged ETF пояснює механізм щоденного ресету та ефект дрейфу (drift), що виникає при утриманні такого інструменту протягом місяця.
Кожна панель вище є збереженим запитом із відповідним SQL-кодом. Відкрийте будь-який із них, змініть поріг у доларах або тривалість періоду, щоб самостійно проаналізувати ці дані на терміналі Strasmore.