1 সেপ্টেম্বর, 2026 · কর্পোরেট অ্যাকশন

স্প্লিট-অ্যাডজাস্টেড ডেটা, খুঁটিয়ে দেখা: NVDA-র 10-for-1 স্প্লিট তার পেছনের প্রতিটি সারিতে কী করে

স্প্লিট-অ্যাডজাস্টেড ডেটা, খুঁটিয়ে দেখা: NVDA-র 10-for-1 স্প্লিট তার পেছনের প্রতিটি সারিতে কী করে

এটি দৈনিক ইকুইটি ফাইলের একটি সারি। NVDA, শুক্রবার 7 জুন 2024, 10-for-1 স্প্লিট কার্যকর হওয়ার আগের শেষ ট্রেডিং সেশন।

কলাম মান
তারিখ 2024-06-07
ক্লোজ 1208.88
ভলিউম 42,800,000 (গোল করা)
split_factor 1.0
ডিভিডেন্ড 0.00
adj_close 120.8781

এই দৃশ্য থেকে ইচ্ছা করেই OHLC কলামগুলো বাদ দিয়েছি। শেষের দিকে সেগুলো আবার আসবে—আর সেগুলোই নিঃশব্দে ভাঙন ধরায়।

এই সারির আসল তাৎপর্য দ্বিতীয় ও ষষ্ঠ কলামের ব্যবধানে। 7 জুন টেপে দাম ছিল 1208.88। সেই দামে আর কখনো লেনদেন হবে না—কারণ যে শেয়ার-এককের দাম সেটি বোঝাত, সেই এককটির আর অস্তিত্ব নেই। 120.8781 হলো পুনর্গঠিত দাম, আর তা শুধু 1208.88-কে দশ দিয়ে ভাগ করে পাওয়া যায় না। চলুন, কলাম ধরে দেখি।

10:1আগের প্রতিটি সারিতে প্রয়োগ করা ভাজক
0.99991789ডিভিডেন্ড ফ্যাক্টর, এক দিন পরে বসানো
$90এক রাউন্ড ট্রিপে কাল্পনিক কমিশন
5.6ppভাজকের কারণে তৈরি বার্ষিক রিটার্ন-ক্ষয়

তারিখ: 2024-06-07, এবং আরও দুটি তারিখ যেগুলো বেশি গুরুত্বপূর্ণ

আয়ের ঘোষণার সঙ্গে 22 মে 2024-এ স্প্লিটের ঘোষণা করা হয়। রেকর্ড তারিখ ছিল 6 জুন। সোমবার 10 জুন থেকে স্প্লিট-অ্যাডজাস্টেড ভিত্তিতে লেনদেন শুরু হয়। তিনটি তারিখ, আর আপনার ভেন্ডরের split_factor কলামটি এর ঠিক একটিতে বসে—সাধারণত প্রথম স্প্লিট-অ্যাডজাস্টেড সেশনে। এখানে এক দিন এদিক-ওদিক হওয়াই কর্পোরেট অ্যাকশন-সংক্রান্ত সবচেয়ে সাধারণ বাগ, যা সামগ্রিক হিসাবে চোখে পড়ে না: এক দিনে আপনার ইকুইটি কার্ভে 90% পতন বা 900% উত্থান দেখা যায়। 2,000 দিনের ওপর হিসাব করা Sharpe-এ এর প্রভাব সামান্য, কিন্তু সর্বোচ্চ ড্রডাউন বা স্টপ-লস নিয়মে তা একেবারেই উপেক্ষণীয় নয়।

