ممکن ہے کہ آپ کا انٹری سگنل آپ کے بیک ٹیسٹ میں سب سے کم اہم چیز ہو۔ میں مومینٹم کا ایک اوسط سا اصول لے سکتا ہوں، انٹری اور ایگزٹ کے ہر ٹائم اسٹیمپ کو جوں کا توں چھوڑ سکتا ہوں، صرف وہ فنکشن بدل سکتا ہوں جو طے کرتا ہے کہ کتنے کنٹریکٹس رکھنے ہیں، اور نیٹ Sharpe کو 0.41 سے 0.71 تک اور زیادہ سے زیادہ ڈرا ڈاؤن کو 31% سے 13% تک لے جا سکتا ہوں۔ وہی ٹریڈز۔ وہی فلز۔ مختلف حکمتِ عملی۔
یہ دعویٰ لوگوں کو ناگوار گزرتا ہے، اور ایسا ہونا بھی چاہیے، کیونکہ اس کا مطلب ہے کہ زیادہ تر وقت ہم لُک بیکس اور فلٹر کی حدیں بہتر بنانے پر لگا رہے ہوتے ہیں، حالانکہ وہ چھوٹا سا حصہ ہیں۔ تو پہلے میں اصل رنز دکھاتا ہوں، پھر ناقدین کی بات بھی مانتا ہوں، کیونکہ اس دلیل کا ایک غلط روپ بھی ہے، اور یہ جاننا ضروری ہے کہ میں کون سا روپ پیش کر رہا ہوں۔
ایک سگنل، اسے رکھنے کے 6 طریقے
سگنل: Binance USDⓈ-M پر ETHUSDT پرپیچوئل، 1 گھنٹے کی بارز؛ جب 12 گھنٹے کا EMA، 96 گھنٹے کے EMA سے اوپر ہو تو لانگ، ورنہ فلیٹ، کوئی شارٹ نہیں۔ جولائی 2022 سے جون 2026 تک۔ 431 راؤنڈ ٹرپس۔ دونوں طرف ٹیکر فیس 5.0 bps، ہر 8 گھنٹے بعد اصل پوزیشن کے مطابق فنڈنگ ادا یا وصول، اور سلپیج کا ماڈل ٹاپ آف بک گہرائی کی بنیاد پر۔ یہ جان بوجھ کر ایک بے مزہ سا سگنل ہے — میں نے اسے اس لیے چنا کہ کوئی اس کا دفاع نہیں کرے گا، یوں اسے صاف آزمائشی سطح بنایا جا سکتا ہے۔
نیچے دی گئی ہر قطار میں انٹری اور ایگزٹ بار کے ٹائم اسٹیمپس ایک جیسے ہیں۔ فرق صرف سائزنگ فنکشن کا ہے۔
| سائزنگ کا اصول | نیٹ Sharpe | زیادہ سے زیادہ DD | سالانہ ٹریڈ کردہ نوٹیشنل (× اوسط پوزیشن) | مجموعی PnL میں لاگت کا فیصد | زیادہ سے زیادہ لیوریج |
|---|---|---|---|---|---|
| مقررہ $10k نوٹیشنل | 0.41 | 18.2% | 246× | 14% | 1.0× |
| مقررہ تناسب، ایکویٹی کا 100% | 0.44 | 30.8% | 251× | 15% | 1.0× |
| 20 دن کے حقیقی اتار چڑھاؤ کا معکوس | 0.68 | 14.1% | 690× | 29% | 4.4× |
| 20% سالانہ اتار چڑھاؤ کا ہدف، ہر گھنٹے ری بیلنس، کوئی حد نہیں | 0.71 | 12.9% | 1,180× | 41% | 6.3× |
| 20% اتار چڑھاؤ کا ہدف، 20% نو ٹریڈ بینڈ، لیوریج کی حد 3× | 0.66 | 15.3% | 402× | 19% | 3.0× |
| 60 دن کے متحرک اوسط/واریئنس پر ہاف کیلی | 0.52 | 24.6% | 830× | 33% | 8.1× |
فرق دیکھیں۔ بدترین اور بہترین قطاروں کے درمیان Sharpe میں 73% کا نسبتی فرق اور ڈرا ڈاؤن میں 2.4 گنا فرق ہے۔ اب اس ڈیٹاسیٹ میں ایسا انٹری سگنل پیرامیٹر ڈھونڈیے جو Sharpe کو 0.30 تک لے جائے اور ساتھ ہی واضح حد سے زیادہ فِٹ نہ ہو۔ میں نے ڈھونڈا ہے۔ EMA کے جوڑے کی مدت اسے پورے معقول گرڈ میں تقریباً 0.12 تک بدلتی ہے، اور اس تبدیلی کا بیشتر حصہ ایسا شور ہے جسے آؤٹ آف سیمپل برقرار نہیں رکھا جا سکتا۔
معکوس اتار چڑھاؤ اتنا اچھا کیوں دکھائی دیتا ہے، اور اس میں حقیقت کتنی ہے
اس کا طریقۂ کار پراسرار نہیں۔ مقررہ نوٹیشنل میں آپ کے پوزیشن سائز کا حقیقی اتار چڑھاؤ سے کوئی تعلق نہیں ہوتا، یعنی ہر ٹریڈ پر ڈالر میں آپ کا خطرہ اس بات کے تناسب سے بدلتا ہے کہ اس ہفتے اتار چڑھاؤ کتنا ہے۔ اس مدت میں ETH کا 20 دن کا حقیقی اتار چڑھاؤ سالانہ بنیاد پر 31% سے 118% تک رہا۔ مقررہ نوٹیشنل والے رن نے جولائی 2023 کے مقابلے مارچ 2024 میں 3.8× زیادہ ڈالر کا خطرہ لیا؛ اس لیے نہیں کہ سگنل زیادہ پُریقین تھا، بلکہ اس لیے کہ مارکیٹ میں شور زیادہ تھا۔ اس کا تقریباً سارا ڈرا ڈاؤن اتار چڑھاؤ کے بلند ترین پانچویں حصے میں مرتکز ہے۔ معکوس اتار چڑھاؤ کی سائزنگ اس ربط کو ختم کرتی ہے، اور ایسا کرنا منافع کے سلسلے کی ساخت میں حقیقی بہتری ہے۔
لیکن Sharpe میں اضافے کا کچھ حصہ پیمائش کا مصنوعی اثر ہے؛ اگر آپ ان دونوں کو الگ نہ کریں تو آگے چل کر غلط فیصلے کریں گے۔ Sharpe، منافع کے اتار چڑھاؤ کے معیاری انحراف سے تقسیم ہوتا ہے۔ اتار چڑھاؤ کے مطابق ہدف بندی تعریفاً ایسا عمل ہے جو منافع کے اتار چڑھاؤ کے معیاری انحراف کو مستحکم کرتا ہے۔ آپ براہِ راست مخرج کو بہتر بنا رہے ہیں۔ جو اصول پوزیشنوں کو اس طرح بڑھاتا گھٹاتا ہے کہ پیشگی اتار چڑھاؤ مستقل رہے، وہ اتار چڑھاؤ کے جھرمٹ والے تقریباً ہر منافع کے سلسلے میں Sharpe بہتر کرے گا، حتیٰ کہ ایسے سلسلوں میں بھی جن میں کوئی برتری نہ ہو۔ میں نے بے ترتیب کیے گئے سگنلز پر اس کی تصدیق کی ہے: انٹری کے ٹائم اسٹیمپس بے ترتیب کریں، اتار چڑھاؤ کے ہدف والا اوورلے برقرار رکھیں، اور صفر اوسط والی بنیاد پر بھی Sharpe، مقررہ نوٹیشنل کے مقابلے تقریباً 0.06 بہتر رہتا ہے۔ تھوڑا سا، مگر صفر نہیں؛ اور یہ خالص میکانکی اثر ہے۔
اسی لیے جب میں اندرونی طور پر سائزنگ کے اصولوں کا موازنہ کرتا ہوں تو شیٹ پر Sharpe اکیلا عدد نہیں ہوتا۔ مجھے Calmar چاہیے، اوسط تعینات نوٹیشنل کی فی اکائی نیٹ PnL چاہیے، اور مجموعی سے خالص تک لاگت کی تفصیل چاہیے، کیونکہ یہ تینوں مل کر مخرج کی چال سے نتیجہ بگاڑنا کہیں مشکل بنا دیتے ہیں۔
اتار چڑھاؤ کا تخمینہ ایک ماڈل ہے، اور اس میں بھی لیکیج ہو سکتی ہے
اچھے دکھائی دینے والے سائزنگ نتیجے کے جعلی ثابت ہونے کی سب سے عام وجہ یہ ہے کہ اتار چڑھاؤ کا تخمینہ اسی بار کی معلومات استعمال کرتا ہے جس کے لیے سائز طے کیا جا رہا ہے۔ اگر آپ کی اتار چڑھاؤ کی سیریز سینٹرڈ ونڈو سے نکالی گئی ہو، یا pandas کے ڈیفالٹ `rolling().std()` کو ایسے ری سیمپل کے بعد لگایا گیا ہو جس میں موجودہ نامکمل بار شامل ہو، یا اسے پورے سیمپل کو معیاری بنا کر نکالا گیا ہو، تو آپ کے پاس لیکیج ہے۔ یہ باریک بات ہے کیونکہ اتار چڑھاؤ مستقل رہتا ہے، اس لیے کسی ایک قطار میں لیکیج کم ہوتی ہے اور ایکویٹی کَرو اب بھی قابلِ یقین دکھائی دیتا ہے۔ بس جن ہفتوں کی اہمیت ہے، ان میں یہ ذرا زیادہ ہموار نظر آتا ہے۔
پیپر ٹریڈنگ کی قطار میں نتیجہ شامل کرنے سے پہلے ہمارے ایجنٹس سائزنگ کے ہر اصول میں 4 چیزیں جانچتے ہیں:
- فیصلے کے وقت دستیابی۔ 14:00 پر کھلنے والی بار کے لیے استعمال ہونے والے سائز کا حساب ایسے ڈیٹا سے ممکن ہونا چاہیے جس کا اختتامی ٹائم اسٹیمپ ≤ 13:59:59.999 ہو۔ ہم بے ترتیب چنے گئے 200 فیصلہ جاتی مقامات پر تراشے ہوئے فریم سے سائز کی سیریز دوبارہ نکال کر اور فرق کا موازنہ کر کے اس کی توثیق کرتے ہیں۔
- تخمینے کی لُک بیک باقاعدہ پیرامیٹر ہو۔ 20 دن کی اتار چڑھاؤ ونڈو اور 60 دن کی اتار چڑھاؤ ونڈو دو مختلف حکمتِ عملیاں ہیں۔ لُک بیک باقی سب چیزوں کے ساتھ واک فارورڈ گرڈ میں شامل ہوتی ہے، اور اگر نتیجہ صرف ایک ہی ونڈو کی مدت پر کام کرتا ہو تو یہ کمزوری کا اشارہ ہے۔
- لیوریج کا پورا راستہ، صرف عروج نہیں۔ مجموعی لیوریج کی پوری تقسیم دکھائیں۔ اوپر دیا گیا، بغیر حد کے اتار چڑھاؤ کے ہدف والا رن اپنے 4% گھنٹے 5× سے اوپر رہا؛ خلاصے کی ٹیبل میں یہ بات کبھی دکھائی نہیں دیتی، مگر اسی سے طے ہوتا ہے کہ حکمتِ عملی قابلِ عمل ہے یا نہیں۔
- مضبوطی کے امتحان کے طور پر سائزنگ کی حساسیت۔ اگر اتار چڑھاؤ کا ہدف 20% سے 25% کرنے پر Sharpe گر جائے تو حکمتِ عملی اتار چڑھاؤ کے مطابق ہدف بند نہیں، بلکہ لیوریج کے مطابق ٹیون کی گئی ہے، اور آپ نے کوئی عدد چن کر اپنی برتری ڈھونڈ لی ہے۔
لیوریج کی حد رسک مینجمنٹ کی سجاوٹ نہیں، بلکہ حکمتِ عملی کی تعریف کا حصہ ہے۔ پوزیشن کا نوٹیشنل بڑھنے پر Binance کے ETHUSDT درجے زیادہ سے زیادہ لیوریج کم کرتے ہیں، اور اس کے ساتھ مینٹیننس مارجن کی شرح بھی بڑھتی ہے۔ اگر بیک ٹیسٹ اتار چڑھاؤ کے ہدف والے اصول کو $400k نوٹیشنل پر 6.3× تک جانے دے تو وہ ایسی پوزیشن بیان کر رہا ہے جسے ایکسچینج اس مارجن پر رکھنے نہیں دے گا۔ ٹیبل کی محدود لیوریج والی قطار میں Sharpe 0.05 کم ہے، اور دونوں میں سے صرف وہی حقیقت پر مبنی ہے۔
پیسہ ری بیلنسنگ میں جاتا ہے
لاگت کے کالم پر غور کریں۔ اتار چڑھاؤ کے ہدف کے مطابق ہر گھنٹے ری بیلنس کرنے سے سرخی والا Sharpe سب سے اچھا آیا، لیکن ایکسچینج کو مجموعی PnL کا 41% بھی چلا گیا۔ سالانہ اوسط پوزیشن نوٹیشنل کے 1,180× کے برابر ٹریڈنگ، ہر طرف 5 bps کے ساتھ، علاوہ اسپریڈ اور مارکیٹ امپیکٹ۔ سادہ سا حل ہے کہ مقررہ شیڈول کے تحت کم وقفے وقفے سے ری بیلنس کریں۔ بہتر حل نو ٹریڈ بینڈ ہے: صرف اسی وقت سائز بدلیں جب موجودہ پوزیشن ہدف سے ایک مقررہ حد سے زیادہ ہٹ جائے۔
20% بینڈ نے سالانہ ٹریڈ شدہ نوٹیشنل 1,180× سے گھٹا کر 402× کیا — یعنی 66% کمی — اور Sharpe کی قیمت 0.05 رہی۔ میں نے اب تک 8 سگنلز پر یہ آزمایا ہے اور نتیجہ بار بار ایک جیسا آیا: 15% سے 25% تک کے بینڈ، کاروبار کے ایک تہائی حصے میں خطرے پر قابو پانے کا زیادہ تر فائدہ واپس دلاتے ہیں؛ 10% سے کم کوئی بھی حد محض ایسی مقدار میں ظاہری نفاست کے لیے فیس دینا ہے جسے آپ ویسے بھی 20 دن کی ونڈو سے ناپ رہے ہیں۔ آپ 15% معیاری غلطی والے عدد کے مطابق تین اعشاری مقامات تک ری بیلنس نہیں کر سکتے۔
فروری میں ایک رن ہوا جس میں ایجنٹ کی لکھی رپورٹ نے Sharpe میں 0.22 بہتری کا کریڈٹ "بہتر انٹری فلٹر" کو دیا۔ فرق سائزنگ ماڈیول کی ایک سطر میں تھا۔ فلٹر بدلا ہی نہیں تھا۔ اب میں رپورٹ کے شروع میں سائزنگ کنفیگ کا ہیش چھپواتا ہوں، کیونکہ نتیجے کی نسبت طے کرنا ایک نظم ہے، اور ماڈلز بھی دوسروں کی طرح صاف ستھری کہانی سنانے میں طاق ہیں۔
پیپر ٹریڈنگ آپ کے سائزنگ اصول کے ساتھ کیا کرتی ہے
یہاں بیک ٹیسٹ اور پیپر ٹریڈنگ کے درمیان فرق سب سے زیادہ کھلتا ہے، اور اس کی وجہ زیادہ تر حساب کتاب ہے۔ اتار چڑھاؤ کے مطابق بدلنے والی سائزنگ سے آپ کا پوزیشن سائز پورے سیمپل میں 4 سے 8 گنا تک بدلتا ہے۔ اس حد کے دونوں سروں پر ایکسچینج کی ایسی پابندیاں لاگو ہوتی ہیں جن کا بیک ٹیسٹ نے ماڈل نہیں بنایا تھا۔
کم سرے پر: اسٹیپ سائز اور کم از کم نوٹیشنل۔ ETHUSDT پرپ میں 0.001 کا کوانٹیٹی اسٹیپ اور $5 کی کم از کم حد ہے۔ اگر کم اتار چڑھاؤ والے دور میں آپ کا سائز 0.0004 ETH ہو تو بیک ٹیسٹ اسے رکھتا ہے اور پیپر ٹریڈنگ میں کچھ نہیں رکھا جاتا۔ یہ ایک غیر اہم گوشے کا معاملہ لگتا ہے، یہاں تک کہ آپ کو احساس ہو کہ اتار چڑھاؤ کے ہدف والا اصول اپنے سب سے چھوٹے سائز پُرسکون ترین مارکیٹوں میں رکھتا ہے، اور ٹرینڈ سگنل میں اکثر وہیں اچھی انٹریز ملتی ہیں۔ بڑے سرے پر: پوزیشن کی حدیں، مارجن کے درجے، اور یہ حقیقت کہ 6× پوزیشن کے لیے آئسولیٹڈ مارجن کا ایسا نظم چاہیے جس کے لیے آپ نے لیکویڈیشن ماڈل نہیں بنایا۔
ہمیں ایک ایسا معاملہ ملا جس میں پیپر ایکویٹی کَرو 6 ہفتے تک بیک ٹیسٹ سے 3% کے اندر رہی، پھر اچانک کافی الگ ہو گئی۔ وجہ راؤنڈنگ تھی: آرڈر سائز کرنے والے فنکشن میں راؤنڈ ٹو اسٹیپ کے بجائے `int()` سے قطع کرنا، ان پوزیشنوں پر جن کا اوسط صرف 1.4 اسٹیپس تھا۔ بیک ٹیسٹ مسلسل مقدار میں سائز طے کر رہا تھا، جبکہ لائیو سائزنگ ہر چھوٹی ٹریڈ میں مطلوبہ پوزیشن کا 20-30% گنوا رہی تھی۔ نہ فل ماڈل کی کوئی انوکھی پیچیدگی، نہ لیٹنسی کی کہانی۔ بس قطع کرنا۔
ناقدین کی بات کہاں درست ہے
3 اعتراضات وزن رکھتے ہیں، اور میں ان سے آگے بڑھ کر بات نہیں کرنا چاہتا۔
پہلا، اور سب سے اہم: سائزنگ برتری مختص کرتی ہے، اسے پیدا نہیں کر سکتی۔ اگر حقیقت پسندانہ فیس اور فنڈنگ کے بعد آپ کے سگنل کی مجموعی متوقع قدر صفر یا اس سے کم ہو تو ٹیبل کا ہر اصول پیسہ گنوائے گا — نفیس اصول بس اسے منافع کے زیادہ خوش نما اتار چڑھاؤ کے ساتھ گنوائیں گے۔ میں نے ایسا سگنل چنا جس کی اس مدت میں نیٹ برتری چھوٹی مگر مثبت ہے۔ اگر یہی 6 اصول کسی ایسے سگنل پر چلائیں جس کا نیٹ نتیجہ فی ٹریڈ −1.2 bps ہو تو درجہ بندی برقرار رہے گی، لیکن مدت کے اختتام پر ہر ایکویٹی ابتدائی سطح سے نیچے ہو گی۔ سائزنگ کسی چیز کا ضرب کار ہے۔ وہ چیز پھر بھی درکار ہے۔
دوسرا، اتار چڑھاؤ کے مطابق ہدف بندی میں ایک حقیقی اور اچھی طرح دستاویزی ناکامی ہے: تیز گراوٹ کے نچلے حصے میں یہ لیوریج کم کرتی ہے، اور پلٹ کر قیمت بڑھنے کے بعد دوبارہ لیوریج بڑھاتی ہے۔ تیز V کی شکل والی حرکت میں مقررہ نوٹیشنل جیتتا ہے، کبھی بہت بڑے فرق سے۔ ایکویٹی میں مارچ 2020 اور کرپٹو میں اگست 2024 کی مندی، دونوں نے بحالی کے مرحلے میں اتار چڑھاؤ کے مطابق بدلنے والی سائزنگ کو نقصان پہنچایا۔ میری ETH کی 4 سالہ مدت میں V کی شکل والی تیز الٹ پھیر کے مقابلے اتار چڑھاؤ کے جھرمٹوں میں زیادہ مسلسل حرکتیں ہیں، جس سے معکوس اتار چڑھاؤ والی قطاریں بہتر دکھائی دیتی ہیں۔ دوسری مدت کچھ درجہ بندی الٹ دے گی، اور اگر میں 2020 کے ٹیبل سے بات شروع کرتا تو یہ دلیل کمزور ہوتی۔
تیسرا، سائزنگ کے اصول میں بھی اتنی ہی حد تک اوورفٹنگ ہو سکتی ہے جتنی کسی اور چیز میں۔ میرے ٹیبل میں ہاف کیلی اس کی واضح مثال ہے: یہ نفیس دکھائی دیتی ہے، نظریاتی بنیاد بھی ہے، مگر دوسرا بدترین ڈرا ڈاؤن دیا، کیونکہ شور والے منافع کے سلسلے کا متحرک اوسط تخمینہ گھٹیا ہے اور کیلی اس کے لیے بے حد حساس ہے۔ متوقع منافع کا تخمینہ بطور اِن پٹ لینے والا ہر سائزنگ اصول اس تخمینے کی غلطی کو اپنے ساتھ لیتا ہے، اور بڑھا کر۔ صرف واریئنس کا تخمینہ استعمال کرنے والے اصول کہیں بہتر کام کرتے ہیں، کیونکہ 4 سال کے فی گھنٹہ ڈیٹا سے یہی وہ ایک لمحہ ہے جس کا آپ واقعی تخمینہ لگا سکتے ہیں۔
اس سب سے میں یہ بات رکھوں گا: جب بیک ٹیسٹ کا نتیجہ آپ کو حیران کرے تو سگنل میں کوئی ترکیب ڈھونڈنے سے پہلے سائزنگ ماڈیول دیکھیں۔ اور جب Sharpe رپورٹ کریں تو اس کے ساتھ لیوریج کا پورا راستہ اور لاگت کی تفصیل بھی دیں، کیونکہ سائزنگ کے فیصلے پر اتنا منحصر عدد سگنل کی خاصیت نہیں ہوتا۔
← تمام پوسٹس
