AI Trading track record کی تصدیق کیسے ہو؟
قابلِ تصدیق AI Trading track record کے لیے چھ شواہد: pre-result entries، مستقل benchmark، timestamps، trading costs اور sample length۔ ایک live quarter کافی نہیں۔
AI trading کا track record اسی وقت قابلِ تصدیق ہوتا ہے جب کوئی غیر جانب دار شخص ایسے records سے اسے دوبارہ تشکیل دے سکے جو نتائج سامنے آنے سے پہلے موجود تھے۔ Online شائع ہونے والا بہت کم مواد اس معیار پر پورا اترتا ہے۔ ذیل میں ایسی checklist دی گئی ہے جسے قاری تقریباً دو منٹ میں استعمال کر سکتا ہے۔ اس میں چار نکات کے لیے market data شامل ہے: benchmark، timestamps، trading costs اور sample length۔
AI trading کا قابلِ تصدیق ریکارڈ کن خصوصیات کا حامل ہوتا ہے؟
چھ خصوصیات۔ ہر خصوصیت ایسی ہے جسے آپ کسی ذاتی رائے کے بجائے شواہد کی بنیاد پر جانچ سکتے ہیں۔
- نتیجہ معلوم ہونے سے پہلے شائع کیے گئے entries۔ Timestamp ایسی جگہ درج ہونا چاہیے جسے مصنف بعد میں تبدیل نہ کر سکے، مثلاً اسی وقت push کیا گیا commit یا broker statement۔ ماضی کی trades کی فہرست اس ماضی کے بارے میں دعویٰ ہوتی ہے، اس کا ریکارڈ نہیں۔
- ایک benchmark، جس کا نام ابتدا میں دیا گیا ہو اور بعد میں تبدیل نہ کیا گیا ہو۔ مخصوص مدت کے دوران کسی مخصوص fund کے ساتھ موازنہ طے کیے بغیر “market کو شکست دی” کا کوئی واضح مطلب نہیں۔
- رپورٹ کیے گئے اعداد میں costs شامل ہوں۔ اس میں commissions، regulatory fees، short positions پر borrow cost، اور entry و exit دونوں پر ادا کیا گیا spread شامل ہونا چاہیے۔
- ایسا runbook جس کے versions محفوظ ہوں، نہ کہ بعد میں edit کیا گیا ہو۔ جب کوئی public repository اس ریکارڈ کی بنیاد ہو تو مفید link کسی tagged release یا commit hash کی طرف لے جاتا ہے۔ default branch کا link آج کی strategy دکھاتا ہے، جو ممکن ہے مارچ میں trade کرنے والی strategy نہ ہو۔
- ہر position اور ہر account، بشمول خسارے والے accounts۔ پانچ running accounts میں سے صرف ایک account شائع کرنا selection ہے۔
- اتنا starting capital کہ fills قابلِ اعتبار دکھائی دیں۔ چند سو dollars کی notional رقم ایسی positions کو “hold” کر سکتی ہے جنہیں کوئی حقیقی order درج شدہ قیمت پر fill نہ کر پاتا۔
ان میں سے ایک خصوصیت بھی غائب ہو تو ریکارڈ لازماً بے ایمانی پر مبنی نہیں ہوتا۔ وہ unverifiable ہوتا ہے، اور یہ صورت زیادہ عام ہونے کے ساتھ قاری کے لیے اتنی ہی بے فائدہ ہے۔
Benchmark کا نام پہلے سے طے کرنا کیوں ضروری ہے
نتائج سامنے آنے کے بعد منتخب کیا گیا benchmark finance میں سب سے سستا فائدہ ہے۔ 2026 کے انہی چھ ماہ کے دوران چھ وسیع US index funds کی صرف قیمت میں تبدیلی:
| ticker | Return (%) | بدترین سطح سے پوائنٹس زیادہ |
|---|---|---|
| IWM | 21.12 | 12.7 |
| QQQ | 18.5 | 10.08 |
| MDY | 15.97 | 7.55 |
| RSP | 10.74 | 2.32 |
| SPY | 8.79 | 0.37 |
| DIA | 8.42 | 0 |
ہر عدد کے پیچھے موجود درست SQL
WITH rets AS (
SELECT ticker,
round(100 * (toFloat64(argMax(close, window_start))
/ toFloat64(argMin(close, window_start)) - 1), 2) AS return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'IWM', 'DIA', 'RSP', 'MDY')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
)
SELECT ticker,
return_pct,
round(return_pct - min(return_pct) OVER (), 2) AS points_above_worst
FROM rets
ORDER BY return_pct DESCIWM نے 21.12% return دیا، جبکہ DIA نے 8.42% return دیا۔ یوں ایک جیسے عرصے میں 6 کے بلند ترین اور کم ترین نتیجے کے درمیان 12.7 points کا فرق رہا۔ مدت ختم ہونے کے بعد یہ فیصلہ کرنا کہ کس fund کے مقابلے میں پیمائش کرنی ہے، اسی پورے فرق کے برابر فائدہ دے سکتا ہے، اور اسے حاصل کرنے کے لیے کسی strategy کو کچھ کرنے کی ضرورت نہیں۔ یہ dividends سے پہلے کے price returns ہیں۔ اس لیے measurement rule بھی پہلے سے واضح کرنا ضروری ہے۔ (ماہانہ returns کی پیمائش کیسے کی جاتی ہے میں total-return arithmetic کی وضاحت ہے۔)
داخلے کا timestamp ہی پورے دعوے کی بنیاد ہے
جو entry حرکت کے بعد ظاہر ہو، وہ دراصل chart کی وضاحت ہوتی ہے۔ ایک session کے اندر market جتنا فاصلہ طے کرتی ہے، وہ اتنا وسیع ہوتا ہے کہ "09:35 پر پوسٹ کیا گیا" اور "15:55 پر پوسٹ کیا گیا" کے درمیان فرق بیشتر دعویٰ کردہ برتریوں کو بے معنی بنا دیتا ہے۔ 2026 کے پہلے نصف میں ہر session کے پہلے print سے ناپا گیا یہ فاصلہ درج ذیل ہے:
| ET وقت | سیشنز کی تعداد | میڈین مطلق تبدیلی (%) |
|---|---|---|
| 09:30 | 123 | 0.216 |
| 10:00 | 123 | 0.242 |
| 10:30 | 123 | 0.276 |
| 11:00 | 123 | 0.291 |
| 11:30 | 123 | 0.304 |
| 12:00 | 123 | 0.362 |
| 12:30 | 123 | 0.377 |
| 13:00 | 123 | 0.385 |
| 13:30 | 123 | 0.427 |
| 14:00 | 123 | 0.443 |
| 14:30 | 123 | 0.433 |
| 15:00 | 123 | 0.453 |
| 15:30 | 123 | 0.415 |
ہر عدد کے پیچھے موجود درست SQL
WITH minute_px AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toTimeZone(window_start, 'America/New_York') AS et,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
),
opens AS (
SELECT session_date, argMin(px, et) AS open_px
FROM minute_px
GROUP BY session_date
),
buckets AS (
SELECT session_date,
toStartOfInterval(et, INTERVAL 30 MINUTE) AS bucket,
argMax(px, et) AS bucket_px
FROM minute_px
GROUP BY session_date, bucket
)
SELECT formatDateTime(b.bucket, '%H:%i') AS et_time,
count() AS session_count,
round(quantileDeterministic(0.5)(abs(100 * (b.bucket_px / o.open_px - 1)),
cityHash64(b.session_date)), 3) AS median_abs_move_pct
FROM buckets AS b
INNER JOIN opens AS o ON b.session_date = o.session_date
GROUP BY et_time
ORDER BY et_time09:30 ET bucket میں median session اپنے opening print سے 0.216% دور ختم ہوا۔ 15:30 bucket میں median فاصلہ 0.415% تھا۔ Open پر کسی agent کو جو کچھ معلوم تھا، اس میں اس سفر کا تقریباً پورا حصہ شامل نہیں تھا۔ Commit history یا dated public feed ترتیبِ زمانی کا ثبوت فراہم کرتی ہے (AI کی روزانہ market research reports اسی خصوصیت پر قائم رہتی ہیں یا ناکام ہوتی ہیں)۔ Equity curve کا screenshot اس کا کوئی ثبوت فراہم نہیں کرتا۔
What has to be inside the numbers
Gross returns describe a portfolio nobody could have held. Every entry and exit crosses the bid-ask spread, the gap between the best price to buy and the best price to sell, and that gap is not the same on every name:
| ticker | میڈین اسپریڈ (bps) | 25k USD پر راؤنڈ ٹرپ لاگت |
|---|---|---|
| MSTR | 10.08 | 25.2 |
| MSFT | 2.01 | 5.03 |
| NVDA | 1.43 | 3.59 |
| AAPL | 1.24 | 3.09 |
| KO | 1.21 | 3.01 |
| SPY | 0.27 | 0.66 |
ہر عدد کے پیچھے موجود درست SQL
SELECT ticker,
round(quantileDeterministic(0.5)(20000 * (toFloat64(ask_price) - toFloat64(bid_price))
/ (toFloat64(ask_price) + toFloat64(bid_price)),
cityHash64(sip_timestamp)), 2) AS median_spread_bps,
round(25000 * quantileDeterministic(0.5)(2 * (toFloat64(ask_price) - toFloat64(bid_price))
/ (toFloat64(ask_price) + toFloat64(bid_price)),
cityHash64(sip_timestamp)), 2) AS round_trip_cost_per_25k_usd
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO', 'MSTR')
AND sip_timestamp >= toDateTime('2026-07-15 15:00:00')
AND sip_timestamp < toDateTime('2026-07-15 16:00:00')
AND bid_price > 1
AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps DESCAcross that one midday hour, the median quoted spread ran 10.08 basis points on MSTR against 0.27 on SPY. A basis point is one hundredth of a percentage point. On a $25,000 position, crossing that spread once in each direction costs $25.2 at the wide end of this list and $0.66 at the tight end, before commissions. A book that turns over fully once a week pays that toll about fifty times a year, and a record that omits it has quietly credited those dollars to itself (what it costs to trade a stock breaks down the rest of the bill).
لائیو نتائج کتنے عرصے بعد معنی خیز ہوتے ہیں؟
لائیو trading کی ایک سہ ماہی، وسیع distribution سے لیا گیا صرف ایک مشاہدہ ہے، اور اس distribution کی چوڑائی قابلِ پیمائش ہے۔ جنوری 2015 سے SPY، یعنی S&P 500 کو track کرنے والے سب سے بڑے fund، کے لیے مقررہ مدت کی ہر overlapping window کو percentiles میں تقسیم کیا گیا ہے:
| ہولڈنگ مدت | ونڈوز کی تعداد | P05 Return (%) | میڈین Return (%) | P95 Return (%) | اسپریڈ (%) | معیاری انحراف (%) |
|---|---|---|---|---|---|---|
| 1 month | 2868 | -6.6 | 1.6 | 7.1 | 13.7 | 4.5 |
| 3 months | 2826 | -8.8 | 3.9 | 12.2 | 21.1 | 6.9 |
| 6 months | 2763 | -9.4 | 6.7 | 19.4 | 28.8 | 9 |
| 12 months | 2637 | -10.9 | 14.1 | 34.2 | 45 | 13.6 |
ہر عدد کے پیچھے موجود درست SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toFloat64(argMax(close, window_start)) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2015-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY session_date
),
series AS (
SELECT groupArray(close_px) AS px
FROM (SELECT close_px FROM daily ORDER BY session_date)
),
horizons AS (
SELECT arrayJoin([21, 63, 126, 252]) AS sessions, px
FROM series
),
windows AS (
SELECT sessions,
arrayJoin(arrayMap(i -> (i, 100 * (px[i + sessions] / px[i] - 1)),
range(1, length(px) - sessions + 1))) AS w
FROM horizons
),
measured AS (
SELECT sessions,
w.1 AS window_index,
w.2 AS window_return_pct
FROM windows
)
SELECT multiIf(sessions = 21, '1 month',
sessions = 63, '3 months',
sessions = 126, '6 months',
'12 months') AS holding_period,
count() AS window_count,
round(quantileDeterministic(0.05)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS p05_return_pct,
round(quantileDeterministic(0.50)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS median_return_pct,
round(quantileDeterministic(0.95)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS p95_return_pct,
round(quantileDeterministic(0.95)(window_return_pct,
cityHash64(window_index * 1000 + sessions))
- quantileDeterministic(0.05)(window_return_pct,
cityHash64(window_index * 1000 + sessions)), 1) AS spread_pct,
round(stddevSamp(window_return_pct), 1) AS stdev_pct
FROM measured
GROUP BY sessions
ORDER BY sessions2826 overlapping تین ماہ کی windows میں، buy-and-hold کے ذریعے کچھ نہ کرنے کا median outcome 3.9% تھا۔ 5th percentile -8.8% اور 95th percentile 12.2% رہے، یعنی یہ band 21.1 points چوڑا تھا۔ اس band کے اندر آنے والا کوئی بھی واحد سہ ماہی نتیجہ اس بات سے مطابقت رکھتا ہے کہ آپ index own کر کے چھٹی پر چلے گئے ہوں۔ بیس agents لانچ کریں، انہیں ایک سہ ماہی چلائیں، پھر بہترین agent شائع کریں؛ ظاہر ہونے والا نمبر لازماً اسی طرح کے band کے اوپری حصے سے آتا ہے۔
Sample length کا حساب سخت ہے۔ اسی series میں بارہ ماہ کے outcomes کی standard deviation 13.6 points ہے۔ حقیقی edge کو noise سے الگ کرنے کے لیے تقریباً (2 × variation ÷ edge)² سال کے live results درکار ہوتے ہیں۔ اس variation کی سطح پر، سالانہ 3-point کا فرضی edge ثابت کرنے میں کئی دہائیاں لگ سکتی ہیں، جبکہ 10-point edge کے لیے بھی مہینوں کے بجائے کئی سال درکار ہوں گے۔ اوپر دی گئی windows ایک دوسرے سے overlapping ہیں، اس لیے 2826 windows کی تعداد ہے، independent samples کی نہیں۔
کیا $25,000 کی حقیقی رقم اس مسئلے کو حل کر دیتی ہے؟
حقیقی رقم ایک مخصوص پہلو سے شواہد کو مضبوط بناتی ہے۔ Paper trading میں ایسے prices پر trades execute ہوتے ہیں جن پر کسی counterparty نے رضامندی نہیں دی ہوتی، اور کوئی order کبھی reject بھی نہیں ہوتا۔ $25,000 سے funded account میں trades live quotes کے مقابل execute ہوتے ہیں اور حقیقی commissions ادا کی جاتی ہیں۔ یہ سب ایسے statements میں درج ہوتا ہے جن کا کوئی third party audit کر سکتا ہے۔ پوزیشن sizes بھی اتنے بڑے ہوتے ہیں کہ fills حقیقی معلوم ہوں، فرضی نہیں۔
لیکن اس سے sample کا مسئلہ برقرار رہتا ہے۔ چار ماہ تک $25,000 کی trading اب بھی اوپر بیان کردہ distribution سے صرف ایک draw ہے۔ مزید یہ کہ drawdown کے بعد live account بند کر کے دوبارہ کھولا جا سکتا ہے، جبکہ record نئے سرے سے شروع ہو جاتا ہے۔ بڑا size fills کو حقیقی بناتا ہے۔ نتائج کو معنی خیز صرف وقت بناتا ہے۔
پہچاننے کے لیے چار ناکامی کے طریقے
- Track record کا روپ دھارا ہوا backtest۔ ماضی کے data پر simulated نتائج، ماضی کے بارے میں hypotheses ہوتے ہیں۔ Look-ahead bias دکھاتا ہے کہ simulation ایسی معلومات جذب کر لیتا ہے جو اس وقت strategy کے پاس موجود نہیں ہو سکتی تھیں۔ اس کی سب سے واضح علامت ایسی equity curve ہے جو code لکھے جانے سے کئی سال پہلے شروع ہو جائے۔
- اسٹیج پر صرف بچ جانے والا۔ دس agents لانچ کیے گئے، مگر صرف ایک شائع ہوا۔ Multi-agent AI trading systems یہ غلطی غیر ارادی طور پر آسان بنا دیتے ہیں، کیونکہ دس variants چلانے والا framework خود اس variant کا انتخاب بھی کر لیتا ہے جس پر لکھنا مناسب سمجھا جائے۔
- دوبارہ آغاز۔ Drawdown، وقفہ، نیا account، اور ایسی curve جو restart date سے شروع ہو۔ فیصلہ کن سوال یہ ہے: پہلے account کے پہلے dollar سے equity curve دکھائیں۔
- دوبارہ لکھی گئی runbook۔ Trade اور writeup کے درمیان prompts اور position limits میں ترمیم کر دی گئی۔ LLM-generated alpha factors ہزاروں کی تعداد میں تیار کیے جا سکتے ہیں، اس لیے selection rule کو selection سے پہلے شائع کرنا ضروری ہے۔ ورنہ record ان factors کی کہانی بن جاتا ہے جو اتفاقاً کامیاب رہے۔
عمومی سوالات
کیا AI trading کے track record کی تصدیق کی جا سکتی ہے؟
ہاں، بشرطیکہ entries کے نتائج معلوم ہونے سے پہلے شائع کی گئی ہوں، benchmark پہلے سے مقرر ہو، costs اعداد میں شامل ہوں، اور ہر account دکھایا گیا ہو۔ یہ جانچ mechanical ہے اور چند منٹ میں مکمل ہو جاتی ہے۔ زیادہ تر شائع شدہ records پہلی ہی شرط پر ناکام ہو جاتے ہیں۔
Live AI trading record کتنے عرصے تک جاری رہنا چاہیے؟
تقریباً ہر شائع شدہ record سے کہیں زیادہ عرصے تک۔ یہاں ناپی گئی مدتوں کے دوران index کے بارہ ماہ کے outcomes کا standard deviation 13.6 points رہا۔ اس لیے conventional confidence کے ساتھ معمولی برتری کو محض قسمت سے الگ کرنے میں کم از کم کئی سال، اور معمولی edge کے لیے کئی دہائیاں درکار ہوتی ہیں۔
کیا $25,000 کی رقم AI portfolio کے نتائج کو بامعنی بنانے کے لیے کافی ہے؟
یہ fills کو حقیقی بنانے کے لیے کافی ہے: live quotes، حقیقی commissions اور قابلِ audit statements۔ لیکن چند ماہ کے نتائج کو statistically meaningful بنانے کے لیے کافی نہیں۔ یہ معاملہ account size کے بجائے گزرے ہوئے وقت سے متعلق ہے۔
Backtest اور track record میں کیا فرق ہے؟
Backtest ان rules کو پہلے سے موجود data پر لاگو کرتا ہے۔ Track record ان decisions کا سلسلہ ہے جو ان کے outcomes سامنے آنے سے پہلے شائع کیے گئے ہوں۔ صرف دوسرے طریقے کو بعد کے نتائج غلط ثابت کر سکتے ہیں، اور یہی اسے evidence بناتا ہے۔
Benchmark کا انتخاب اتنا اہم کیوں ہے؟
2026 کے پہلے نصف کے دوران اوپر دیے گئے چھ index funds صرف price کی بنیاد پر 12.7 points کے فرق سے اختتام پذیر ہوئے۔ Window بند ہونے کے بعد منتخب کیا گیا benchmark، strategy کے کسی کردار کے بغیر، یہ پورا فرق پیدا کر سکتا ہے۔
اس صفحے کا ہر number market data پر مبنی stored query سے حاصل کیا گیا ہے، اور ہر panel کے نیچے SQL موجود ہے۔ Strasmore terminal پر انہی windows کو اپنی تاریخوں کے ساتھ چلا کر دیکھیں۔