Stocks

Point-in-Time Data: Revised History যেন Backtest-এ Leak না করে

৭ মিনিটে পড়ুন

সর্বশেষ সংরক্ষিত:

Read this article in English

Point-in-Time Data: Revised History যেন Backtest-এ Leak না করে

Executive Summary

  • ✦Observation period ও publication time আলাদা; value actually available হওয়ার পরেই strategy তা ব্যবহার করতে পারে।
  • ✦Latest revision দিয়ে history overwrite না করে every economic-data ও financial-statement vintage retain করুন।
  • ✦Trader তখন কী জানত reconstruct করতে as-of join, historical security universe ও realistic processing delay ব্যবহার করুন।
  • ✦Final-history result real-time-vintage result-এর সঙ্গে compare করুন এবং large performance gap-কে revision bias-এর evidence ধরুন।

Point-in-Time Data: Revised History যেন Backtest-এ Leak না করে

Read in English

Evergreen trading tutorial: এই guide hypothetical data দিয়ে revision ও availability bias ব্যাখ্যা করে। এটি শিক্ষামূলক তথ্য; personalised advice বা backtest live-এ কাজ করবে এমন claim নয়।

Historical database প্রায়ই আজকের best available information দেখায়। Past trader-এর কাছে ছিল initial economic release, তখন published financial statement, তখনকার index members এবং original feed-এর price।

Backtest past trader-কে today's corrected বা revised history দিলে revision bias বা point-in-time integrity failure হয়। Strategy এমন information দিয়ে decision নেয় যা তখন exist করত না।

শেখার লক্ষ্য

এই guide শেষে আপনি পারবেন:

  • observation date, release date ও database timestamp আলাদা করতে;
  • economic revision ও company restatement কীভাবে future information leak করে বুঝতে;
  • “as known then” dataset বানাতে;
  • publication ও processing delay test করতে; এবং
  • point-in-time error-এর জন্য backtest audit করতে।

Observation time availability time নয়

Economic statistic January activity describe করলেও February-এ release ও March-এ revise হতে পারে। Company annual result December-ending year cover করলেও months later public হয়। Period label trader কখন information পেয়েছে বলে না।

Robust record-এর অন্তত:

  • observation period: data কোন সময় describe করে;
  • publication timestamp: source কখন release করেছে;
  • vendor arrival timestamp: system কখন পেয়েছে; এবং
  • revision বা vintage identifier: কোন version available ছিল।

Trading rule relevant publication ও processing delay-এর পরে value ব্যবহার করতে পারে।

Hypothetical economic-data example

Fictional inflation series-এর strategy rule:

Year-on-year inflation 3.1% বা lower হলে bond index buy করুন।

10 February initial release January inflation 3.2% বলে। Strategy market-এর বাইরে থাকবে।

15 March statistical agency January inflation revise করে 3.0%। Modern historical download January-এর পাশে 3.0% দেখায়, first vintage clearly রাখে না।

Naive backtest 3.0% পড়ে, 10 February buy trigger করে এবং later rally capture করে। Tradeটি impossible: 3.0% value 15 March-এর আগে জানা ছিল না।

Point-in-time test ব্যবহার করবে:

  • 10 February থেকে revision timestamp পর্যন্ত 3.2%; এবং
  • 15 March থেকে 3.0%।

Example revision predictable বলে না। এটি দেখায় final revised history real-time decision simulate করার জন্য unsuitable।

Financial statement-এ same problem

Company revenue “financial year 2025” label হলেও 31 December 2025-এ ব্যবহার করা যায় না যদি result later publish হয়। First filing accounting change, error বা acquisition adjustment-এর কারণে restated হতে পারে।

Point-in-time fundamentals database রাখবে:

  • fiscal period end;
  • first public filing timestamp;
  • each amendment timestamp;
  • every filing vintage-এর value;
  • unit, currency ও accounting basis; এবং
  • তখন security link করা identifier।

Every historical date-এ latest restated value ব্যবহার model-কে original market-এর unavailable knowledge দেয়।

Other point-in-time leakage

Index membership

Today's index constituents 20-year history-এ test করলে deleted বা failed company বাদ পড়ে এবং firm join-এর আগে included হয়। Each date-এর effective membership ব্যবহার করুন। Survivorship-bias guide broader problem explain করে।

Analyst estimate

Consensus database continuously update হয়। Historical earnings surprise-এর জন্য announcement-এর immediately before consensus snapshot দরকার, latest reconstructed estimate নয়।

Credit rating ও classification

Sector code, rating ও country classification বদলাতে পারে। Today's label investors তখন কী জানত তা represent নাও করতে পারে।

Corporate action

Split ও dividend adjusted price series চায়, কিন্তু adjustment future corporate action announcement-এর আগে visible করবে না। Research ও execution data-র separate raw ও adjusted view লাগতে পারে।

Economic calendar

Release schedule move করতে পারে এবং preliminary estimate final দিয়ে replace হয়। Regular monthly date assume না করে actual timestamp ও vintage store করুন।