ডিভিডেন্ডের তারিখ নিয়েও আলাদা সমস্যা আছে, আর 2024-এ সবার অজান্তেই নিয়ম বদলেছে। NVDA-র স্প্লিট-পরবর্তী $0.01 ত্রৈমাসিক ডিভিডেন্ডের রেকর্ড তারিখ ছিল 11 জুন। 28 মে 2024-এ মার্কিন সেটেলমেন্ট T+1-এ বদলেছে; ফলে এখন এক্স-ডেট ও রেকর্ড ডেট একই দিন। যে লোডার কয়েক দশক ধরে ঠিক থাকা “রেকর্ড তারিখ থেকে এক কার্যদিবস বাদ” নিয়মে এক্স-ডেট বের করে, সেটি 2024 সালের জুন থেকে নিঃশব্দে এক সেশন আগেই ডিভিডেন্ড অ্যাডজাস্টমেন্ট বসাতে শুরু করেছে। কোনো ত্রুটি দেখায় না। শুধু ফ্যাক্টরটি ভুল সারিতে বসে।

কর্পোরেট অ্যাকশন কোডের ব্যর্থতা কখনোই এক্সেপশন নয়। সেটা এমন একটি সংখ্যা, যা এক দিন এদিক-ওদিক এবং দেখতে পুরোপুরি বিশ্বাসযোগ্য।

close: 1208.88 — ফাইলে যে দামটি নেই

এটাই কাঁচা ট্রেড-প্রাইস, আর বেশির ভাগ গবেষণা পাইপলাইনে এটি এমন একটি কলাম হিসেবেই পড়ে থাকে, যা কেউ দেখে না। সিগন্যাল হিসাব করা হয় adj_close-এ। আর ডলারে প্রতি-শেয়ার দামের স্তর ব্যবহার করা যেকোনো নিয়ম এখন এমন একটি সংখ্যাকে নির্দেশ করছে, যা কোনো বাজার-অংশগ্রহণকারী কখনো দেখেনি।

2024 সালের বসন্তে NVDA-র $1,000-এর দিকে ধীরে ধীরে ওঠাটা বাস্তব ছিল, বাস্তব অর্ডার-ফ্লো ছিল এর পেছনে: গোল সংখ্যার টান, 950 ও 1000-এ জমা অপশন স্ট্রাইক, প্রতিবার কাছে এলে শিরোনামের ঝুঁকি। অ্যাডজাস্টেড ডেটায় পুরো ঘটনাটিই ঘটে $100-এ। আপনি যদি মনস্তাত্ত্বিক মূল্যস্তরের আচরণ, গোল সংখ্যার কাছে গ্যাপ-ফিল লজিক, বা স্ট্রাইকের নৈকট্যভিত্তিক ফিচার পরীক্ষা করেন, তবে এমন একটি প্রাইস সিরিজে তা পরীক্ষা করছেন, যা তখনও না-ঘটা একটি ঘটনার কারণে পুনর্মাপিত হয়েছে।

ইউনিভার্স ফিল্টারেও একই কথা প্রযোজ্য। “$5-এর নিচের স্টক বাদ দাও” বাস্তব মাইক্রোস্ট্রাকচার সমস্যার একটি যুক্তিসঙ্গত প্রক্সি: তুলনায় চওড়া স্প্রেড, মার্জিনযোগ্যতার নিয়ম, টিক-ব্যবস্থা। অ্যাডজাস্টেড ইতিহাসে চালালে, যে সময়ে কোম্পানিগুলোর দাম ছিল $30 এবং পরে রিভার্স-স্প্লিট হয়েছে, সেই সময়ে তাদের বাদ দেবেন। “$500-এর বেশি দাম” চালালে, 2024 সালের জুনের আগের প্রতিটি বছর থেকে নীরবে NVDA বাদ পড়বে। প্রাইস ফিল্টার আনঅ্যাডজাস্টেড ট্রেড-প্রাইসের ওপরই হওয়া উচিত। ব্যস।

split_factor: 1.0 — আর পরের সারিতে 0.1

ফ্যাক্টরটি আজ থেকে পেছনের দিকে চলা একটি ক্রমযোজিত গুণফল। 10 জুন 2024-এর আগের প্রতিটি সারিতে এই স্প্লিটের 0.1 আছে, 2021 সালের 4-for-1 স্প্লিটের 0.25 দিয়ে গুণ করা, তারও আগের যা ছিল তা দিয়ে গুণ করা। 2021-এর আগের NVDA ইতিহাস 0.025 দিয়ে স্কেল করা, তাই 2019-এ $200-এ লেনদেন হওয়া একটি বার দেখা যায় $5.00 হিসেবে।

