BtcTakerFlowExhaustionReversalLS1H
مفروضے
BTC ٹیکر فلو کی تھکن پر رجحان کی واپسی، لانگ-شارٹ (واحد انسٹرومنٹ BINANCE USD-M پرپیچوئل، 1 گھنٹے کی بارز، جارحانہ آرڈرز کے انتہائی عدم توازن کے خلاف ٹریڈ — آخری مرحلے کی FOMO خریداری پر شارٹ / گھبراہٹ میں فروخت کے دوران خریداری — رینج والی مارکیٹ کی حالت سے مشروط، ٹیکر تناسب کا نیا سگنل، 3-پیرامیٹر)
مفروضے
ایک LONG-SHORT، single-instrument mean-reversion on BTCUSDT.BINANCE (USD-M perp، 1h bars)، جو price کے بجائے ORDER FLOW سے چلتا ہے — ایسا signal input جسے کوئی deployed strategy استعمال نہیں کرتی۔ ہر bar پر یہ Binance futures taker-ratio supplementary data سے taker buy/sell aggressor imbalance (taker-buy volume fraction) نکالتا ہے (fallback: aggressor-classified trade_ticks)، اور اسے مختصر window پر smooth کرتا ہے۔ Thesis: جب aggressor buying انتہائی اور مسلسل ہو جائے (مثلاً smoothing window پر taker-buy fraction ≥ 0.68)، تو marginal market-buyer آخری مرحلے میں FOMO / forced covering کر رہا ہوتا ہے، جس کے پیچھے نئی limit demand نہیں ہوتی — aggressor exhaustion جو قابلِ اعتماد طور پر قلیل مدتی pullback سے پہلے آتی ہے، اس لیے FADE اسے SHORT۔ اسی طرح، انتہائی مسلسل taker-SELL aggression (fraction ≤ 0.32) کم ہوتی offers میں panic/capitulation market-selling ہے — LONG جائیں۔ یہ جان بوجھ کر اس factory میں ناکام ہونے والی ہر چیز سے DIFFERENT family ہے: یہ NOT trend-following ہے (the 209-death single-regime graveyard — یہ contrarian اور regime-distributed ہے، اور flow کے ہر سمت میں over-extend ہونے پر ادائیگی کرتا ہے)، NOT funding carry (saturated fee-dying basket family — اس کی برتری sub-basis-point cash flow نہیں بلکہ 0.4–0.6% reversal move ہے)، NOT N-leg basket (یہ single-instrument ہے، فی round-trip 2 fills، اس لیے L12 کی 2N×10bps fee wall سے بچتا ہے)، اور NOT options۔ (trade-count wall نہیں — extreme-flow events سال میں درجنوں بار فعال ہوتے ہیں، جس سے قابلِ اعتماد برتری کی پیمائش کے لیے سینکڑوں ٹریڈز ملتی ہیں)۔ اسے NON-TRENDING regimes تک محدود کیا گیا ہے (صرف اس وقت fade جب slow trend filter flat/ranging ہو) تاکہ واحد حقیقی failure mode سے بچا جا سکے — extreme flow جو exhaustion کے بجائے INFORMED continuation ہو۔ 3 کم parameters (flow smoothing window، imbalance threshold، exit) اسے overfit-resistant رکھتے ہیں۔
مفروضے
Iteration 3 واحد Layer-4 QA failure کو حل کرتی ہے: over-tight compound gate کی وجہ سے trade starvation (6 trades/363d)۔ کوئی mechanism، import، یا signal-logic change نہیں (ان سب نے Layers 1-3 پاس کیے)؛ صرف تین entry/exit throttles ڈھیلے کیے گئے ہیں تاکہ strategy تقریباً 100-trade measurability floor سے اوپر آ سکے۔ entry_z 1.2->0.8 flow extremes پر زیادہ بار فعال ہوتا ہے، جبکہ noise سے باہر اور 0.10% round-trip taker cost سے اوپر رہتا ہے (thesis reversal 0.4-0.6% ہے)۔ regime_threshold 0.55->0.65 زیادہ ranging bars کو شامل کرتا ہے، تاکہ ranging-AND-extreme-z conjunction کی نایابی جمع نہ ہوتی جائے، جبکہ مضبوط trends کو خارج کرتا رہے (informed-continuation failure mode)۔ exit_z 0.3->0.25 اور max_hold_bars 24->10 turnover تیز کرتے ہیں، strategy کو جلد flat پر واپس لاتے ہیں اور ہر سال entry windows کی تعداد بڑھاتے ہیں۔ rolling-z scale-invariant signal (L5) اور contrarian، regime-distributed، single-instrument design — جو اسے trend/carry/basket/options graveyard سے ممتاز کرتے ہیں — تبدیل نہیں ہوئے۔
مفروضے
منفی توقع والا single-perp taker-flow exhaustion fade، جس میں کوئی برتری نہیں اور اضافی data wall (L73/L55) ہے۔ profit_factor 0.62، total_return -5.29%، Sharpe -0.71 (CI [-1.35، 0.02])، expectancy -$62.6/ٹریڈ، avg_trade_return_pct 0.0146% (~صفر، net loser)؛ avg_loss > avg_win جس میں win_rate 0.447 ہے، اس لیے fade flow کے غلط رخ پر ہے۔ اہم طور پر، 58,512 bars کے باوجود 2019-2026 پر، ALL 85 ٹریڈز اور returns کا 100% ایک واحد تقریباً 6-ماہ 2026 window میں ہے کیونکہ taker_ratio supplementary feed صرف حالیہ حصے کا احاطہ کرتی ہے — annual_returns={2026:-5.32}، ماہانہ 2026-03..08 — اس لیے 3-window walk-forward اور 20% holdout نہیں بنائے جا سکتے۔ یہ وہی order-flow-gated single-perp signature ہے جسے اس batch میں پہلے ہی تین بار ترک کیا جا چکا ہے (BtcTakerAggressionPersistence، AvaxTakerAggressorDominance، EthTakerFlowBreakout)۔ کوئی parameter tuning فی ٹریڈ منفی برتری کو مثبت نہیں کر سکتی، اور optimizer وہ calendar coverage نہیں خرید سکتا جو feed میں موجود نہیں۔ optimization کے 2 گھنٹے دینا قابلِ قدر نہیں۔ Failure pattern: fee_edge/no_edge single-perp order-flow-gated fade، حالیہ-only supplementary window کے ساتھ۔
نفاذ
BTCUSDT.BINANCE USD-M perp پر long-short order-flow mean-reversion (1h bars)۔ Binance taker_ratio supplementary data سے smoothed taker-buy aggressor fraction کا rolling z-score نکالتا ہے؛ انتہائی مسلسل aggressor buying SHORT (FOMO آخری مرحلے کی exhaustion) اور انتہائی aggressor selling LONG (panic capitulation) کو fade کرتا ہے، صرف ranging (low Kaufman efficiency ratio) regime میں۔ flow normalization، 1% hard stop، یا time cap پر exits۔ Single-instrument، leverage 1.0، 3 بنیادی tunables۔
تصدیق کے نتائج
CLEAN RESTART 2026-09-04 — اس رَن کی فیصلے کی تاریخ اور سیکھنے کے ریکارڈز حذف کر دیے گئے اور اسے تصدیق سے دوبارہ شروع کیا گیا۔ اس کا پچھلا ترک ہونا پائپ لائن کی وجہ سے تھا، مارکیٹ کی وجہ سے نہیں: Layer-2 ہارنس نے @staticmethod مددگار فنکشنز کو غلط باندھا تھا (درست کر دیا گیا)، QA نے غیر موزوں اسموک ٹیسٹ پر حتمی کارکردگی کے فیصلے جاری کیے تھے (ہٹا دیا گیا — QA اب صرف درستی کا جائزہ لیتا ہے)، اور سینڈ باکس ٹائم آؤٹس بیک ٹیسٹ-سلاٹ کی قلت کی وجہ سے تھے (درست کر دیے گئے)۔ مفروضہ اور حکمتِ عملی کا کوڈ تبدیل نہیں ہوئے۔ کوڈ کی تصدیق اس کی اپنی خوبیوں پر کریں؛ کارکردگی کا فیصلہ بعد میں مکمل بیک ٹیسٹ اور آپٹمائزر کرے گا۔
تصدیق کے نتائج
taker_lag_seconds کو تقریباً 7200-14400s کے default پر کم کریں تاکہ stale feeds entries کو روکیں۔
تصدیق کے نتائج
taker_lag_seconds کا default 90000 (25 گھنٹے) ہے، اس لیے _current_fraction، None واپس کرنے سے پہلے taker_ratio observation کو تقریباً 25h تک stale ہونے کی اجازت دیتا ہے۔ یہ look-ahead نہیں ہے (bisect bound bar ts_event <= ts_init پر one-sided ہے)، مگر feed gaps کے دوران strategy ایک دن پرانی flow reading پر trade کرتی ہے۔
تصدیق کے نتائج
صرف اسی وقت _frac_buf میں append کریں جب self._tk_ts[idx] آگے بڑھے۔
تصدیق کے نتائج
_current_fraction تازہ ترین observation واپس کرتا ہے، novelty سے قطع نظر، اس لیے feed کے آگے بڑھنے تک ہر bar پر وہی fraction دوبارہ _frac_buf میں append ہوتا رہتا ہے، جس سے rolling-z baseline std معمولی طور پر compress ہوتا ہے۔ 1h cadence پر correctness break نہیں ہے۔
بیک ٹیسٹ جائزہ
صاف single-instrument implementation (2 fills/round-trip، basket fee wall نہیں)، regime-gated، صرف 3 بنیادی tunables — ساختی طور پر overfit-resistant
بیک ٹیسٹ جائزہ
Order-flow signal input، trend/carry/basket graveyards سے حقیقی طور پر مختلف ہے
بیک ٹیسٹ جائزہ
بغیر برتری کا net loser: profit_factor 0.62، total_return -5.29%، Sharpe -0.71 (CI [-1.35، 0.02])، expectancy -$62.6/ٹریڈ، avg_trade_return_pct 0.0146% (~صفر اور منفی sign)
بیک ٹیسٹ جائزہ
avg_loss ($301)، avg_win ($232) سے زیادہ ہے، جس میں win_rate 0.447 شامل ہیں — exhaustion-fade منظم طور پر flow move کے غلط رخ پر ہے
بیک ٹیسٹ جائزہ
Supplementary data wall (L73): تمام 85 ٹریڈز اور returns کا 100% ایک واحد تقریباً 6-ماہ 2026 window میں ہے (annual_returns={2026:-5.32}، ماہانہ 2026-03..08) کیونکہ taker_ratio feed، 2019-2026 OHLCV history کے صرف حالیہ حصے کا احاطہ کرتی ہے — مؤثر sample، 3-window walk-forward + 20% holdout کو support نہیں کر سکتا
بیک ٹیسٹ جائزہ
commission_pct_of_gross 47% — فیس اور impact پہلے ہی gross کا نصف کھا جاتے ہیں، منفی-sign برتری سے پہلے ہی
بیک ٹیسٹ جائزہ
یہ zero-survivor single-perp order-flow-gated class (BtcTakerAggressionPersistence، AvaxTakerAggressorDominance، EthTakerFlowBreakout سب ترک کیے گئے) اور L55 sub-1.15-PF single-name fade class سے مطابقت رکھتا ہے
بیک ٹیسٹ جائزہ
6mo (2026 only)
بیک ٹیسٹ جائزہ
multi-year
Iteration History
تصدیق ناکام (Layer 3 — sandbox backtest): کوئی trades پیدا نہیں ہوئے
استعمال شدہ bar type: BTCUSDT.BINANCE-1-HOUR-LAST-EXTERNAL، process کیے گئے bars: 8729
Diagnostics: should_enter() نے 8679 evaluated bars کے دوران 0 بار side واپس کی -> آپ کا ENTRY CONDITION کبھی trigger نہیں ہوا۔ entry logic / thresholds ڈھیلے کریں۔
یقینی بنائیں کہ دیے گئے data اور parameters کے ساتھ strategy trades پیدا کرے۔
Iteration History
تصدیق ناکام (Layer 4 — QA جائزہ):
- entry gate قابلِ پیمائش نتیجہ پیدا کرنے کے لیے بہت کم فعال ہوتا ہے۔ سینڈ باکس نے 6 دنوں میں صرف 363 trades پیدا کیے (~6 trades/year)۔ compound gate بیک وقت (a) ایک RANGING regime (Kaufman efficiency ratio < regime_threshold)، (b) taker-buy fraction کا extreme rolling z (|z| >= entry_z=1.2)، اور (c) strategy کا FLAT ہونا لازم کرتا ہے، پھر زیادہ سے زیادہ 24 bars تک hold کرتا ہے -- اس لیے حقیقی entries نایاب ہیں، اگرچہ z اکثر band کو cross کرتا ہے۔ یہ عین L16 failure mode ہے ('BTC 4H aggressor imbalance 16 trades'، 'BTC taker-ratio 16 trades')، اور یہاں WORSE ہے (6 trades)۔ اس رفتار پر multi-year backtest بھی تقریباً 100-trade measurability floor سے بہت نیچے رہے گا۔ مفروضے کی اپنی justification ('سال میں درجنوں بار، قابلِ اعتماد edge measurement کے لیے سینکڑوں trades') 6-trade نتیجے سے براہِ راست متصادم ہے۔
- چونکہ نتیجہ 6 trades پر مبنی ہے، ہر headline metric non-diagnostic ہے: Sharpe 0.84 مگر sharpe_ci_low -1.08 (CI zero کو straddle کرتا ہے)، profit_factor 10.26 اور win_rate 0.667 on 6 samples، return_skew 7.23 / kurtosis 94.8، اور avg_win $300 بمقابلہ avg_loss $58 -- ایک واحد largest_win $662 پورے مثبت return کو سنبھالتا ہے (+1.08%)۔ ان میں سے کسی پر بھی edge کے ثبوت کے طور پر اعتماد نہیں کیا جا سکتا۔ یہ اوپر بیان کردہ trade-count مسئلے کا براہِ راست نتیجہ ہے، کوئی الگ defect نہیں۔
Iteration History
تصدیق ناکام (Layer 4 — QA جائزہ):
- بنیادی برتری منفی ہے اور فیس سے کم ہے، جس سے مفروضے کا مرکزی دعویٰ غلط ثابت ہوتا ہے۔ مفروضہ کہتا ہے کہ فَیڈ ایک '0.4-0.6% reversal move' پکڑتا ہے؛ سینڈ باکس avg_trade_return_pct -0.025% ناپتا ہے -- منفی، اور دعوے اور 0.15% فیوچرز فیس فلور دونوں سے ایک درجۂ مقدار کم۔ حقیقی no-edge کی تائید میں (محض شور نہیں): profit_factor 0.518، Sharpe -1.53 (CI [-2.73، +0.07])، win_rate 0.50 جس میں INVERTED reward/risk (avg_loss $338 ~= 2x avg_win $175)، omega_ratio 0.35۔ اہم بات یہ ہے کہ یہ BECAUSE iter-3 کی نرمی (entry_z 1.2->0.8، regime_threshold 0.55->0.65) کے بعد سامنے آیا، جس نے ٹریڈز بڑھائیں: اضافی اندراجات کمزور flow extremes پر فعال ہوئے جو NOT واپس نہیں پلٹے، اور اوسط برتری کو منفی کر گئے۔ یہ براہِ راست ثبوت ہے کہ taker-flow-exhaustion سگنل میں ایسی reversal alpha نہیں جو لاگت سے اوپر ہو -- انتہائی aggressor-imbalance bars ان thresholds پر منظم طور پر mean-revert نہیں کرتیں۔
- ٹریڈ کی تعداد اب بھی قابلِ پیمائش حد سے کم ہے۔ iter-3 نے 6 سے 26 تک، 363 دنوں میں (~26/سال)، ٹریڈز بڑھائیں، مگر یہ اب بھی تقریباً 100-ٹریڈ فلور سے بہت کم ہے جو برتری کو شور سے الگ کرنے کے لیے درکار ہے (L16؛ sibling BTC aggressor-imbalance/taker-ratio کوششیں 16 ٹریڈز پر ختم ہو گئیں)۔ 26 ٹریڈز اور skew -4.83 / kurtosis 43 کے ساتھ (ایک واحد -$945 نقصان غالب ہے)، میٹرکس اب بھی شور سے متاثر ہیں -- Sharpe CI، -2.73 سے +0.07 تک پھیلا ہوا ہے۔ ڈویلپر دو ناکام regimes کے درمیان پھنسا ہے: سخت gate -> ناقابلِ پیمائش (6 ٹریڈز)، ڈھیلا gate -> تقریباً قابلِ پیمائش مگر منفی برتری (26 ٹریڈز، -0.025%/ٹریڈ)۔ دونوں ناکام ہیں۔
Stratmill ایک تحقیقی اور پیپر ٹریڈنگ ٹول ہے، مالیاتی مشورہ یا بروکر نہیں۔ بیک ٹیسٹ اور پیپر نتائج فرضی ہیں۔ ٹریڈنگ میں نقصان کا خطرہ شامل ہے۔