News ও alternative data

Web page publication-এর পরে edit হতে পারে। Current page timestamp বা final text signal fire-এর সময় available version reproduce নাও করতে পারে।

Step-by-step point-in-time pipeline

1. Decision timestamp define করুন

Strategy কখন decision নেয়: market open, bar close, scheduled batch নাকি event arrival—exactly লিখুন।

2. Source availability timestamp করুন

সম্ভব হলে original publisher release time ব্যবহার করুন। Timezone record করে consistently convert করুন। Period end substitute করবেন না।

3. Every vintage রাখুন

Value overwrite না করে revision append করুন। Every row-তে “effective from” এবং সম্ভব হলে “effective until” timestamp থাকুক।

4. As-of join করুন

Each decision time-এর জন্য latest data vintage select করুন যার availability timestamp decision-এর আগে বা equal।

5. Realistic processing delay যোগ করুন

Public information instantly usable নয়। Vendor latency, parsing, validation ও model computation রাখুন। Signal-decay guide timing layer cover করে।

6. Research ও execution price আলাদা করুন

Signal শুধু decision time-এ known data ব্যবহার করবে। Simulated fill পরে executable price-এ হবে।

7. Historical universe preserve করুন

Date-valid listing, index member ও identifier ব্যবহার করুন। Ticker change, merger ও delisting explicitly map করুন।

8. Dataset ও code version করুন

Source file, checksum, transformation version ও calendar rule record করুন। Vendor update-এর পরে result কেন changed rerun explain করবে।

9. Archived release দিয়ে test করুন

Several historical date নিয়ে database original release document বা archived file-এর সঙ্গে compare করুন। Silent revision leakage discover করার fast method।

10. Freeze করে later data validate করুন

Strategy build-এর পরে real time-এ collected বা result জানার আগে frozen later period test করুন।

Practical as-of table

ObservationAvailable fromVintage value
January10 February 08:003.2%
January15 March 08:003.0%
January20 April 08:003.1%

1 March decision 3.2% দেখে। 1 April decision 3.0%। 20 April-এর পরে decision 3.1%। Observation period same; available knowledge evolve করে।

Revision damage test করা

Strategy twice run করুন:

  1. final revised value দিয়ে; এবং
  2. correct real-time vintage দিয়ে।

Trade, expectancy, drawdown ও turnover compare করুন। Large gap revision strategy-কে materially affect করছে এমন evidence।

Same data-এ new threshold optimise করে live-vintage test “repair” করবেন না। এতে revision bias-এর বদলে overfitting হয়। Multiple-testing guide riskটি ব্যাখ্যা করে।

Common mistakes

  1. Observation date-কে release date ব্যবহার। Data weeks later আসতে পারে।
  2. Latest history original ভাবা। Vendor revision overwrite করতে পারে।
  3. Amendment-এর আগে restated financial ব্যবহার। Past trader earlier filing দেখেছিল।
  4. Today's index member past-এ test করা। Deleted firm sample থেকে হারায়।
  5. Final consensus estimate ব্যবহার। Pre-announcement snapshot দরকার।
  6. Vendor ও processing latency ignore। Public মানেই instantly tradable নয়।
  7. Calendar date only join। Timezone ও intraday release time matter।
  8. Raw data না রেখে price adjust। Future corporate action interpretation contaminate করতে পারে।
  9. Dataset version overwrite। Silent vendor change audit impossible হয়।
  10. Real-time-vintage failure দেখে optimise। New in-sample fit তৈরি হয়।

Practical checklist

  • Decision timestamp precisely defined।
  • Observation period ও publication time separately stored।
  • Timezone ও source recorded।
  • Preliminary, revised ও final vintage retained।
  • Fundamentals first-filing ও amendment timestamp ব্যবহার করে।
  • Historical index membership ও security identifier date-valid।
  • Analyst estimate pre-event snapshot ব্যবহার করে।
  • As-of join later vintage exclude করে।
  • Processing ও execution delay modelled।
  • Raw ও adjusted price series দুটো available।
  • Dataset ও transformation version reproducible।
  • Final-history result real-time-vintage result-এর সঙ্গে compared।
  • Later frozen data out-of-sample validation দেয়।

The Money Man View

Backtest each decision-এ real trader যা জানতে পারত শুধু তা-ই জানবে। Final revised history today economy understand করতে excellent, কিন্তু yesterday trade simulate করতে invalid হতে পারে। Vintage preserve করুন, availability time দিয়ে join করুন এবং final-history chart attractive হলেও real-time data-তে fail করা strategy-কে unproven ধরুন।

শিক্ষামূলক risk disclosure: Point-in-time data specific bias কমাতে পারে, accurate modelling বা future return guarantee করে না। Source-এ error, timestamp incomplete এবং execution research assumption থেকে different হতে পারে। Exampleগুলো hypothetical। The Money Man editorial process অনুযায়ী AI-assisted research ও writing-এর সাহায্যে articleটি প্রস্তুত হয়েছে।

Share this post