দুটি ফল মাথায় রাখা দরকার। প্রথমত, নতুন কর্পোরেট অ্যাকশন ঘটলেই অ্যাডজাস্টেড ইতিহাস বদলে যায়। 2024 সালের মে মাসে চালানো ব্যাকটেস্ট আর আজ চালানো ব্যাকটেস্ট—একই কোডে, একই তারিখে—ভিন্ন ফল দেবে। আর ডেটা-ভার্সনের চিহ্ন ছাড়া প্রতীক ও তারিখের ভিত্তিতে ফিচার ক্যাশ করে থাকলে, এখন সেই ক্যাশে দুটি স্কেল মিশে আছে। ঠিক এই কারণেই আমরা ফিচার কী-তে অ্যাডজাস্টমেন্টের যুগের সংস্করণ রাখি; এটা বুঝতে আমাদের এক বিভ্রান্তিকর বিকেল লেগেছিল।

দ্বিতীয়ত, 0.025 স্কেলে $0.01 টিকে চলা স্টক এখন $0.00025 করে নড়ে। আপনার টিক-রাউন্ডিং লজিক, “এটি কি নতুন উচ্চতা” তুলনা, ফ্লোট সমতা যাচাই—সবই এখন বাজারের প্রকৃত রেজল্যুশনের অনেক নিচে কাজ করছে।

dividend: 0.01 — যে সংখ্যা তার আগের সব দামের গ্রিড এলোমেলো করে দেয়

এক সেন্ট। দেখতে তুচ্ছ, অথচ এই কারণেই adj_close-এ পরিষ্কার 120.888-এর বদলে 120.8781 দেখা যায়।

10 জুনের ক্লোজ ছিল 121.79। এক্স-ডিভিডেন্ড ফ্যাক্টর হলো (121.79 − 0.01) / 121.79 = 0.99991789। এই ফ্যাক্টর 11 জুনের আগের প্রতিটি দামে গুণ হয়, তাই স্প্লিট-অ্যাডজাস্টেড 120.888 হয়ে যায় 120.878074। সামান্য, স্থায়ী, আর NVDA-র ইতিহাসে পেছনের দিকে থাকা ষাটটিরও বেশি এক্স-ডেটে আবার প্রয়োগ করা হয়। আসল বিষয় হলো ক্রমযোজিত প্রভাব: 2015-এর দিকে তাকালে দেখবেন, দামটিকে ডজনখানেক অস্বাভাবিক ধরনের ফ্যাক্টর দিয়ে গুণ করা হয়েছে। কোনো অ্যাডজাস্টেড ঐতিহাসিক দামই পেনি-গ্রিডে ঠিক বসে না।

এর মানে, গোল স্তরের সঙ্গে প্রতিটি ==তুলনা ভুল, “লিমিট প্রাইস ছুঁয়েছিলাম কি?” যাচাইয়ে টলারেন্স দরকার, আর 4 দশমিক ঘরে সরলভাবে রাউন্ড করলে পুনর্গঠিত OHLC আর low ≤ open ≤ high শর্ত মেনে চলে না। আরও মানে, adj_close হলো মোট-রিটার্ন সিরিজ, আর close হলো প্রাইস-রিটার্ন সিরিজ। একটির রিটার্ন আর অন্যটির ড্রডাউন হিসাব করলে, কী ঘটেছে তার দুটি আলাদা সংজ্ঞা মিশিয়ে ফেলবেন।

volume: 42,800,000 — যে ভাজক ধারাবাহিকভাবে কেউ প্রয়োগ করে না

স্প্লিট-পরবর্তী সেশনের সঙ্গে তুলনা করতে শেয়ার ভলিউমকে 10 দিয়ে গুণ করতে হবে। কিছু ভেন্ডর তা করে, কিছু করে না। কেউ কেউ OHLC অ্যাডজাস্ট করে কিন্তু ভলিউম কাঁচা রাখে—তিনটির মধ্যে এটাই সবচেয়ে খারাপ, কারণ দামকে ভলিউম দিয়ে গুণ না করা পর্যন্ত ফাইলটি ভেতরে ভেতরে সামঞ্জস্যপূর্ণ দেখায়।

