مضمون کے مندرجات
- شواہد اور دائرۂ کار
- وضاحتی تصویر
- عمل
- ترتیب سے چار مختلف سوالات کے جواب دیں۔
- 1. ہر وقت دستیاب ڈیٹا اور حجم کی تعریف
- 2. تصدیق کا وقت اور ابتدائی حصے کی یکسانیت
- 3. آرڈر پورا ہونے سے پہلے موجود ہونا ضروری ہے
- 4. رسک کے مطابق مقدار میں یکساں اکائیاں استعمال ہوں
- 5. واک فارورڈ، متداخل لیبل خارج کرنا اور embargo
- 6. اجزا کا الگ اثر، متعدد آزمائشیں اور شدید حالات
- 7. پیمانے، متوقع نتیجہ اور شواہد کی سطحیں
- وہ ریکارڈ شائع کریں جو دوسرا محقق جانچ سکے
- عام غلطیاں
- عملی جانچ فہرست
- اکثر پوچھے جانے والے سوالات
- تحقیقی ماخذ
شواہد اور دائرۂ کار
یہ مضمون جانچ کا طریقہ تجویز کرتا ہے؛ منافع بخش حکمت عملی یا نیا بیک ٹیسٹ پیش نہیں کرتا۔ ماخذ پیٹرن کے استدلال، سمیولیشن اور شماریاتی اوورفٹنگ پر ہیں؛ کوئی ماخذ اس لائبریری کے ہر طریقے کی منافع بخشی ثابت نہیں کرتا۔
عملی مراحل
- مفروضے کو رجسٹر کریں۔بازار، قواعد، اخراجات، پیمانے اور اجازت یافتہ آزمائشیں پہلے مقرر کریں۔
- ان پٹ کی توثیق کریں۔ہر وقت حقیقی دستیابی، حجم کی تعریف، قابل تجارت مجموعہ اور وقت کے ریکارڈ جانچیں۔
- صرف دستیاب معلومات سے ری پلے کریںآرڈر بنانے اور پورا ہونے کی اجازت سے پہلے سگنل کی تصدیق ہو۔
- خطرے کو محدود کریں۔پوزیشن کی مقدار، مارجن، نمائش اور گیپ کے شدید حالات کی شرطیں نافذ کریں۔
- واک فارورڈ جانچ کریںمتداخل نتیجہ والے لیبل خارج کریں، توثیقی ڈیٹا پر انتخاب کریں اور ہر ٹیسٹ سے پہلے ترتیبات مقرر کریں۔
- مکمل ثبوت رپورٹ کریں۔اجزا ہٹا کر موازنہ، شدید حالات کے ٹیسٹ، غیر یقینی اور شواہد کی سطح شائع کریں۔
ترتیب سے چار مختلف سوالات کے جواب دیں۔
سب سے پہلے، کیا پیٹرن کو مستقل طور پر پہچانا جا سکتا ہے؟ دوسرا، کیا اس میں بعد کے نتائج کے بارے میں مشروط معلومات موجود ہیں؟ تیسرا، کیا اس معلومات کو قابل عمل آرڈرز کے ساتھ مثبت خالص اکاؤنٹ ریٹرن میں تبدیل کیا جا سکتا ہے؟ چوتھا، کیا نتیجہ حقیقی طور پر ان دیکھے ڈیٹا پر برقرار رہتا ہے؟ ایک سوال کا جواب دینے والے مطالعہ کو چاروں جوابات کے طور پر پیش نہیں کیا جانا چاہیے۔
پیٹرن کی باقاعدہ تحقیق شناخت اور شماریاتی استدلال جانچنے کے طریقے دکھاتی ہے [1]۔ بظاہر واضح ڈبل ٹاپ یا منافع کی شماریاتی طور پر مختلف تقسیم ابھی مکمل تجارتی نظام نہیں۔ داخلہ، اخراج، لاگت، پوزیشن کا حجم اور دستیاب مواقع معاشی نتیجہ طے کرتے ہیں۔
کارکردگی دیکھنے سے پہلے مفروضے کا کارڈ لکھیں۔ اہل بازار، دورانیہ، ڈیٹا فیلڈ، تشکیل کا قاعدہ، تصدیقی تاخیر، داخلے و اخراج کا طریقہ، رسک بجٹ، لاگت، تقابلی معیار، جائزے کا پیمانہ اور اجازت یافتہ پیرامیٹر تبدیلیاں شامل کریں۔ تفصیل اتنی واضح ہو کہ دوسرا شخص چارٹ کی خوبصورتی پر فیصلہ کیے بغیر نافذ کر سکے۔
مفید منفی نتیجہ بھی پہلے متعین کریں۔ مثلاً نمائش برابر رکھنے پر حجم کا فلٹر خالص متوقع نتیجے میں کچھ نہ بڑھائے۔ اسے ریکارڈ کرنے سے پسندیدہ نتیجہ نہ ملنے پر اصل سوال خاموشی سے بدلنے کا راستہ بند ہوتا ہے۔
1. ہر وقت دستیاب ڈیٹا اور حجم کی تعریف
تمیز کریں کہ واقعہ کب ہوا، ڈیٹا کب موصول ہوا اور حکمت عملی کب ان کا استعمال کر سکتی ہے۔ اکیلے بار کا ٹائم اسٹیمپ تاخیر سے ہونے والی فیڈ، تصحیح یا اشاعت میں تاخیر کو ظاہر نہیں کر سکتا۔ تاریخی نقالی کو تازہ ترین درست شدہ ڈیٹا بیس کو اندھا دھند استعمال کرنے کے بجائے متعلقہ معلومات کے سیٹ کو دوبارہ تشکیل دینا چاہیے۔
اثاثوں کی مستقل شناخت، تاریخی مجموعے میں شمولیت اور کارپوریٹ واقعات محفوظ رکھیں۔ آج باقی رہ جانے والے حصص، کل کے مکمل قابل سرمایہ کاری مجموعے کے برابر نہیں۔ فہرست سے اخراج، ٹکر کا دوبارہ استعمال، نئی لسٹنگ اور قیمت کی عدم دستیابی صاف سنبھالیں۔ کارپوریٹ اقدامات کے اعلان اور مؤثر ہونے کی تاریخیں دستیابی کے مختلف سوالات کا جواب دیتی ہیں۔
آرڈر کے لیے اصل قابل تجارت قیمتیں اور سگنل کے لیے دستاویزی ایڈجسٹمنٹ استعمال کریں۔ مسلسل جوڑا ہوا فیوچر سلسلہ تجزیے میں مفید ہے، مگر سودا حقیقی معاہدے میں حقیقی قیمت پر پورا ہونا چاہیے۔ رول کے سودے، ملٹی پلائر اور معاہدے کی میعاد ہموار جوڑے ہوئے چارٹ سے اخذ نہیں کیے جا سکتے۔
حجم کی تعریف بازار کے لحاظ سے بدلتی ہے۔ ایکسچینج پر حصص، فیوچر معاہدوں کی تعداد، FX ٹک گنتی اور کرپٹو ایکسچینج کی تجارت شدہ مقدار مختلف پیمائشیں ہیں۔ خرید کا حجم یا ڈیلٹا کہنے کے لیے حقیقی درجہ بندی کا طریقہ چاہیے؛ عام OHLCV شرکا کی شناخت یا تمام بازار کا آرڈر فلو نہیں بتاتا۔
دہرائی گئی بارز، غائب وقفے، ناممکن OHLC تعلقات، منفی حجم اور ٹائم زون کی بے قاعدگیوں کے ٹیسٹ بنائیں۔ ڈیٹاسیٹ کے نسخے اور اصلاحات کی تاریخ محفوظ رکھیں۔ کوڈ قابل تکرار ہو لیکن بدلتے ڈیٹا کا نسخہ محفوظ نہ ہو تو تجربہ قابل تکرار نہیں بنتا۔
2. تصدیق کا وقت اور ابتدائی حصے کی یکسانیت
انڈیکس i کے پیوٹ کو دائیں طرف r بارز درکار ہوں تو اس کی تصدیق i+r سے پہلے نہیں ہو سکتی۔ تجزیے کے لیے اسے i پر دکھا سکتے ہیں، مگر ماضی میں وہاں تجارتی فیصلہ نہیں کر سکتے۔ occurred_at اور confirmed_at الگ فیلڈز ہوں؛ بعد میں دستیاب ہونے والے وقت سے ہی عمل کریں۔
ابتدائی حصے کی یکسانیت، یعنی prefix invariance، عملی ٹیسٹ ہے: ڈیٹاسیٹ کے بڑھتے ہوئے ابتدائی حصوں پر الگورتھم چلا کر پہلے جاری تصدیق شدہ واقعات موازنہ کریں۔ بعد کے مشاہدات بڑھانے سے وہ واقعات نہ بدلیں۔ صاف طور پر عارضی کہے گئے امیدوار بدل سکتے ہیں؛ یکساں سابقہ ڈیٹا پر تصدیق شدہ تاریخی سگنل مستقل رہیں۔
زیادہ دورانیے کے ڈیٹا پر بھی یہی پابندی ہے۔ مکمل گھنٹے کی قدر منٹ والی حکمت عملی میں تب شامل کریں جب گھنٹے کا مشاہدہ واقعی دستیاب ہو۔ ابھی نامکمل گھنٹے کی بعد میں معلوم ہونے والی بلند، کم یا اختتامی قیمت پہلے کے منٹوں کے فیصلوں کو نہیں دی جا سکتی۔
نارملائزیشن، کلسٹرنگ پیرامیٹرز اور شماریاتی ماڈل صرف اجازت یافتہ تاریخی حصے پر فٹ کریں۔ پورے ڈیٹاسیٹ پر تربیت یافتہ اسکیلر مستقبل کی تقسیم کی معلومات لے آتا ہے، چاہے ہر سودا درست تاخیر سے کیا جائے۔ دستیاب معلومات کی پابندی اشاریوں کے ساتھ ابتدائی پروسیسنگ پر بھی لاگو ہے۔
مفید ٹیسٹ میں تاریخی ابتدائی حصہ وہی رکھ کر جان بوجھ کر بعد کی قیمتیں اور حجم بدلیں۔ پہلے سے تصدیق شدہ سگنل بدل جائے تو ڈیٹا پر اس کا انحصار تلاش کریں؛ یہ فرض نہ کریں کہ چارٹنگ پلیٹ فارم نے repainting خود حل کر دی ہے۔
3. آرڈر پورا ہونے سے پہلے موجود ہونا ضروری ہے
سگنل، آرڈر کی تخلیق، ارسال، قبولیت، محرک، جزوی عمل درآمد اور تکمیل یا منسوخی کی ترتیب ماڈل کریں۔ ہر مرحلے میں تاخیر ہو سکتی ہے۔ آرڈر کی قبولیت سے پہلے قیمت کا چھونا اس آرڈر کے لیے دستیاب سودا نہیں۔
پلیٹ فارم کی حکمت عملی کی دستاویزات ایمولیٹر کے وقت اور آرڈر کے مفروضے سمجھاتی ہیں [2]۔ یہ سمیولیٹر کے قواعد ہیں، حقیقی ایکسچینج پر عمل درآمد کی ضمانت نہیں۔ stop-market فعال ہونے کی شرط مقرر کرتا ہے، جبکہ آخری قیمت مختلف ہو سکتی ہے؛ limit آرڈر قیمت محدود کرتا ہے مگر لازماً پورا نہیں ہوتا [3]۔
OHLC بار کے اندر واقعات کی ترتیب نہیں بتاتا۔ داخلہ، اسٹاپ اور ہدف ایک ہی بار میں ہوں تو باریک ڈیٹا لیں یا ممکنہ نتائج کی حدیں ظاہر کریں۔ حکمت عملی بہتر دکھانے والا راستہ نہ چنیں۔ پہلے سے فعال آرڈر کی وجہ سے ناموافق سودا پورا ہو جائے تو اسے دیکھنے کے بعد ماضی میں آرڈر منسوخ نہیں کیا جا سکتا۔
جزوی عمل درآمد اور باقی مقدار ماڈل کریں۔ حفاظتی اسٹاپ صرف داخلے کے بعد بنے تو بتائیں پوزیشن کتنی دیر غیر محفوظ رہ سکتی ہے۔ مکمل ہونے سے پہلے داخلے کی سمت بدلے تو اصل نمائش اور باقی آرڈرز کا حساب ملائیں؛ یہ فرض نہ کریں کہ ہر مطلوبہ مقدار پوری ہو چکی تھی۔
اخراجات میں کمیشن، اسپریڈ، سلپیج، بازار پر اثر، ادھار اور متعلقہ فنڈنگ یا فنانسنگ شامل ہیں۔ انہیں معاہدے کے اصل وقت پر لگائیں۔ تمام کرپٹو مصنوعات پر فنڈنگ کا ایک وقفہ مسلط نہ کریں؛ bid/ask قیمتوں پر عمل درآمد میں اسپریڈ شامل ہو تو دوبارہ نہ جوڑیں۔
4. رسک کے مطابق مقدار میں یکساں اکائیاں استعمال ہوں
لکیری نفع و نقصان والے اثاثے کے لیے مجوزہ مقدار q=floor(B/(abs(E−S)×multiplier+c_unit)) ہے۔ یہاں B نقد نقصان کا بجٹ، E منصوبہ بند داخلہ، S اسٹاپ اور c_unit فی اکائی دونوں طرف کے سودے کی اندازاً لاگت ہے۔ کرنسی تبدیل کر کے شمار کنندہ اور مخرج دونوں کو اکاؤنٹ کی ایک ہی کرنسی میں رکھیں۔
یہ فارمولا منصوبہ بند نقصان کا اندازہ ہے؛ گیپ کے نقصان کی حد نہیں۔ inverse معاہدوں، آپشنز اور غیر لکیری مصنوعات کے لیے اپنا نفع و نقصان حساب چاہیے، حصص کا فارمولا کافی نہیں۔ کم از کم لاٹ اور بروکر کا مارجن ممکنہ مقدار مزید محدود کر سکتے ہیں۔
مصنوعی اکاؤنٹ ایکویٹی $20,000 اور رسک 0.5% ہو تو B=$100 ہے۔ داخلہ 100، اسٹاپ 99.50 اور فی حصص اندازاً لاگت $0.04 ہو تو q=floor(100/0.54)=185۔ اس لاگت سمیت منصوبہ بند نقصان $99.90 ہے۔
اخراج اصل میں 99.20 پر ہو تو قیمت کا نقصان $148 اور وہی تخمینی لاگت $7.40 ہے؛ کل $155.40۔ رپورٹ اس نقصان کو مطلوبہ $100 بجٹ تک کاٹ دے تو عمل درآمد کا خطرہ ناپنے کے بجائے حذف ہوتا ہے۔
پورٹ فولیو میں کھلے آرڈرز کے لیے نمائش محفوظ رکھیں، مجموعی اور خالص فرضی مالیت محدود کریں اور باہم متعلق رسک جمع کریں۔ الگ الگ چھوٹی پوزیشنیں ایک ہی بازار کے جھٹکے پر ساتھ ردعمل دے سکتی ہیں۔ منصوبہ بند اسٹاپ رسک اور بیک وقت ناموافق حرکتوں کے شدید نقصان دونوں رپورٹ کریں۔
5. واک فارورڈ، متداخل لیبل خارج کرنا اور embargo
ترقی، توثیق اور آخری جانچ کو وقت کے لحاظ سے الگ کریں۔ تربیتی ڈیٹا پر ماڈل فٹ کریں، توثیقی ڈیٹا پر اجازت یافتہ ترتیبات چنیں، پھر اگلا آزمائشی حصہ دیکھنے سے پہلے انہیں مقرر کریں۔ یہ عمل وقت کی ترتیب میں دہرانا اپ ڈیٹ کرنے کے طریقے کو ناپتا ہے، ماضی دیکھ کر چنی گئی ایک ترتیب کو نہیں۔
نتیجے کے لیبل مدت کی سرحد عبور کر سکتے ہیں۔ تربیتی مثال کا نتیجہ توثیق یا ٹیسٹ کی مدت میں جاتا ہو تو مثال تربیتی حصے سے خارج کریں۔ اسی طرح انتخاب میں استعمال توثیقی لیبل ٹیسٹ مدت کا نتیجہ نہ لیں۔ اندازے سے قطاروں کی مقررہ تعداد ہٹانے کے بجائے ہر لیبل کا آغاز اور اختتام ریکارڈ کریں۔
embargo قریب کے مشاہدات خارج کرتا ہے جہاں کراس ویلیڈیشن کا ڈیزائن بعد کے وقت کی تربیتی مثالوں کو ٹیسٹ مدت کے ساتھ معلومات بانٹنے دیتا ہو۔ یہ وقت کے لحاظ سے علیحدگی کا عالمی متبادل نہیں، نہ غلط ڈیٹا وقت درست کرتا ہے۔ مصنف کی حوالہ شدہ پیشکش ان طریقوں پر ہے؛ اس سے ہر من مانی embargo مدت کافی ثابت نہیں ہوتی [4]۔
تحقیق میں واک فارورڈ نتائج بار بار دیکھتے ہوں تو اضافی آخری holdout الگ رکھیں۔ ان نتائج سے تبدیلیاں کریں تو وہ ترقی پر اثر ڈال چکے ہیں۔ حتمی ترتیب صرف ترقیاتی معلومات سے چنیں، پھر بند holdout ایک بار جانچ کر بغیر دوبارہ ٹیون کیے رپورٹ کریں۔
ہر فٹ ہونے والی تبدیلی متعلقہ fold کے اندر ہو: اسکیلرز، خصوصیات کا انتخاب، بازار کی حالتوں کی حدیں اور تخمینہ مانگنے والی حجم کی بنیادی سطحیں۔ نتیجہ والے متداخل لیبل احتیاط سے ہٹانے کے باوجود، پورے نمونے پر فٹ ہوئی ابتدائی پروسیسنگ معلومات لیک کر سکتی ہے۔
6. اجزا کا الگ اثر، متعدد آزمائشیں اور شدید حالات
ablation جانچتا ہے کہ ہر جزو کیا بڑھاتا ہے۔ ایک ہی مواقع، مقدار اور عمل درآمد کے مفروضوں پر صرف قیمت، قیمت اور RVOL، پھر قیمت، RVOL اور VWAP موازنہ کریں۔ نیا اشاریہ داخلے اور اخراج دونوں میں ہو تو دونوں کے قواعد الگ الگ بدل کر جانچیں؛ ورنہ بہتری کا سبب واضح نہیں رہتا۔
ایک آزمائشی رجسٹری کو برقرار رکھیں جس میں ناکام آئیڈیاز، مینوئل چارٹ فلٹرز، ٹائم فریم، ڈیٹا سیٹس، پیرامیٹر گرڈز اور مارکیٹ سب سیٹ شامل ہیں۔ صرف حتمی کامیاب ترتیب کی اطلاع دینے سے محققین کو خوش قسمت نتیجہ دریافت کرنے کے امکانات کی تعداد چھپ جاتی ہے۔
Deflated Sharpe Ratio اپنے مفروضوں کے تحت انتخابی تعصب اور منافع کی غیر نارمل تقسیم کو ملحوظ رکھتا ہے [5]۔ یہ حقیقی تجارت میں حکمت عملی کے منافع دینے کا احتمال نہیں۔ Probability of Backtest Overfitting اپنے فریم ورک میں ڈیٹا کے حصوں کے درمیان درجہ بندی بگڑنے سے متعلق ہے؛ اکاؤنٹ سرمایہ کھونے کا براہ راست احتمال نہیں [6]۔
پہلے اعلان کردہ ضرب، مثلاً 1.5 اور 2، پر عمل درآمد کے اخراجات بڑھا کر آزمائیں؛ داخلہ ایک بار مؤخر کریں، قریب کے پیرامیٹر جانچیں اور سب سے بڑے پانچ سودوں پر انحصار دیکھیں۔ یہ مجوزہ حساسیت کی جانچ ہے۔ رجحان کی حکمت عملی فطری طور پر بڑے منافع والے سودوں پر انحصار کرتی ہے؛ انہیں نکال کر دیکھنا معلومات دیتا ہے مگر خودکار کامیابی یا ناکامی کا قاعدہ نہیں۔
بازار کی حالتوں اور قابل سنبھال تجارتی حجم کی حساسیت اتنے مشاہدات سے جانچیں جو موازنہ سہارا دیں۔ ڈیٹا کو بہت چھوٹے موافق حالات میں بانٹنا نیا انتخابی مسئلہ بناتا ہے۔ اخراجات کے بعد سادہ مستحکم اثر عموماً چند غیر معمولی ادوار پر بنائی گئی پیچیدہ وضاحت سے زیادہ معتبر ہے۔
7. پیمانے، متوقع نتیجہ اور شواہد کی سطحیں
مواقع، بھیجے گئے آرڈرز، عمل درآمد، مکمل سودے اور منافع بخش دن الگ گنیں۔ فلٹر بہت سے منافع بخش مواقع خارج کر کے فی سودا جیت بڑھا سکتا ہے۔ منافع والے دنوں کی شرح، سودوں کی جیت کی شرح نہیں؛ نفع و نقصان کی جسامت کے بغیر دونوں میں سے کوئی متوقع منافع نہیں بتاتی۔
کھلی پوزیشنیں اور اخراجات شامل کر کے موجودہ بازار قیمت پر اکاؤنٹ ایکویٹی کا سلسلہ بنائیں، پھر ڈرا ڈاؤن نکالیں۔ Sharpe کے لیے منافع کی مدت بتائیں؛ بے قاعدہ اوقات کے سودوں کا منافع روزانہ منافع کے برابر نہ سمجھیں۔ کل منافع، CAGR، نقد بہاؤ سے متاثر IRR اور regression alpha الگ رکھیں۔
مصنوعی حکمت عملی میں جیت کا احتمال 0.40، اوسط منافع 2R، اوسط نقصان 1R اور لاگت 0.08R ہو تو متوقع نتیجہ 0.40×2−0.60×1−0.08=0.12R ہے۔ ان مقررہ نفع و نقصان کی مقداروں پر بریک ایون جیت کی شرح (1+0.08)/(2+1)=0.36 ہے۔
ایک دوسری مصنوعی حکمت عملی 65% سودے جیتتی، جیت پر 0.5R کماتی اور باقی پر 1R کھوتی ہے۔ اسی لاگت کے ساتھ متوقع نتیجہ 0.65×0.5−0.35×1−0.08=−0.105R ہے۔ اس لیے زیادہ جیت کی شرح کے ساتھ نظام نقصان میں بھی ہو سکتا ہے۔
انتہائی بڑے نقصانات، پچھلی ایکویٹی چوٹی سے نیچے رہنے کی مدت، ٹرن اوور، بازار کے حجم میں حصہ، نمائش اور غیر یقینی کی حدیں شامل کریں۔ طریقے کی وضاحت، مصنف کا بتایا بیک ٹیسٹ، کوڈ و ڈیٹا سے دوبارہ نتیجہ، آزاد جائزہ، آئندہ کاغذی تجارت اور تصدیق شدہ حقیقی نتائج الگ سطحیں ہیں۔ یہ مختلف سوالات کا جواب دیتی ہیں؛ کوئی مستقبل کے منافع کی ضمانت نہیں۔
وہ ریکارڈ شائع کریں جو دوسرا محقق جانچ سکے
مفروضے اور ڈیٹا کے نسخے، آزمائشوں کی رجسٹری، fold کی حدود، سگنل و آرڈر واقعات، مکمل سودے، اخراجات اور ایکویٹی کے حساب محفوظ کریں۔ درمیانی ریکارڈ کے بغیر صرف آخری کارکردگی جدول ہو تو دوسرے نفاذ کے مختلف نتیجے کی وجہ تلاش کرنا مشکل ہے۔
ذیل کا طریقہ بار بار استعمال ہونے والی ترقیاتی مدت کو آخری holdout سے الگ کرتا ہے۔ اس کے فنکشن نافذ اور جانچنے کی تفصیلات ہیں؛ قابل اجرا درستگی کا ثبوت نہیں۔ خاص طور پر purging لیبل کے دورانیے دیکھے اور آرڈر پر عمل درآمد حقیقی معلومات کی دستیابی کے بعد ہو۔
مفید جائزہ پیکیج میں کم از کم ایک کامیاب مثال، ایک ناکام سودا، ایک خارج آرڈر اور جہاں دستیاب ہو ایک بار کے اندر مبہم صورت دیں۔ ہر صورت میں سمیولیٹر کا طریقہ بتائیں۔ یہ دکھاتا ہے کہ ناموافق نتائج میں بھی قواعد مستقل چلتے ہیں۔
آخری holdout دیکھنے سے پہلے شائع کیے جانے والے پیمانے مقرر کریں۔ نتیجہ مایوس کن ہو تو اسے رپورٹ کر کے نئی جانچ کے منصوبے کے ساتھ نیا تحقیقی نسخہ شروع کریں۔ اسی مبینہ holdout کو دیکھ کر اسی طریقے کو بار بار بدلنا اس آزاد ثبوت کو ختم کرتا ہے جس کے لیے holdout رکھا تھا۔
spec = freeze_hypothesis_and_trial_registry()
data = load_versioned_point_in_time_inputs()
assert_data_integrity(data)
assert_confirmed_events_are_prefix_invariant(data)
development, final_test = split_chronologically_before_research(data)
for fold in chronological_folds(development, spec):
train = purge_overlapping_labels(fold.train, fold.validation + fold.test)
validation = purge_overlapping_labels(fold.validation, fold.test)
model = fit_using_train_only(train)
config = select_on_validation(model, validation)
freeze(config)
events = replay_causally(fold.test, config)
fills = simulate_orders_after_available_at(events, spec.execution)
equity = mark_to_market(fills, fees=spec.costs)
archive_all_results(config, events, fills, equity)
final_config = freeze_selection_using_development_only()
evaluate_final_holdout_once(final_test, final_config)
report_net_metrics_ablations_stress_and_uncertainty()
عام غلطیاں
اچھا دکھنے والا ڈیٹیکٹر منافع بخش حکمت عملی سمجھنا
جیومیٹری، پیشین گوئی کی معلومات، عمل درآمد اور نمونے سے باہر کارکردگی الگ الگ توثیق کے مراحل ہیں۔ ایک سے گزرنا دوسرے کو قائم نہیں کرتا۔
مستقبل میں تصدیق پانے والے سگنل سے صاف دکھتا چارٹ
پیوٹ کو اس کے تاریخی مقام پر دکھانا بعد میں آنے والی تصدیق چھپا سکتا ہے۔ occurred_at اور confirmed_at الگ محفوظ کریں اور ہر فیصلہ معلومات کی حقیقی دستیابی کے مطابق جانچیں۔
تمام اخراجات کو چھوٹے کمیشن میں سمیٹنا
اسپریڈ، بازار پر آرڈر کا اثر، ادھار یا فنڈنگ اور نامکمل آرڈر کمیشن سے زیادہ اہم ہو سکتے ہیں۔ انہیں اثاثے اور اس کی لیکویڈیٹی کے مطابق ماڈل کریں۔
حقیقی فیس مگر غیر حقیقی عمل درآمد
کمیشن شامل کرنا سگنل کے بند پر ناممکن داخلہ، بار کے اندر فائدہ مند ترتیب یا limit آرڈر کے لازمی پورا ہونے کو درست نہیں بناتا۔
بار بار اسی ٹیسٹ کی مدت کا معائنہ کرنا
ایک بار جب ٹیسٹ کے نتائج نظر ثانی کی رہنمائی کرتے ہیں، تو وہ مدت ترقی کا حصہ بن جاتی ہے۔ ہر استعمال کو ریکارڈ کریں اور ایک نئے اچھوتے تشخیصی مرحلے کو محفوظ کریں۔
صرف جیتنے والی کنفیگریشنز کو محفوظ کرنا
آزمائشوں کی تعداد اور ناکام قسموں کی تقسیم کے بغیر، منتخب کردہ حکمت عملی کے ثبوت کو بڑھا چڑھا کر پیش کیا جا سکتا ہے۔
شماریاتی اصلاح کو منافع کی سند سمجھنا
DSR، PBO اور p-values مخصوص مفروضوں کے تحت مخصوص شماریاتی سوالات جانچتے ہیں۔ یہ عمل درآمد کی جانچ کا متبادل نہیں اور نہ مستقبل کے اکاؤنٹ منافع ثابت کرتے ہیں۔
یہ طریقہ استعمال کرنے سے پہلے جانچ فہرست
اپنے ڈیٹا پر تصدیق کے بعد ہر نکتے پر نشان لگائیں۔ پیش رفت اسی براؤزر میں محفوظ ہوتی ہے؛ یہ حکمت عملی کے منافع بخش ہونے کی سند نہیں۔
اکثر پوچھے جانے والے سوالات
یہ ثابت کرنے کے لیے کتنی تجارتیں کافی ہیں کہ حکمت عملی کام کرتی ہے؟
کوئی ایک عالمی حد نہیں۔ نتائج کا باہمی انحصار، انتہائی نفع و نقصان، بازار کی حالتیں اور اثر کی جسامت غیر یقینی طے کرتے ہیں۔ سودوں کی مقررہ تعداد کو ثبوت بنانے کے بجائے یہ خصوصیات رپورٹ کریں۔
اخراجات سے بتایا گیا فائدہ ختم ہو تو کیا حکمت عملی رد کر دینی چاہیے؟
قابل تجارت ورژن ناکام ہو سکتا ہے جب کہ بنیادی شماریاتی تعلق مفید رہتا ہے۔ دونوں نتائج کی اطلاع دیں اور مجموعی اثر کو قابل عمل خالص واپسی کے طور پر پیش کرنے سے گریز کریں۔
کیا کوڈ شائع کرنے سے بیک ٹیسٹ دوبارہ حاصل کیا جا سکتا ہے؟
کوڈ صرف ایک ضرورت ہے۔ ڈیٹا کے نسخے، کارپوریٹ اقدامات کی ایڈجسٹمنٹ، پیرامیٹرز، آزمائشوں کی تاریخ اور عمل درآمد کے مفروضے بھی دستیاب یا عین دستاویزی ہوں۔
تحقیقی ماخذ
ہر ماخذ اپنے ساتھ درج تعریف یا شواہد کی تائید کرتا ہے۔ فرضی کوڈ، مصنوعی مثالوں اور مجوزہ پیرامیٹرز کی الگ توثیق ضروری ہے۔
- Foundations of Technical Analysis: Computational Algorithms, Statistical Inference, and Empirical ImplementationAndrew W. Lo, Harry Mamaysky, Jiang Wang. پیٹرن کی شناخت اور شماریاتی استدلال کی اصل تحقیق پڑھی گئی۔ یہ لائبریری کے ہر قاعدے کا منافع ثابت نہیں کرتی۔ جانچ کی تاریخ: .
- Pine Script — StrategiesTradingView. آرڈر کے وقت اور بروکر ایمولیٹر کے رویے کی بنیادی دستاویز پڑھی گئی؛ اسے ہر ایکسچینج کا حقیقی عمل درآمد ماڈل نہیں سمجھا گیا۔ جانچ کی تاریخ: .
- Understanding Order Types — Investor BulletinU.S. SEC — Investor.gov. market، limit اور stop آرڈر کے طریقوں اور عمل درآمد کی حدود کا اصل بلیٹن پڑھا گیا۔ جانچ کی تاریخ: .
- MLX 2018 — The 7 Reasons Most Machine Learning Funds FailMarcos López de Prado — bản trình bày đăng trên SlideShare. purging اور embargo پر مصنف کی پیشکش کی سلائیڈز پڑھی گئیں۔ پوری مالیاتی مشین لرننگ کتاب تک رسائی یا اسے پڑھنے کا دعویٰ نہیں۔ جانچ کی تاریخ: .
- The Deflated Sharpe Ratio: Correcting for Selection Bias, Backtest Overfitting and Non-NormalityDavid H. Bailey, Marcos López de Prado — 2014. طریقہ کار کا پورا مقالہ پڑھا گیا۔ انتخابی تعصب کی اصلاح کے لیے مفروضے اور آزمائشوں کی معلومات چاہیے؛ یہ حقیقی منافع کا احتمال نہیں۔ جانچ کی تاریخ: .
- The Probability of Backtest OverfittingBailey, Borwein, López de Prado, Zhu. CSCV اور PBO کا طریقہ پڑھا گیا۔ نمونے سے باہر درجہ بندی بگڑنے کو رقم کھونے کے احتمال سے الگ رکھا گیا ہے۔ جانچ کی تاریخ: .
متعلقہ طریقے
خطرے سے متعلق نوٹ
یہ مواد تعلیم اور تحقیق کی منصوبہ بندی کے لیے ہے، مالی مشورہ نہیں۔ Backtest ماضی کے ڈیٹا کی سیمولیشن ہے، مستقبل کی کارکردگی کی ضمانت نہیں دیتا اور حقیقی سودے نہیں کرتا۔ اس لائبریری کے طریقے لازماً ایپ میں دستیاب فیچرز نہیں ہیں۔ دیکھیے طریقۂ تحقیق اور تعلیمی مرکز.
حقیقی سرمایہ خطرے میں ڈالنے سے پہلے قواعد کی توثیق کریں
ایپ کی سہولتوں، ڈیٹا اور ہر فرضی سودے کی جانچ کریں؛ جدید ڈیٹیکٹرز کے لیے الگ عمل درآمد درکار ہو سکتا ہے۔
App Store سے Backtest ڈاؤن لوڈ کریں