FINRA Margin Debt Statistics কীভাবে বুঝবেন
FINRA margin debt statistics-এর Rule 4521(d) filing, তৃতীয় সপ্তাহে প্রকাশ, 4 থেকে 7 সপ্তাহের বিলম্ব এবং 1997 থেকে ইতিহাস পড়ার নিয়ম জানুন।
FINRA margin debt statistics হলো বিনিয়োগকারীরা তাদের brokerage account-এর বিপরীতে কত টাকা ধার নিয়েছেন তার মাসিক হিসাব। এই তথ্য margin account পরিচালনাকারী প্রতিটি broker-এর কাছ থেকে সংগ্রহ করা হয়। প্রধান সংখ্যাটি হলো customer debit balance-এর মোট পরিমাণ, যা মাসের শেষ business day-এ মাপা হয়। এটি পরের মাসের তৃতীয় সপ্তাহে প্রকাশিত হয়। ফলে প্রকাশের সময় তথ্যটি 4 থেকে 7 সপ্তাহ পুরোনো থাকে।
FINRA margin debt statistics কী পরিমাপ করে
এই filing FINRA Rule 4521(d)-এর অধীনে জমা পড়ে। Customer margin account পরিচালনাকারী প্রতিটি member settlement date basis-এ, মাসের শেষ business day অনুযায়ী, securities margin account-এর সব debit balance-এর মোট পরিমাণ এবং সব cash account ও securities margin account-এর সব free credit balance-এর মোট পরিমাণ জমা দেয়।
এই দুই মোট পরিমাণই পুরো series। Debit balance হলো ঋণ। অর্থাৎ ধার করা অর্থে কেনা securities-এর জন্য customer broker-এর কাছে যে টাকা দেনা করেন। পুরো industry-র debit balance যোগ করলে যে সংখ্যা পাওয়া যায়, সেটিই margin debt নামে উদ্ধৃত হয়। Free credit balance হলো এর বিপরীত দিক—broker-এর কাছে থাকা customer cash, যা চাহিদামাত্র পরিশোধযোগ্য। ফাইলে এটি cash account এবং margin account-এর মধ্যে আলাদা করে দেখানো হয়।
চারটি বিষয় এই সংখ্যাগুলোর ব্যাখ্যা বদলে দেয়।
- Debit balance gross basis-এ অন্তর্ভুক্ত হয়। Short market value এতে থাকে এবং short credit balance-এর সঙ্গে net করা হয় না।
- Free credit balance-এর মধ্যে short account balance এবং special memorandum account থাকে না।
- Settlement date basis-এর অর্থ হলো trade যেদিন settle হয়, সেদিন তা গণনা করা হয়; trade যেদিন execute হয়, সেদিন নয়। T+1 settlement-এর অধীনে মাসের শেষ session-এ করা purchase পরের মাসে settle হয় এবং পরের মাসের figure-এ অন্তর্ভুক্ত হয়।
- কয়েক ধরনের account পুরো collection-এর বাইরে থাকে। এর মধ্যে রয়েছে অন্য FINRA member-এর account, DVP ও RVP account এবং non-securities account।
মাস শেষ হওয়ার পর যত দ্রুত সম্ভব form জমা দিতে হয়। তবে তা পরের মাসের ষষ্ঠ business day-এর পরে জমা দেওয়া যাবে না। Publication পরে হয়।
FINRA margin debt data কখন প্রকাশিত হয়?
FINRA সাধারণত reference month-এর পরের মাসের তৃতীয় সপ্তাহে margin statistics-এর update প্রকাশ করে। Firms ষষ্ঠ business day-এর মধ্যে filing জমা দেয়। Aggregate figure সাধারণত তার প্রায় 2 সপ্তাহ পরে প্রকাশিত হয়। আগে থেকে নির্দিষ্ট কোনো calendar date ঘোষণা করা হয় না। এটি short interest release calendar-এর থেকে একটি গুরুত্বপূর্ণ পার্থক্য। সেখানে settlement date এবং dissemination date 1 বছর আগে প্রকাশ করা হয়।
এই ব্যবধানের প্রভাব বোঝার জন্য পরের মাসের 20 তারিখকে তৃতীয় সপ্তাহের posting-এর আনুমানিক তারিখ ধরা যাক। তারপর ওই সময়সীমায় বাজারের গতিবিধি মাপা যায়। নিচের panel-এ গত 1.5 বছরের month-end দেখানো হয়েছে: as-of date, আনুমানিক release date, মাঝের regular session-এর সংখ্যা এবং ওই সময়ে SPY-এর পরিবর্তন।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2024-11-01 00:00:00')
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
),
reference_month AS
(
SELECT
toStartOfMonth(d) AS m,
max(d) AS as_of,
argMax(px, d) AS as_of_close
FROM daily
GROUP BY m
),
release AS
(
SELECT
m,
as_of,
as_of_close,
addDays(toStartOfMonth(addMonths(m, 1)), 19) AS release_day
FROM reference_month
)
SELECT
formatDateTime(r.m, '%Y-%m') AS month,
any(formatDateTime(r.as_of, '%b %e')) AS as_of_label,
any(formatDateTime(r.release_day, '%b %e')) AS release_label,
count() AS sessions_count,
round(100 * (toFloat64(argMax(d.px, d.d))
/ toFloat64(any(r.as_of_close)) - 1), 2) AS spy_change_pct
FROM release AS r
CROSS JOIN daily AS d
WHERE d.d > r.as_of
AND d.d <= r.release_day
AND r.release_day < today()
GROUP BY r.m
ORDER BY r.mসর্বশেষ সম্পন্ন interval-এ, Jun 30 থেকে Jul 20 পর্যন্ত, বাজারে 13টি regular session ছিল এবং SPY -0.57% পরিবর্তিত হয়েছে। Margin figure প্রকাশের দিন তা পড়লে পাঠক এমন একটি snapshot পড়ছেন, যা তার চেয়ে ওই সংখ্যক session আগে নেওয়া হয়েছিল।
আপনি যখন margin debt পড়ছেন, তখন তা কতটা পুরোনো?
Month-end snapshot-ই release-এর সবচেয়ে সাম্প্রতিক তথ্য। এটি প্রায় 3 সপ্তাহ পুরোনো। Reference month-এর প্রথম কয়েক দিনে হওয়া borrowing প্রায় 7 সপ্তাহ পুরোনো। তাই 4 থেকে 7 সপ্তাহের ব্যবধানটি কোনো নির্দিষ্ট মাসের বৈশিষ্ট্য নয়; এটি প্রকাশনার সময়সূচির ফল।
পরের panel-এ একই হিসাব 2006 পর্যন্ত প্রতিটি month-end-এর জন্য দেখানো হয়েছে। এরপর interval-গুলোতে বাজার কতটা এগিয়েছে, সেই অনুযায়ী সেগুলো সাজানো হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2006-01-01 00:00:00')
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
),
reference_month AS
(
SELECT
toStartOfMonth(d) AS m,
max(d) AS as_of,
argMax(px, d) AS as_of_close
FROM daily
GROUP BY m
),
release AS
(
SELECT
m,
as_of,
as_of_close,
addDays(toStartOfMonth(addMonths(m, 1)), 19) AS release_day
FROM reference_month
),
gaps AS
(
SELECT
r.m AS m,
abs(round(100 * (toFloat64(argMax(d.px, d.d))
/ toFloat64(any(r.as_of_close)) - 1), 2)) AS abs_move_pct
FROM release AS r
CROSS JOIN daily AS d
WHERE d.d > r.as_of
AND d.d <= r.release_day
AND r.release_day < today()
GROUP BY r.m
)
SELECT
multiIf(abs_move_pct < 1, '0 to 1%',
abs_move_pct < 2, '1 to 2%',
abs_move_pct < 3, '2 to 3%',
abs_move_pct < 5, '3 to 5%',
abs_move_pct < 8, '5 to 8%',
'8% or more') AS move_bucket,
count() AS months_count,
round(100 * count() / (SELECT count() FROM gaps), 1) AS share_pct
FROM gaps
GROUP BY move_bucket
ORDER BY min(abs_move_pct)ওই interval-গুলোর 21.1%টি 0 to 1% band-এ পড়েছে। Chart-এর সবচেয়ে বিস্তৃত band 8% or more-এ রয়েছে মোট 15টি interval। এত বড় market move-এর পরে প্রকাশিত balance figure এমন একটি portfolio-এর অবস্থা দেখায়, যার মূল্য বাজার ইতিমধ্যে পুনর্নির্ধারণ করেছে।
এই lag দুটি ব্যবহার স্পষ্টভাবে অসম্ভব করে দেয়। এই সংখ্যা current week-এর অবস্থা দেখাতে পারে না। একই দিনের price-এর পাশে এটি বসাতে হলে উল্লেখ করতে হবে যে দুটি সংখ্যা ভিন্ন সময়ের অবস্থা মাপে। Short interest-এর ক্ষেত্রেও একই সমস্যা আছে, তবে ব্যবধান কম। আমরা এটি why short interest is two weeks old-এ ব্যাখ্যা করেছি।
কেন record dollar total সবচেয়ে কম গুরুত্বপূর্ণ বিষয়
Margin debt সাধারণত record করলে তা নিয়ে বেশি আলোচনা হয়। কিন্তু এর পদ্ধতিগত কারণেই এটি খুব শক্তিশালী signal নয়। Margin debt হলো এমন portfolio-এর বিপরীতে নেওয়া dollar loan, যার market value price-এর সঙ্গে ওঠানামা করে। Portfolio value-এর অনুপাতে borrowing স্থির রেখে price বাড়তে দিলে dollar total-ও বাড়বে। ফলে nominal record ভিন্ন এককে price level-ই আবার প্রকাশ করে।
Record কতটা স্বাভাবিক ঘটনা? এই panel-এ window-এর আগের প্রতিটি month-end close-কে ছাড়িয়ে যাওয়া SPY-এর month-end close গোনা হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2006-01-01 00:00:00')
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
),
month_close AS
(
SELECT
toStartOfMonth(d) AS m,
toFloat64(argMax(px, d)) AS close_px
FROM daily
GROUP BY m
),
peaks AS
(
SELECT
m,
close_px,
max(close_px) OVER (ORDER BY m ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS running_peak
FROM month_close
),
per_year AS
(
SELECT
toYear(m) AS y,
count() AS closes_observed,
countIf(close_px >= running_peak) AS new_highs
FROM peaks
GROUP BY y
)
SELECT
toString(y) AS year,
closes_observed,
new_highs,
round(100 * sum(new_highs) OVER (ORDER BY y ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
/ sum(closes_observed) OVER (ORDER BY y ASC
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 1) AS cumulative_share_pct
FROM per_year
ORDER BY yএই window-এ month-end close-এর 34.3%টি window-এর নতুন high ছিল। এর মধ্যে 2026 একাই এখন পর্যন্ত 4টি ধরে রেখেছে। Portfolio value-এর সঙ্গে বাড়তে থাকা dollar series একই frequency বহন করে। তাই nominal record-কে আলাদা news হিসেবে পড়লে মূলত শুধু বোঝা যায় যে বাজার high-এর কাছাকাছি রয়েছে।
দশকজুড়ে borrowing history তুলনা করতে দুটি রূপান্তর কার্যকর।
- Real terms: consumer price index দিয়ে dollar column-কে deflate করুন। এতে 1997-এর dollar এবং 2026-এর dollar একই unit-এ আসে। Bureau of Labor Statistics এই CPI history বিনামূল্যে প্রকাশ করে।
- একটি ratio: Debit balance-কে borrowing-এর ভিত্তি হিসেবে ব্যবহৃত কোনো পরিমাপ দিয়ে ভাগ করুন। যেমন, মোট US equity market value বা nominal GDP। এতে dollar amount-এর বদলে borrowing intensity পাওয়া যায়।
আরেকটি পদ্ধতিতে কোনো বাইরের data লাগে না। Debit-balance column-এর month-over-month বা year-over-year percent change গঠনগতভাবে scale free। এটি raw total-এ price level-এর কারণে তৈরি ধীরগতির drift-ও বাদ দেয়।
Margin debt কি leading indicator?
সৎ শব্দটি হলো coincident। একই মাসে debit balance এবং portfolio value একসঙ্গে পরিবর্তিত হয়। Aggregate figure প্রকাশের সময় ওই মাসের price history ইতিমধ্যে public হয়ে যায়। Lead-lag সম্পর্কের দাবি গ্রহণযোগ্য হতে হলে দুটি বিষয় অতিক্রম করতে হবে। প্রথমত, dollar balance ও price level-এর মধ্যে arithmetic link। দ্বিতীয়ত, figure প্রকাশের আগে 4 থেকে 7 সপ্তাহের delay।
একজন পাঠক নিজেই co-movement পরীক্ষা করতে পারেন। FINRA history-কে বাজারের সবচেয়ে খারাপ মাসগুলোর সঙ্গে মিলিয়ে দেখুন। Leverage series-এর পতন কতটা একই মাসে ঘটেছে এবং কতটা আগে ঘটেছে, তা দেখা যাবে। Panel-এ যাচাই করার জন্য date দেওয়া হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH daily AS
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(close, window_start) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2006-01-01 00:00:00')
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
),
month_close AS
(
SELECT
toStartOfMonth(d) AS m,
toFloat64(argMax(px, d)) AS close_px
FROM daily
GROUP BY m
),
chained AS
(
SELECT
m,
close_px,
lagInFrame(close_px, 1) OVER (ORDER BY m ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_close
FROM month_close
)
SELECT
formatDateTime(m, '%b %Y') AS calendar_label,
round(100 * (close_px / prior_close - 1), 2) AS spy_change_pct
FROM chained
WHERE prior_close > 0
ORDER BY spy_change_pct ASC
LIMIT 10সবচেয়ে খারাপ 10টির মধ্যে Oct 2008-এ পরপর month-end close-এর মধ্যে -16.74% পরিবর্তন দেখা গেছে। এমনকি 10তম ঘটনাতেও পরিবর্তন ছিল -8.4%। এই মাসগুলোর পাশে debit-balance column রাখলেই timing-এর প্রশ্নের উত্তর headline লেখকের বদলে পাঠক নিজেই পেয়ে যাবেন।
1997 পর্যন্ত সম্পূর্ণ history কীভাবে download করবেন
FINRA তার Margin Statistics page-এ table প্রকাশ করে। একই series Excel download হিসেবেও পাওয়া যায়, যা January 1997 থেকে শুরু হয়েছে। প্রতি মাসে 1টি row থাকে। Debit-balance total-এর পাশে free-credit column থাকে। সব figure million dollar-এ report করা হয়।
দুটি অভ্যাস file-টিকে আরও কার্যকর করে। প্রতিটি download-এর dated copy সংরক্ষণ করুন। Amended filing-এর কারণে আগের মাসের তথ্য সংশোধিত হতে পারে, আর পরিবর্তনটি দেখাবে শুধু আপনার নিজের archive। এছাড়া প্রতিটি chart label-এ as-of month রাখুন। এতে chart ভুলভাবে কোনো মাসের balance-কে publication month-এর সঙ্গে যুক্ত করবে না।
এই data set-এর পাশে সাধারণত পড়া হয় এমন FINRA data set-এর জন্য দেখুন FINRA short interest data। এটি একই collect-and-publish pattern অনুসরণ করে, তবে মাসে 2 বার প্রকাশিত হয়। কোনো reporting lag ছাড়া breadth measure-এর জন্য high low index daily price data থেকে সরাসরি তৈরি হয়।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
FINRA margin debt data কখন প্রকাশিত হয়?
FINRA সাধারণত reference month-এর পরের মাসের তৃতীয় সপ্তাহে margin statistics-এর update প্রকাশ করে। Firms-কে ওই পরের মাসের ষষ্ঠ business day-এর মধ্যে Customer Margin Balance Form জমা দিতে হয়। এরপর aggregate figure প্রকাশিত হয়। আগে থেকে নির্দিষ্ট কোনো release date ঘোষণা করা হয় না।
Debit balance এবং free credit balance-এর মধ্যে পার্থক্য কী?
Debit balance হলো margin-এ কেনা securities-এর জন্য customer-এর broker-এর কাছে থাকা দেনা। Free credit balance হলো broker-এর কাছে থাকা customer cash, যা চাহিদামাত্র পরিশোধযোগ্য। FINRA securities margin account-এর debit total এবং cash account ও securities margin account-এর free credit total সংগ্রহ করে।
FINRA margin debt data কতদূর পর্যন্ত পাওয়া যায়?
FINRA-এর Margin Statistics page-এর downloadable history January 1997 থেকে শুরু হয়েছে। প্রতি মাসে 1টি row থাকে। Balance settlement date basis-এ, প্রতিটি মাসের শেষ business day অনুযায়ী, million dollar-এ report করা হয়।
Margin debt কি market top পূর্বাভাস দিতে পারে?
Series-এর দুটি বৈশিষ্ট্য এই ব্যবহার সীমিত করে। Portfolio value-এর সঙ্গে dollar level পরিবর্তিত হয়। তাই borrowing intensity স্থির থাকলেও price বাড়ার সঙ্গে এটি বাড়ে। এছাড়া প্রকাশের সময় প্রতিটি figure 4 থেকে 7 সপ্তাহ পুরোনো থাকে। Turning point নিয়ে গবেষণা করা পাঠকেরা সাধারণত raw dollar level-এর বদলে year-over-year percent change অথবা ratio version ব্যবহার করেন।
Margin debt কি short interest-এর সমান?
না। Margin debt হলো long position-এর বিপরীতে রাখা ধার করা cash। Short interest হলো short বিক্রি করা কিন্তু এখনও cover না করা share-এর সংখ্যা। উভয় data-ই নির্দিষ্ট cycle-এ broker filing-এর মাধ্যমে FINRA-তে জমা পড়ে এবং উভয়ই কয়েক সপ্তাহের lag নিয়ে public হয়।
উপরের প্রতিটি panel প্রসারিত করলে সেটি তৈরি করা exact SQL দেখা যাবে। অন্য ticker বা আরও দীর্ঘ window-এ একই month-end এবং release-gap arithmetic চালাতে Strasmore terminal-এ plain English-এ অনুরোধ করুন।