সঠিক পথ হলো ফিচার হিসেবে শেয়ার ভলিউম ব্যবহার বন্ধ করে ডলার ভলিউম ব্যবহার করা, যা গঠনগতভাবেই স্প্লিটে অপরিবর্তিত থাকে। 20-দিনের গড় ডলার ভলিউমের লিকুইডিটি ফিল্টারে কোনো অ্যাডজাস্টমেন্ট লজিকই লাগে না, আর কর্পোরেট অ্যাকশনে সেটি ভাঙেও না। ফিচারের অপরিবর্তনীয়তা সঠিক অ্যাডজাস্টমেন্ট কোডের চেয়ে ভালো, কারণ সঠিক অ্যাডজাস্টমেন্ট কোড এমন কিছু, যেটিতে বারবার ঠিক থাকতে হয়।

ভেন্ডর ফাইলের তিন ধরন, ব্যর্থতারও তিন ধরন।

ফাইলে যা থাকে যা ভাঙে
শুধু অ্যাডজাস্টেড ক্লোজ, কাঁচা OHLC গ্যাপ ও ইন্ট্রাবার লজিক দুটি প্রাইস-স্কেলের মধ্যে হিসাব করে
অ্যাডজাস্টেড OHLC, কাঁচা ভলিউম ডলার ভলিউম স্প্লিট অনুপাতে ভুল; ADV ফিল্টার ভুল ফল দেয়
ফ্যাক্টর কলামসহ কাঁচা OHLCV ফ্যাক্টর প্রয়োগ করলে কিছুই নয়। ভুল সারিতে প্রয়োগ করলে সবকিছু

যে কলামগুলো নেই: adj_open, adj_high, adj_low

এবার OHLC ফিরিয়ে আনুন। কোনো ফিড যদি শুধু ক্লোজ অ্যাডজাস্ট করে আর আপনার কৌশল রাতারাতি গ্যাপ হিসাব করে open / prev_adj_close − 1, তাহলে 10 জুন 2024-এ হিসাব হবে 120.37 / 120.8781 − 1—যথাযথ একটি সংখ্যা, প্রায় −0.4%। একই কোড 7 জুন 2024-এ চালালে, কাঁচা ফাইল থেকে ওপেন (প্রায় 1207) নেবে, আর আগের স্প্লিটগুলো থেকে 0.025 দিয়ে অ্যাডজাস্ট করা ক্লোজের সঙ্গে তুলনা করবে; ফলে কয়েক হাজার শতাংশের গ্যাপ দেখাবে।

কাঁচা কলামের সঙ্গে অ্যাডজাস্টেড কলাম মেশানো মানে দুটি স্থানাঙ্ক-ব্যবস্থার মধ্যে হিসাব করা। এখন আমি মিশ্র-অ্যাডজাস্টমেন্টে পড়া লোডার-স্তরের অ্যাসারশন হিসেবে ধরি, গবেষককে মনে রাখার বিষয় হিসেবে নয়—কারণ গবেষকেরা মনে রাখবেন না, আমিও না।

কোনো কলাম যা বলে না: বাস্তবে আপনি কত শেয়ার কিনতেন

ব্যাকটেস্টের কস্ট মডেলে এই বিষয়টিই টাকা খরচ করায়, আর এ কারণেই আমি আদৌ স্টক স্প্লিট নিয়ে লিখছি।

মার্কিন ইকুইটিতে কমিশন প্রায়ই প্রতি-শেয়ার হিসেবে ধরা হয়। ধরা যাক, প্রতি শেয়ারে $0.005, সঙ্গে ন্যূনতম $1.00 অর্ডার ফি—রিটেল ব্রোকারের নির্দিষ্ট টিয়ারে এটি প্রচলিত। এবার স্প্লিটের এক বছর আগে $400,000-এর NVDA পজিশন ব্যাকটেস্ট করুন, যখন কাঁচা দাম ছিল $400-এর কাছাকাছি, আর অ্যাডজাস্টেড দামে দেখা যায় $40।

