এই মাসের সবচেয়ে বেশি পরিবর্তনশীল স্টকসমূহ
এই মাসে সবচেয়ে বেশি লাভ করা এবং লোকসানে পড়া স্টকগুলোর তালিকা। এক্সচেঞ্জ টেপ অনুযায়ী প্রতিটি মুভমেন্টের পাশে লেনদেনকৃত ডলারের পরিমাণ উল্লেখ করা হয়েছে।
এই মাসে সবচেয়ে বেশি পরিবর্তনশীল স্টকগুলোর তালিকা নিচে দেওয়া হলো। এই তালিকাটি এক্সচেঞ্জ টেপ থেকে সরাসরি নেওয়া হয়েছে এবং এতে Jun 22 থেকে Jul 21 পর্যন্ত মোট 21টি ট্রেডিং সেশন অন্তর্ভুক্ত করা হয়েছে। এই তালিকায় শুধুমাত্র সেই সব অপারেটিং কোম্পানি রয়েছে যাদের লেনদেনের পরিমাণ এই সময়ের মধ্যে অন্তত $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 ছিল তালিকার শীর্ষে 133.6% শতাংশ লাভ নিয়ে, যার মোট লেনদেন ছিল $9.4 বিলিয়ন। এর পরে ছিল PBF 75.5% শতাংশ এবং MAN 56.8% শতাংশ। এক মাসে এই আকারের পরিবর্তন সাধারণত স্টকের average daily volume এর বিপরীতে বর্ধিত relative volume হিসেবে প্রথমে দেখা যায়। এছাড়া এটি পুরো সময় জুড়ে ধীরগতির বৃদ্ধির পরিবর্তে কোনো একটি সেশনে overnight gap এর মাধ্যমে শুরু হতে পারে।
এই মাসে সবচেয়ে বেশি দরপতন ঘটা শেয়ারসমূহ
উল্টো ক্রমে একই গঠন: নির্দিষ্ট সময়ের মধ্যে সবচেয়ে বেশি দরপতন ঘটা কোম্পানিগুলো, যাদের লেনদেনের পরিমাণ অন্তত ১ বিলিয়ন ডলার।
প্রতিটি সংখ্যার পেছনের সঠিক 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 10NVTS ছিল সবচেয়ে বড় দরপতনকারী, যার দরপতন ছিল -47.6% এবং লেনদেনের পরিমাণ ছিল 5.1 বিলিয়ন ডলার; এর পরেই ছিল WOLF যার দরপতন -47.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 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 ট্র্যাকার ছিল 0.08%, Nasdaq 100 ট্র্যাকার ছিল -4.46%, Dow ট্র্যাকার ছিল 0.91% এবং Russell 2000 ট্র্যাকার ছিল -0.21%। চারটি বাস্কেট, একটি উইন্ডো, চারটি ভিন্ন ফলাফল। এখন সেই রেঞ্জের বিপরীতে লিডারবোর্ডটি দেখুন: একই সেশনে সর্বোচ্চ গেইনারদের তালিকা 133.6% ছাড়িয়ে গেছে। স্বতন্ত্র কোম্পানিগুলোর পারফরম্যান্স তাদের অন্তর্ভুক্ত করা বাস্কেটগুলোর তুলনায় অনেক বেশি বিচিত্র হয়, আর এই কারণেই মুভার্স লিস্টে একক নামগুলো অন্তর্ভুক্ত করা হয়।
পরিচিত কোম্পানিগুলোর পারফরম্যান্স কেমন ছিল
এই মাসে কোন স্টকগুলো সবচেয়ে ভালো করেছে তা যারা খুঁজছেন, তারা সাধারণত তাদের কাছে থাকা কোম্পানিগুলোর অবস্থা সম্পর্কেও জানতে চান। একই সময়সীমা এবং একই গঠন অনুযায়ী আটটি পরিচিত মেগা-ক্যাপ কোম্পানির একটি নির্দিষ্ট তালিকা নিচে দেওয়া হলো:
প্রতিটি সংখ্যার পেছনের সঠিক 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এই গ্রুপটির পারফরম্যান্স 12.5% থেকে META এর মধ্যে সর্বোচ্চ এবং -6.6% থেকে AVGO এর মধ্যে সর্বনিম্ন ছিল। কোম্পানিগুলো একই সাথে পরিবর্তিত হয়নি, যা ব্যতিক্রম হওয়ার চেয়ে সাধারণ নিয়ম হিসেবেই বেশি দেখা যায়। ইনডেক্স মেম্বারশিপ এই কোম্পানিগুলোকে একটি গ্রুপ হিসেবে অন্তর্ভুক্ত করে; কিন্তু তাদের আয়ের উৎসগুলোর মধ্যে খুব কম মিল রয়েছে। এই তালিকাটি কোনো র্যাঙ্কিং নয় বরং আটটি কোম্পানির একটি নির্দিষ্ট তালিকা, তাই এটিকে কোম্পানিগুলোর আকার নির্ধারণের মাপকাঠি হিসেবে না দেখে কেবল একটি নির্দেশক হিসেবে বিবেচনা করুন।
একটি সাধারণ মাস কেমন দেখায়
লিডারবোর্ডগুলো কেবল চরম পরিবর্তনগুলো দেখায়। এখানে মূল প্রবণতা দেখানো হয়েছে। স্ক্রিন করা সমস্ত 1162 কোম্পানিকে তাদের নির্দিষ্ট সময়ের রিটার্নের ভিত্তিতে বিভিন্ন গ্রুপে ভাগ করা হয়েছে:
প্রতিটি সংখ্যার পেছনের সঠিক 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.2স্ক্রিন করা কোম্পানিগুলোর 60 নির্দিষ্ট সময়ে ২০% বা তার বেশি লাভ করেছে এবং 77 ২০% বা তার বেশি লোকসান করেছে। স্থিতিশীলতার সবচেয়ে কাছাকাছি থাকা দুটি গ্রুপে 315 এবং 426টি করে নাম রয়েছে। মুভার্স লিডারবোর্ডটি এই চার্টের একটি অংশ থেকে তৈরি করা হয় এবং শীর্ষ দশটি নাম হলো এর একেবারে ডান প্রান্ত। উপরের বোর্ডগুলো এই ধারণা মাথায় রেখে দেখুন: মাসিক হিসেবে শীর্ষ দশটি মুভমেন্ট হলো একটি ব্যতিক্রমী ঘটনা, যা কোনো সাধারণ স্টকের জন্য কখনোই সাধারণ মাস নয়।
কোন কারণগুলো একটি স্টককে মাসিক মুভার্স লিস্টে অন্তর্ভুক্ত করে
একটি মাস বেশ কিছু ঘটনা ঘটার জন্য যথেষ্ট দীর্ঘ সময়, আবার এতটুকু ছোটও যে এর মধ্যে একটি ঘটনা সাধারণত পুরো মাস জুড়ে প্রভাব বিস্তার করে। এই তালিকার নামগুলো সাধারণত কোম্পানির ক্যালেন্ডারের কোনো নির্দিষ্ট তারিখের সাথে মিলে যায়। ত্রৈমাসিক ফলাফল (Quarterly results) সবচেয়ে সাধারণ কারণ: প্রত্যাশার চেয়ে ভালো বা খারাপ ফলাফল মাত্র একটি সেশনে দামের পরিবর্তন ঘটায় এবং বাকি মাসজুড়ে সেই নতুন দামের আশেপাশে লেনদেন চলে। ফলাফলের পাশাপাশি ফোরকাস্ট বা গাইডেন্স (Guidance) পরিবর্তনও একই কাজ করে।
একীভূতকরণ এবং অধিগ্রহণের (Merger and acquisition) খবর মাসিক তালিকায় সবচেয়ে স্পষ্ট প্রভাব ফেলে। স্টকের দাম ঘোষিত চুক্তির দামের কাছাকাছি একটি পর্যায়ে লাফিয়ে ওঠে এবং তারপর স্থিতিশীল হয়ে যায়; এক্ষেত্রে লেনদেনের পরিমাণ (dollars traded) অনেক বেশি থাকে কিন্তু শতাংশের পরিবর্তন কমে আসে। যদি গেইনার টেবিলের শীর্ষে থাকা কোনো স্টকের লেনদেনের পরিমাণ অনেক বেশি হয় এবং মাসের মাঝামাঝি সময়ে দামের পরিবর্তন থেমে যায়, তবে সেই প্যাটার্নটি সবার আগে যাচাই করা উচিত।
এক সপ্তাহের তুলনায় এক মাসে সেক্টর মুভমেন্ট বা খাতের পরিবর্তন বেশি গুরুত্বপূর্ণ। সুদের হার, তেলের দাম বা মেমরি প্রাইসিং-এর পরিবর্তন পুরো একটি গ্রুপকে একসাথে প্রভাবিত করে। এই কারণেই মাসিক তালিকায় দশটি ভিন্ন ভিন্ন কোম্পানির বদলে প্রায়ই একই ধরণের ব্যবসার একটি গুচ্ছ দেখা যায়। বিশ্লেষকদের পদক্ষেপ, ইনডেক্সে অন্তর্ভুক্তি বা বাদ পড়া, ক্লিনিকাল ট্রায়াল এবং রেগুলেটরি রিপোর্ট এবং শর্ট স্কুইজ (short squeezes) বাকি তালিকাটি পূর্ণ করে। শুধুমাত্র শতাংশের পরিবর্তনের মাধ্যমে এগুলো বোঝা সম্ভব নয়, তাই প্রতিটি মুভমেন্টের পাশে লেনদেনের পরিমাণ এবং বাজারের সময়সীমা উল্লেখ করা হয়।
এটি কীভাবে পরিমাপ করা হয়
এখানে প্রতিটি থ্রেশহোল্ড বা সীমা স্পষ্টভাবে উল্লেখ করা হয়েছে। লুকানো নিয়মযুক্ত স্ক্রিন ডেটা হিসেবে গণ্য হয় কিন্তু আসলে তা একটি মতামত মাত্র।
- সময়সীমা (The window)। সর্বশেষ পূর্ণাঙ্গ লোড করা সেশন পর্যন্ত গত ৩০ ক্যালেন্ডার দিনের সময়সীমা, যা Jun 22 থেকে Jul 21 পর্যন্ত 21টি সেশন নিয়ে গঠিত। একটি সেশন যোগ্য কি না তা দুটি নিয়মের মাধ্যমে নির্ধারিত হয়। নিউ ইয়র্কের বর্তমান তারিখের আগে সেশনটি অবশ্যই শেষ হতে হবে, তাই চলমান সেশনটি এর অন্তর্ভুক্ত নয়। এছাড়া, ৩৪ দিনের স্ক্যানের মধ্যবর্তী সেশনগুলোর মধ্যম মানের বার কাউন্টের অন্তত ৮৫% থাকতে হবে; এর ফলে ডেটা লোড হতে থাকা কোনো পূর্ববর্তী দিন বাদ পড়ে যায়। ছুটির দিনে সংক্ষিপ্ত সেশনে স্বাভাবিক দিনের তুলনায় প্রায় অর্ধেক বার থাকে, তাই একই নিয়ম অনুযায়ী সেই সেশনটিও বাদ দেওয়া হয়।
- রিターン (The return)। সময়সীমার মধ্যে প্রথম রেগুলার-সেশনের ওপেনিং প্রাইস থেকে শেষ রেগুলার-সেশনের ক্লোজিং প্রাইস পর্যন্ত, যা মিনিট বার দিয়ে তৈরি। এতে শুধুমাত্র রেগুলার আওয়ারের ডেটা ব্যবহৃত হয়, তাই প্রি-মার্কেট এবং আফটার-আওয়ারের ডেটা বাদ দেওয়া হয়। এটি একটি প্রাইস রিটার্ন: ডিভিডেন্ড এখানে যোগ করা হয় না।
- ফ্লোর (The floors)। পুরো সময়সীমার মধ্যে অন্তত ১ বিলিয়ন ডলার লেনদেন হতে হবে, ওপেনিং প্রাইস ১০ ডলার বা তার বেশি হতে হবে এবং সময়সীমার অন্তত ১৫টি সেশনে লেনদেন থাকতে হবে। ডলার ফ্লোরটি মাসিক মোট লেনদেনের ওপর ভিত্তি করে নির্ধারিত, যা এক সপ্তাহের তুলনায় এই সীমা অতিক্রম করা সহজ করে তোলে।
- বর্জনসমূহ (The exclusions)। লেভারেজড এবং ইনভার্স ফান্ডগুলোকে নাম দিয়ে বাদ দেওয়া হয়েছে। প্রতিটি টিকারের জন্য আমাদের রেফারেন্স ডেটাতে কোম্পানির ফান্ডামেন্টাল এবং মার্কেট ক্যাপিটালাইজেশন থাকতে হবে। দ্বিতীয় নিয়মটির কারণে ETF, ক্লোজড-এন্ড ফান্ড, কমোডিটি ট্রাস্ট এবং দ্রুত বর্ধনশীল লেভারেজড সিঙ্গেল-স্টক প্রোডাক্টগুলো বাদ পড়ে যায়, যা না থাকলে উভয় বোর্ডেই আধিপত্য বিস্তার করত। এই রেফারেন্স টেবিলে প্রতিটি টিকারের জন্য একটি নির্দিষ্ট সারি থাকে, কোনো নির্দিষ্ট তারিখের স্ন্যাপশট নয়; তাই স্ক্রিনটি পুরো টেবিলটি পড়ে এবং কোনো নির্দিষ্ট তারিখ নির্ধারণ করে না কে যোগ্য। গত ৪৫ দিনের মধ্যে স্টক স্প্লিট হয়েছে এমন কোনো টিকারকে ব্যাক-অ্যাডজাস্ট করার পরিবর্তে বাদ দেওয়া হয়, কারণ স্প্লিট শেয়ারের দাম পরিবর্তন করে কিন্তু হোল্ডিংয়ের প্রকৃত মূল্য পরিবর্তন করে না। ভেন্ডর ফিড দ্বারা দুটি ভিন্ন কোম্পানির মধ্যে পুনঃনির্ধারিত কোনো সিম্বলকেও নাম দিয়ে বাদ দেওয়া হয়েছে।
- মেগা-ক্যাপ প্যানেল (The mega-cap panel)। আটটি বহুল প্রচলিত বড় মার্কিন কোম্পানির একটি নির্দিষ্ট বাস্কেট, যা ওই প্যানেলের SQL-এ নাম দিয়ে তালিকাভুক্ত। এটি বোর্ডগুলোর মতোই একই সময়সীমা এবং রিটার্ন পদ্ধতি ব্যবহার করে এবং এটি ডলার-ভলিউম স্ক্রিনের বাইরে থাকে।
- যা প্রয়োগ করা হয় না। এখানে কোনো সেক্টর ফিল্টার, মার্কেট-ক্যাপ ফ্লোর বা ইনডেক্স-মেম্বারশিপের প্রয়োজনীয়তা নেই; ফলে একটি ছোট কোম্পানি বড় কোম্পানির পাশাপাশি বোর্ডে থাকতে পারে। র্যাঙ্কিং শুধুমাত্র পারসেন্টেজ পরিবর্তনের ভিত্তিতে করা হয়, যার কারণে লেনদenced ডলারের কলামটি এর পাশে দেখানো হয়।
একটি প্যানেলে এর সমস্ত বিবরণ রয়েছে: সময়সীমার অন্তর্ভুক্ত সেশনগুলো এবং প্রতিটি বোর্ড যে ইউনিভার্স থেকে স্ক্যান করা হয়েছে তার তালিকা।
প্রতিটি সংখ্যার পেছনের সঠিক 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স্ক্রিনটি রেফারেন্স টেবিলে মার্কেট ক্যাপিটালাইজেশন আছে এমন 4122টি টিকার থেকে শুরু হয়েছিল এবং ডলার-ভলিউম, প্রাইস এবং সেশন ফ্লোর অতিক্রমকারী 1162টি কোম্পানি নিয়ে শেষ হয়েছে। এই পৃষ্ঠাটি প্রতিবার রিফ্রেশ করার সময় উভয় সংখ্যাই সংরক্ষিত হয়, ফলে ইউনিভার্স ছোট হয়ে গেলেও তা রসিদে (receipt) দেখা যায়।
FAQ
এই মাসে কোন স্টকগুলোর সবচেয়ে বেশি লাভ হয়েছে?
Jul 21 সমাপ্তি হওয়া সময়ের জন্য, ১ বিলিয়ন ডলারের বেশি লেনদেন করা কোম্পানিগুলোর মধ্যে সবচেয়ে বেশি লাভ করেছে CRNX 133.6% শতাংশ এবং PBF 75.5% শতাংশ। শীর্ষ দশটি কোম্পানির পূর্ণ তালিকা এই পৃষ্ঠার প্রথম টেবিলে দেওয়া হয়েছে, যা প্রতিটি নতুন সেশন শেষে আপডেট করা হয়।
এই মাসে কোন স্টকগুলোর সবচেয়ে বেশি পতন হয়েছে?
NVTS সবচেয়ে বেশি কমেছে -47.6% শতাংশে, এরপর রয়েছে WOLF -47.1% শতাংশে। উভয় ক্ষেত্রেই একই 21 সেশনের ভিত্তিতে পরিমাপ করা হয়েছে এবং লাভজনক তালিকার মতো এখানেও ১ বিলিয়ন ডলারের সর্বনিম্ন লেনদেনের শর্ত প্রযোজ্য।
মাসিক স্টক রিটার্ন কীভাবে পরিমাপ করা হয়?
এখানে মাসিক রিটার্ন হলো নির্দিষ্ট সময়ের প্রথম রেগুলার-সেশনের ওপেনিং প্রাইস থেকে শেষ রেগুলার-সেশনের ক্লোজিং প্রাইসের পরিবর্তন, যা মিনিট বার (minute bars) থেকে গণনা করা হয়। এটি একটি প্রাইস রিটার্ন, তাই এতে ডিভিডেন্ড যোগ করা হয় না। এছাড়া, নির্দিষ্ট সময়ের কাছাকাছি কোনো কোম্পানি যদি স্টক স্প্লিট করে, তবে তাকে অ্যাডজাস্ট না করে তালিকা থেকে বাদ দেওয়া হয়।
স্টক মুভার্স লিস্ট থেকে কেন লেভারেজড ETF-কে বাদ রাখা হয়?
একটি লেভারেজড বা ইনভার্স ফান্ড কোনো ইনডেক্স বা একক স্টকের দৈনিক মুভমেন্টকে গুণিতক হিসেবে প্রদর্শন করে। ফলে কোনো কোম্পানির খবরের সাহায্য ছাড়াই একটি সাধারণ মার্কেটের দিনে এটি তালিকার শীর্ষে চলে আসতে পারে। এদের বাদ দেওয়ার ফলে এই তালিকাটি শুধুমাত্র অপারেটিং কোম্পানিগুলোর মধ্যে সীমাবদ্ধ থাকে। লেভারেজড ETF কীভাবে কাজ করে নিবন্ধটিতে দৈনিক রিসেট এবং এক মাস ধরে হোল্ড করার ফলে ஏற்படும் ড্রিফট সম্পর্কে আলোচনা করা হয়েছে।
উপরের প্রতিটি প্যানেল একটি স্টোরড কুয়েরি এবং এর সাথে SQL যুক্ত রয়েছে। যেকোনো একটি ওপেন করে ডলারের সর্বনিম্ন সীমা বা সময়ের ব্যাপ্তি পরিবর্তন করে আপনি Strasmore টার্মিনালে নিজেই একই ডেটা যাচাই করতে পারেন।