শেয়ার কমিশন
বাস্তবে যা ঘটেছিল (কাঁচা $400) 1,000 $5.00
ব্যাকটেস্টে যা দেখা যায় (অ্যাডজাস্টেড $40) 10,000 $50.00

একই এক্সপোজার, একই ট্রেড, মডেলে 10 গুণ খরচ। প্রতি লেগে $45 কাল্পনিক, রাউন্ড ট্রিপে $90; আর প্রতিদিন টার্নওভার করা কৌশল বছরে প্রায় $22,000 এমন খরচ গুনবে, যা কখনোই ছিল না। $400k-এর পোর্টফোলিওতে বছরে 5.6 percentage points রিটার্ন, পুরোটাই একটি ভাজকের বানানো। এখানে বাস্তবের চেয়ে আপনাকে খারাপ দেখায়, যা সামাল দেওয়া যায়।

রিভার্স-স্প্লিটে হিসাবটা উল্টো, আর সেটিই বিপজ্জনক দিক। 1-for-10 রিভার্স-স্প্লিটে অ্যাডজাস্টেড ইতিহাসে দাম 10 গুণ বেশি, আর শেয়ার-সংখ্যা 10 গুণ কম দেখায়—বাস্তবে যত দামে ও যত শেয়ারে ট্রেড করতেন তার তুলনায়। আপনার কস্ট মডেল নীরবে প্রতি-শেয়ার কমিশনকে দশ দিয়ে ভাগ করে। রিভার্স-স্প্লিট যেখানে বেশি হয়, সেই ইউনিভার্স হলো স্মল-ক্যাপ, $5-এর নিচে, চওড়া-স্প্রেডের স্টক—যেখানে প্রতি-শেয়ার ফি খরচের তালিকার সবচেয়ে বড় খাত। যে নামগুলোকে শাস্তি দেওয়া উচিত, ব্যাকটেস্ট ঠিক সেগুলোকেই বাড়তি ভালো দেখায়।

সমাধানটি সাদামাটা ও কাঠামোগত: ডলারে পজিশনের আকার ঠিক করুন, সেই তারিখের আনঅ্যাডজাস্টেড দাম দিয়ে শেয়ার-সংখ্যায় রূপান্তর করুন, আর সেই সংখ্যার ওপর প্রতি-শেয়ার ফি নিন। লোডারে কাঁচা দাম-কলামটি চিরকাল রাখুন—অডিটের নথি হিসেবে নয়, ফিল ইঞ্জিনের সক্রিয় ইনপুট হিসেবে।

  1. সিগন্যাল ও রিটার্ন: অ্যাডজাস্টেড সিরিজ।
  2. শেয়ার-সংখ্যা, প্রতি-শেয়ার ফি, টিক রাউন্ডিং, প্রাইস-লেভেল ফিল্টার: আনঅ্যাডজাস্টেড সিরিজ।
  3. লিকুইডিটি ও সক্ষমতা: ডলার ভলিউম, যার কোনোটিই দরকার হয় না।

ছয়টি কলাম, একটি সারি, আর তিন সপ্তাহ আগে ঘোষণা করা একটি বেশ সাধারণ কর্পোরেট অ্যাকশন—যা কাউকে অবাক করেনি। বাজার এক সকালেই বিষয়টি সামলে নিয়েছে। গবেষণা পাইপলাইনে সেটি বিশ্বস্তভাবে পুনর্গঠন করা তার চেয়ে বেশ কঠিন, আর পাইপলাইন তা না পারার লক্ষণ প্রায় কখনোই কোনো ত্রুটির বার্তা নয়।

কর্পোরেট অ্যাকশনস্প্লিট অ্যাডজাস্টমেন্টমার্কিন ইকুইটিডেটা ইঞ্জিনিয়ারিংব্যাকটেস্টিং
শেয়ার করুনXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← সব পোস্ট