وسائل لوڈ ہو رہے ہیں... لوڈنگ...

الگورتھمک ٹریڈنگ کی حکمت عملیوں کا کامیاب بیک ٹیسٹنگ - حصہ اول

مصنف:نیکی, تخلیق: 2019-03-20 17:00:16, تازہ کاری:

یہ مضمون مقداری تجارت سے متعلق سیریز کا سلسلہ جاری رکھے ہوئے ہے ، جس کی شروعات ابتدائی رہنمائی اور حکمت عملی کی نشاندہی سے ہوئی ہے۔ یہ دونوں لمبے ، زیادہ ملوث مضامین بہت مشہور ہوئے ہیں لہذا میں اس سلسلے میں جاری رہوں گا اور حکمت عملی کے بیک ٹسٹنگ کے موضوع پر تفصیل فراہم کروں گا۔

الگورتھمک بیک ٹسٹنگ کے لئے نفسیات ، ریاضی ، شماریات ، سافٹ ویئر ڈویلپمنٹ اور مارکیٹ / ایکسچینج مائکرو اسٹیکچر سمیت بہت سارے شعبوں کی معلومات کی ضرورت ہوتی ہے۔ میں ان تمام موضوعات کو ایک مضمون میں ڈھکنے کی امید نہیں کرسکتا ، لہذا میں انہیں دو یا تین چھوٹے ٹکڑوں میں تقسیم کرنے جا رہا ہوں۔ ہم اس حصے میں کس چیز پر تبادلہ خیال کریں گے۔ میں بیک ٹسٹنگ کی تعریف کرکے شروع کروں گا اور پھر میں اس کے نفاذ کی بنیادی باتوں کی وضاحت کروں گا۔ پھر میں تعصب پر روشنی ڈالوں گا جس پر ہم نے ابتدائی گائیڈ ٹو کوانٹیٹیٹیو ٹریڈنگ میں بات کی۔ اگلا میں بیک ٹسٹنگ سافٹ ویئر کے مختلف دستیاب اختیارات کا موازنہ پیش کروں گا۔

مندرجہ ذیل مضامین میں ہم حکمت عملی کے نفاذ کی تفصیلات دیکھیں گے جن کا اکثر ذکر یا نظرانداز کیا جاتا ہے۔ ہم اس بات پر بھی غور کریں گے کہ کس طرح ٹریڈنگ ایکسچینج کی خصوصیت کو شامل کرکے بیک ٹیسٹنگ کے عمل کو زیادہ حقیقت پسندانہ بنایا جائے۔ پھر ہم ٹرانزیکشن لاگت پر تبادلہ خیال کریں گے اور بیک ٹیسٹ کی ترتیب میں ان کو صحیح طریقے سے ماڈل کرنے کا طریقہ بتائیں گے۔ ہم اپنے بیک ٹیسٹ کی کارکردگی پر بحث کے ساتھ اختتام کریں گے اور آخر میں ایک عام مقدار کی حکمت عملی کی ایک مثال فراہم کریں گے ، جسے اوسط ریورسنگ جوڑے کی تجارت کہا جاتا ہے۔

آئیے اس بات پر تبادلہ خیال کرتے ہیں کہ بیک ٹسٹنگ کیا ہے اور ہمیں اپنے الگورتھم ٹریڈنگ میں اسے کیوں انجام دینا چاہئے۔

بیک ٹیسٹنگ کیا ہے؟

الگورتھمک ٹریڈنگ دوسرے قسم کے سرمایہ کاری کے طبقات سے الگ ہے کیونکہ ہم ماضی کی کارکردگی سے مستقبل کی کارکردگی کے بارے میں توقعات کو زیادہ قابل اعتماد طریقے سے فراہم کرسکتے ہیں ، جس کے نتیجے میں بہت سارے اعداد و شمار دستیاب ہیں۔ اس عمل کو جس کے ذریعہ کیا جاتا ہے اسے بیک ٹیسٹنگ کہا جاتا ہے۔

سادہ الفاظ میں ، بیک ٹیسٹنگ آپ کی مخصوص حکمت عملی الگورتھم کو تاریخی مالیاتی اعداد و شمار کے سلسلے میں بے نقاب کرکے کی جاتی ہے ، جس سے تجارتی سگنلز کا ایک مجموعہ پیدا ہوتا ہے۔ ہر تجارت (جس کا ہم یہاں دو سگنلز کا ایک دور سفر ہونے کا مطلب ہوگا) کے ساتھ وابستہ منافع یا نقصان ہوگا۔ آپ کی حکمت عملی بیک ٹیسٹ کی مدت کے دوران اس منافع / نقصان کا جمع ہونا کل منافع اور نقصان کا باعث بنے گا (جسے P&L یا PnL بھی کہا جاتا ہے) ۔ یہ خیال کا جوہر ہے ، حالانکہ یقینا شیطان ہمیشہ تفصیلات میں ہوتا ہے !

ایک الگورتھمک حکمت عملی کی بیک ٹسٹنگ کے لئے اہم وجوہات کیا ہیں؟

  • فلٹریشن - اگر آپ کو حکمت عملی کی نشاندہی کے مضمون سے یاد ہے تو ، ابتدائی تحقیقی مرحلے میں ہمارا مقصد حکمت عملی کی پائپ لائن مرتب کرنا تھا اور پھر کسی بھی حکمت عملی کو فلٹر کرنا تھا جو کچھ معیارات پر پورا نہیں اترتا تھا۔ بیک ٹسٹنگ ہمیں ایک اور فلٹریشن میکانزم فراہم کرتا ہے ، کیونکہ ہم ان حکمت عملیوں کو ختم کرسکتے ہیں جو ہماری کارکردگی کی ضروریات کو پورا نہیں کرتے ہیں۔
  • ماڈلنگ - بیک ٹسٹنگ ہمیں مارکیٹ کے کچھ مظاہر جیسے ٹرانزیکشن لاگت ، آرڈر روٹنگ ، لیٹینسی ، لیکویڈیٹی یا دیگر مارکیٹ مائکرو اسٹیکچر کے نئے ماڈلز کی جانچ کرنے کی اجازت دیتا ہے۔
  • اصلاح - اگرچہ حکمت عملی کی اصلاح تعصب سے بھری ہوئی ہے ، لیکن بیک ٹیسٹنگ ہمیں اس حکمت عملی سے وابستہ پیرامیٹرز کی مقدار یا اقدار کو تبدیل کرکے اور اس کی کارکردگی کا دوبارہ حساب لگاتے ہوئے حکمت عملی کی کارکردگی کو بڑھانے کی اجازت دیتی ہے۔
  • تصدیق - ہماری حکمت عملی اکثر ہماری حکمت عملی پائپ لائن کے ذریعے بیرونی طور پر حاصل کی جاتی ہے۔ بیک ٹیسٹنگ ایک حکمت عملی کو یقینی بناتی ہے کہ اسے غلط طریقے سے نافذ نہیں کیا گیا ہے۔ اگرچہ ہمارے پاس بیرونی حکمت عملیوں کے ذریعہ تیار کردہ سگنلز تک شاذ و نادر ہی رسائی حاصل ہوگی ، لیکن ہمارے پاس اکثر کارکردگی کی پیمائش جیسے شارپ ریشو اور ڈراؤنڈ کی خصوصیات تک رسائی حاصل ہوگی۔ اس طرح ہم ان کا موازنہ اپنے نفاذ سے کرسکتے ہیں۔

بیک ٹسٹنگ الگورتھمک ٹریڈنگ کے لئے بہت سارے فوائد فراہم کرتی ہے۔ تاہم ، حکمت عملی کو براہ راست بیک ٹسٹ کرنا ہمیشہ ممکن نہیں ہوتا ہے۔ عام طور پر ، جیسے جیسے حکمت عملی کی تعدد میں اضافہ ہوتا ہے ، مارکیٹ اور تبادلے کے مائکرو اسٹیکچر اثرات کو صحیح طریقے سے ماڈل کرنا مشکل ہوجاتا ہے۔ اس سے کم قابل اعتماد بیک ٹسٹ ہوتے ہیں اور اس طرح منتخب کردہ حکمت عملی کا زیادہ مشکل اندازہ ہوتا ہے۔ یہ ایک خاص مسئلہ ہے جہاں عمل درآمد کا نظام حکمت عملی کی کارکردگی کی کلید ہے ، جیسے انتہائی اعلی تعدد کے الگورتھم۔

بدقسمتی سے، بیک ٹسٹنگ ہر قسم کے تعصب سے بھرا ہوا ہے۔ ہم نے پچھلے مضامین میں ان میں سے کچھ مسائل پر بات کی ہے، لیکن اب ہم ان پر گہرائی سے بات کریں گے۔

حکمت عملی کے پس منظر کے ٹیسٹوں پر اثر انداز ہونے والے تعصب

بہت سے تعصبات ہیں جو بیک ٹسٹڈ حکمت عملی کی کارکردگی کو متاثر کرسکتے ہیں۔ بدقسمتی سے ، ان تعصبات میں کارکردگی کو کم کرنے کے بجائے کارکردگی کو بڑھانے کی رجحان ہوتی ہے۔ لہذا آپ کو ہمیشہ بیک ٹسٹ کو حکمت عملی کی اصل کارکردگی پر ایک مثالی بالائی حد سمجھنا چاہئے۔ الگورتھم ٹریڈنگ سے تعصبات کو ختم کرنا تقریبا ناممکن ہے لہذا یہ ہمارا کام ہے کہ ہم اپنی الگورتھم حکمت عملیوں کے بارے میں باخبر فیصلے کرنے کے لئے ان کو کم سے کم کریں۔

چار اہم تعصبات ہیں جن پر میں بحث کرنا چاہتا ہوں: اصلاح کی تعصبات، آگے دیکھنے کی تعصبات، بقا کی تعصبات اور نفسیاتی رواداری کی تعصبات۔

اصلاحاتی تعصب

یہ ممکنہ طور پر تمام بیک ٹیسٹ تعصب میں سے سب سے زیادہ دھوکہ دہی ہے۔ اس میں اضافی تجارتی پیرامیٹرز کو ایڈجسٹ کرنے یا متعارف کرانے میں شامل ہوتا ہے جب تک کہ بیک ٹیسٹ ڈیٹا سیٹ پر حکمت عملی کی کارکردگی بہت پرکشش نہ ہو۔ تاہم ، ایک بار زندہ ہونے کے بعد حکمت عملی کی کارکردگی نمایاں طور پر مختلف ہوسکتی ہے۔ اس تعصب کا ایک اور نام منحنی فٹنگ یا ڈیٹا اسنوپنگ تعصب ہے۔

آپٹیمائزیشن تعصب کو ختم کرنا مشکل ہے کیونکہ الگورتھمک حکمت عملیوں میں اکثر بہت سے پیرامیٹرز شامل ہوتے ہیں۔ پیرامیٹرز اس معاملے میں انٹری / ایگزٹ معیار ، بیک بیک ادوار ، اوسط ادوار (یعنی حرکت پذیر اوسط ہموار پیرامیٹر) یا اتار چڑھاؤ کی پیمائش کی تعدد ہوسکتی ہے۔ پیرامیٹرز کی تعداد کو کم سے کم کرکے اور ٹریننگ سیٹ میں ڈیٹا پوائنٹس کی مقدار میں اضافہ کرکے آپٹیمائزیشن تعصب کو کم سے کم کیا جاسکتا ہے۔ در حقیقت ، کسی کو بھی اس کے بارے میں محتاط رہنا چاہئے کیونکہ پرانے ٹریننگ پوائنٹس پہلے کے نظام سے مشروط ہوسکتے ہیں (جیسے ریگولیٹری ماحول) اور اس طرح آپ کی موجودہ حکمت عملی سے متعلق نہیں ہوسکتے ہیں۔

اس تعصب کو کم کرنے میں مدد کرنے کا ایک طریقہ حساسیت کا تجزیہ کرنا ہے۔ اس کا مطلب ہے کہ پیرامیٹرز کو بڑھتے ہوئے تبدیل کرنا اور کارکردگی کی سطح کا نقشہ بنانا۔ پیرامیٹرز کے انتخاب کے لئے صحت مند ، بنیادی استدلال ، دیگر تمام عوامل پر غور کرتے ہوئے ، پیرامیٹر کی ہموار سطح کی طرف لے جانا چاہئے۔ اگر آپ کی کارکردگی کی سطح بہت تیز ہے تو ، اس کا مطلب اکثر یہ ہوتا ہے کہ پیرامیٹر کسی رجحان کی عکاسی نہیں کررہا ہے اور ٹیسٹ کے اعداد و شمار کا ایک مصنوعہ ہے۔ کثیر جہتی اصلاح کے الگورتھم پر وسیع ادب ہے اور یہ تحقیق کا ایک انتہائی فعال علاقہ ہے۔ میں یہاں اس پر قائم نہیں رہوں گا ، لیکن جب آپ کو ایک حیرت انگیز بیک ٹیسٹ والی حکمت عملی مل جائے تو اسے اپنے ذہن کے پچھلے حصے میں رکھیں!

مستقبل کی طرف دیکھ کر تعصب

بیک ٹسٹنگ سسٹم میں آگے دیکھنے کی تعصب اس وقت متعارف کرائی جاتی ہے جب مستقبل کے اعداد و شمار کو حادثاتی طور پر اس نقطہ پر شامل کیا جاتا ہے جہاں یہ اعداد و شمار واقعتا available دستیاب نہیں ہوتے تھے۔ اگر ہم بیک ٹسٹ کو تاریخی طور پر چلاتے ہیں اور ہم وقت کے نقطہ N تک پہنچ جاتے ہیں تو ، اگر کسی بھی نقطہ N + k کے لئے ڈیٹا شامل کیا جاتا ہے تو آگے دیکھنے کی تعصب واقع ہوتی ہے ، جہاں k> 0۔ آگے دیکھنے کی تعصب کی غلطیاں ناقابل یقین حد تک ٹھیک ہوسکتی ہیں۔ یہاں تین مثالیں ہیں کہ کس طرح آگے دیکھنے کی تعصب کو متعارف کرایا جاسکتا ہے:

  • تکنیکی کیڑے - کوڈ میں صفوں / ویکٹر میں اکثر تکرار یا انڈیکس متغیرات ہوتے ہیں۔ ان اشاریوں کی غلط آفسیٹس غیر صفر کے لئے N + k پر ڈیٹا کو شامل کرکے مستقبل کی طرف دیکھنے کی تعصب کا باعث بن سکتی ہیں۔
  • پیرامیٹر کیلکولیشن - ایک اور عام مثال آگے دیکھنے والی تعصب کا امکان ہے جب زیادہ سے زیادہ حکمت عملی کے پیرامیٹرز کا حساب لگایا جائے ، جیسے دو ٹائم سیریز کے مابین لکیری رجسٹریشن کے ساتھ۔ اگر رجسٹریشن کے گتانک کا حساب لگانے کے لئے پورے ڈیٹا سیٹ (بشمول مستقبل کے اعداد و شمار) کا استعمال کیا جاتا ہے ، اور اس طرح اصلاح کے مقاصد کے لئے ٹریڈنگ کی حکمت عملی پر retroactively لاگو ہوتا ہے ، تو مستقبل کے اعداد و شمار کو شامل کیا جارہا ہے اور آگے دیکھنے والی تعصب موجود ہے۔
  • زیادہ سے زیادہ / کم سے کم - کچھ تجارتی حکمت عملی کسی بھی وقت کی مدت میں انتہائی اقدار کا استعمال کرتی ہیں ، جیسے او ایچ ایل سی کے اعداد و شمار میں اعلی یا کم قیمتوں کو شامل کرنا۔ تاہم ، چونکہ ان زیادہ سے زیادہ / کم سے کم اقدار کا حساب صرف کسی وقت کی مدت کے اختتام پر ہی کیا جاسکتا ہے ، لہذا اگر ان اقدار کو استعمال کیا جاتا ہے تو آگے کی طرف دیکھنا تعصب متعارف کرایا جاتا ہے۔ ان کا استعمال کرنے والی کسی بھی تجارتی حکمت عملی میں ہمیشہ کم از کم ایک مدت کے لئے اعلی / کم اقدار کو پیچھے رکھنا ضروری ہے۔

اصلاح کے تعصب کی طرح ، اس کے تعارف سے بچنے کے لئے انتہائی محتاط رہنا ضروری ہے۔ یہ اکثر بنیادی وجہ ہے کہ تجارتی حکمت عملی براہ راست تجارت میں اپنے بیک ٹیسٹ میں نمایاں طور پر کم کارکردگی کا مظاہرہ کرتی ہے۔

بقا کی تعصب

بقا کی تعصب ایک خاص طور پر خطرناک رجحان ہے اور بعض حکمت عملی کی اقسام کے لئے نمایاں طور پر بڑھتی ہوئی کارکردگی کا باعث بن سکتی ہے۔ یہ اس وقت ہوتا ہے جب حکمت عملیوں کا ڈیٹا سیٹ پر تجربہ کیا جاتا ہے جس میں پچھلے اثاثوں کی پوری کائنات شامل نہیں ہوتی ہے جو کسی خاص وقت میں منتخب ہوسکتی ہے ، لیکن صرف ان پر غور کیا جاتا ہے جو موجودہ وقت تک زندہ رہ چکے ہیں۔

مثال کے طور پر ، 2001 کے مارکیٹ کریش سے پہلے اور اس کے بعد ایکویٹیوں کے بے ترتیب انتخاب پر حکمت عملی کی جانچ پر غور کریں۔ کچھ ٹیکنالوجی اسٹاک دیوالیہ ہوگئے ، جبکہ دوسرے تیرتے رہنے میں کامیاب ہوگئے اور یہاں تک کہ خوشحال بھی ہوئے۔ اگر ہم اس حکمت عملی کو صرف ان اسٹاک تک محدود رکھتے جو مارکیٹ میں کمی کی مدت سے گزرتے ہیں تو ، ہم بقا کی تعصب متعارف کروا رہے ہوں گے کیونکہ انہوں نے پہلے ہی ہمیں اپنی کامیابی کا مظاہرہ کیا ہے۔ در حقیقت ، یہ صرف ایک اور مخصوص معاملہ ہے ، کیونکہ مستقبل کی معلومات کو ماضی کے تجزیے میں شامل کیا جارہا ہے۔

آپ کی حکمت عملی کے بیک ٹسٹ میں بقا کے تعصب کو کم کرنے کے دو اہم طریقے ہیں:

  • بقا تعصب سے پاک ڈیٹا سیٹ - ایکویٹی ڈیٹا کے معاملے میں یہ ممکن ہے کہ ڈیٹا سیٹ خریدے جائیں جن میں ڈیلسٹڈ ادارے شامل ہوں ، حالانکہ وہ سستے نہیں ہیں اور صرف ادارہ جاتی فرموں کے ذریعہ ہی استعمال ہوتے ہیں۔ خاص طور پر ، یاہو فنانس ڈیٹا بقا تعصب سے پاک نہیں ہے ، اور یہ عام طور پر بہت سے خوردہ الگو تاجروں کے ذریعہ استعمال ہوتا ہے۔ کوئی ایسی اثاثہ کلاسوں پر بھی تجارت کرسکتا ہے جو بقا تعصب کا شکار نہیں ہیں ، جیسے کچھ اشیا (اور ان کے مستقبل کے مشتقات) ۔
  • زیادہ حالیہ اعداد و شمار کا استعمال کریں - ایکوئٹیز کی صورت میں ، حالیہ ڈیٹا سیٹ کا استعمال اس امکان کو کم کرتا ہے کہ منتخب کردہ اسٹاک کے انتخاب کو بچ جانے والوں پر وزن دیا جائے ، صرف اس وجہ سے کہ مختصر مدت میں مجموعی طور پر اسٹاک کی فہرست بندی کا امکان کم ہے۔ موجودہ نقطہ نظر سے اعداد و شمار جمع کرکے ذاتی بقا کے تعصب سے پاک ڈیٹا سیٹ بنانا بھی شروع کیا جاسکتا ہے۔ 3-4 سال کے بعد ، آپ کے پاس بقا کے تعصب سے پاک ایکوئٹی ڈیٹا کا ایک ٹھوس سیٹ ہوگا جس کے ساتھ مزید حکمت عملیوں کو بیک ٹیسٹ کیا جاسکے۔

اب ہم کچھ نفسیاتی مظاہر پر غور کریں گے جو آپ کی تجارتی کارکردگی کو متاثر کرسکتے ہیں۔

نفسیاتی رواداری کی تعصب

اس خاص رجحان پر مقدار کے لحاظ سے تجارت کے تناظر میں اکثر بحث نہیں کی جاتی ہے۔ تاہم ، اس پر زیادہ صوابدیدی تجارتی طریقوں کے سلسلے میں وسیع پیمانے پر تبادلہ خیال کیا جاتا ہے۔ اس کے مختلف نام ہیں ، لیکن میں نے اس کو نفسیاتی رواداری تعصب کہنے کا فیصلہ کیا ہے کیونکہ اس سے مسئلے کا جوہر سامنے آتا ہے۔ جب 5 سال یا اس سے زیادہ کی مدت میں بیک ٹیسٹ بناتے ہیں تو ، ایک اوپر کی طرف بڑھتے ہوئے ایکویٹی وکر کو دیکھنا ، مرکب سالانہ واپسی ، شارپ تناسب اور یہاں تک کہ ڈراؤڈاؤن کی خصوصیات کا حساب لگانا آسان ہے اور نتائج سے مطمئن ہوجاتے ہیں۔ مثال کے طور پر ، حکمت عملی میں زیادہ سے زیادہ 25٪ رشتہ دار ڈراؤڈاؤن اور زیادہ سے زیادہ 4 ماہ کی مدت ہوسکتی ہے۔ یہ رفتار کی حکمت عملی کے لئے غیر معمولی نہیں ہوگا۔ تاہم ، خود کو یہ یقین دلانا آسان ہے کہ اس طرح کے نقصانات کو برداشت کرنا آسان ہے کیونکہ مجموعی تصویر گلابی ہے۔ عملی طور پر ، یہ بہت مشکل ہے!

اگر بیک ٹیسٹ میں 25٪ یا اس سے زیادہ کی تاریخی کمی واقع ہوتی ہے تو ، پھر تمام امکانات کے مطابق آپ کو براہ راست تجارت میں اسی طرح کی کمی کے ادوار نظر آئیں گے۔ یہ کمی کے ادوار نفسیاتی طور پر برداشت کرنا مشکل ہیں۔ میں نے پہلے ہاتھ سے مشاہدہ کیا ہے کہ ادارہ جاتی ماحول میں توسیعی کمی کی طرح کیا ہوسکتا ہے ، اور یہ خوشگوار نہیں ہے - یہاں تک کہ اگر بیک ٹیسٹ سے پتہ چلتا ہے کہ اس طرح کے ادوار واقع ہوں گے۔ میں نے اسے تعصب کہا ہے کیونکہ اکثر ایسی حکمت عملی جو دوسری صورت میں کامیاب ہوگی توسیعی کمی کے اوقات میں تجارت سے روک دی جاتی ہے اور اس طرح بیک ٹیسٹ کے مقابلے میں کم کارکردگی کا باعث بنے گی۔ اس طرح ، اگرچہ حکمت عملی الگورتھم کی نوعیت کی ہے ، لیکن نفسیاتی عوامل اب بھی منافع بخش ہونے پر بھاری اثر ڈال سکتے ہیں۔ اس بات کو یقینی بنانا ہے کہ اگر آپ بیک ٹینڈ میں ایک خاص فیصد اور مدت کی کمی کو دیکھتے ہیں تو ، آپ کو ان کے ماحول میں رہنے کی توقع کرنی چاہئے ، تاکہ زیادہ منافع حاصل کرنے کے ل.

بیک ٹسٹنگ کے لئے سافٹ ویئر پیکج

حکمت عملی کے بیک ٹیسٹنگ کے لئے سافٹ ویئر کا منظر وسیع ہے۔ حل مکمل طور پر مربوط ادارہ جاتی گریڈ نفیس سافٹ ویئر سے لے کر پروگرامنگ زبانوں جیسے سی ++ ، پطرون اور آر تک ہوتے ہیں جہاں تقریبا ہر چیز کو شروع سے لکھنا ضروری ہوتا ہے (یا موزوں پلگ ان حاصل کیا جاتا ہے۔) کوانٹ ٹریڈرز کی حیثیت سے ہم اپنے تجارتی ٹکنالوجی اسٹیک کے مقابلے میں اپنی ترقیاتی طریقہ کار کی رفتار اور وشوسنییتا کے توازن میں دلچسپی رکھتے ہیں۔ سافٹ ویئر کے انتخاب کے لئے کلیدی غور و فکر یہ ہیں:

  • پروگرامنگ کی مہارت - ماحول کا انتخاب بڑے پیمانے پر سافٹ ویئر کو پروگرام کرنے کی آپ کی صلاحیت پر منحصر ہوگا۔ میں یہ استدلال کروں گا کہ کل اسٹیک پر قابو پانے سے آپ کے طویل مدتی پی اینڈ ایل پر زیادہ اثر پڑے گا اس سے زیادہ ممکنہ طور پر وینڈر سافٹ ویئر کو آؤٹ سورسنگ کرنا۔ اس کی وجہ یہ ہے کہ بیرونی کیڑے یا خاصیت رکھنے کا منفی خطرہ ہے جو آپ وینڈر سافٹ ویئر میں ٹھیک کرنے سے قاصر ہیں ، جو دوسری صورت میں آسانی سے ٹھیک ہوجائے گا اگر آپ کے پاس اپنے ٹیک اسٹیک پر زیادہ کنٹرول تھا۔ آپ ایک ایسا ماحول بھی چاہتے ہیں جو پیداوری ، لائبریری کی دستیابی اور عمل درآمد کی رفتار کے مابین صحیح توازن کو حاصل کرے۔ میں ذیل میں اپنی ذاتی سفارش کرتا ہوں۔
  • عملدرآمد کی اہلیت / بروکر تعامل - کچھ بیک ٹیسٹنگ سافٹ ویئر ، جیسے ٹریڈسٹشن ، براہ راست بروکرج کے ساتھ تعلقات رکھتے ہیں۔ میں اس نقطہ نظر کا مداح نہیں ہوں کیونکہ ٹرانزیکشن لاگت کو کم کرنا اکثر شارپ تناسب کو زیادہ حاصل کرنے کا ایک بڑا جزو ہوتا ہے۔ اگر آپ کسی خاص بروکر سے جڑے ہوئے ہیں (اور ٹریڈسٹشن آپ کو ایسا کرنے پر مجبور کرتا ہے) ، تو اگر ضرورت پڑی تو آپ کو نئے سافٹ ویئر (یا نئے بروکر) میں منتقلی کا وقت مشکل ہوگا۔ انٹرایکٹو بروکرز ایک API فراہم کرتے ہیں جو مضبوط ہے ، حالانکہ تھوڑا سا موٹا انٹرفیس ہے۔
  • حسب ضرورت - MATLAB یا Python جیسے ماحول آپ کو کچھ حکمت عملیوں کی تخلیق کرتے وقت بہت زیادہ لچک فراہم کرتے ہیں کیونکہ وہ تقریبا کسی بھی ریاضیاتی آپریشن کے لئے تصوراتی لائبریری فراہم کرتے ہیں، لیکن جہاں ضروری ہو وہاں وسیع پیمانے پر حسب ضرورت کی اجازت دیتے ہیں.
  • حکمت عملی کی پیچیدگی - کچھ سافٹ ویئر صرف بھاری تعداد کو کچلنے یا ریاضیاتی پیچیدگی کے لئے نہیں کاٹتے ہیں۔ ایکسل اس طرح کا ایک سافٹ ویئر ہے۔ اگرچہ یہ آسان حکمت عملیوں کے لئے اچھا ہے ، لیکن یہ واقعی تیز رفتار سے متعدد اثاثوں یا زیادہ پیچیدہ الگورتھم سے نمٹنے کے قابل نہیں ہے۔
  • تعصب کو کم سے کم کرنا - کیا سافٹ ویئر یا ڈیٹا کا ایک خاص ٹکڑا تجارتی تعصب کے لئے زیادہ موزوں ہے؟ آپ کو اس بات کا یقین کرنے کی ضرورت ہے کہ اگر آپ خود ہی تمام فعالیت کو تخلیق کرنا چاہتے ہیں تو ، آپ ایسے کیڑے متعارف نہیں کرواتے ہیں جو تعصب کا باعث بن سکتے ہیں۔
  • ترقی کی رفتار - کسی کو بیک ٹیسٹ انجن کو نافذ کرنے میں مہینوں اور مہینوں گزارنے کی ضرورت نہیں ہونی چاہئے۔ پروٹو ٹائپنگ میں صرف چند ہفتوں کا وقت لگنا چاہئے۔ اس بات کو یقینی بنائیں کہ آپ کا سافٹ ویئر آپ کی پیشرفت کو کسی بھی حد تک روک نہیں رہا ہے ، صرف عملدرآمد کی رفتار کے چند اضافی فیصد پوائنٹس حاصل کرنے کے لئے۔ C ++ یہاں ہال میں ہاتھی ہے!
  • عملدرآمد کی رفتار - اگر آپ کی حکمت عملی مکمل طور پر عملدرآمد کے وقت پر منحصر ہے (جیسا کہ HFT / UHFT میں) تو پھر C یا C ++ جیسی زبان ضروری ہوگی۔ تاہم ، آپ ان ڈومینز کے لئے لینکس کرنل کی اصلاح اور FPGA کے استعمال پر قابو پائیں گے ، جو اس مضمون کے دائرہ کار سے باہر ہے!
  • لاگت - بہت سارے سافٹ ویئر ماحول جن کے ذریعہ آپ الگورتھمک ٹریڈنگ کی حکمت عملیوں کو پروگرام کرسکتے ہیں وہ مکمل طور پر مفت اور اوپن سورس ہیں۔ در حقیقت ، بہت سے ہیج فنڈز اپنے پورے الگورو ٹریڈنگ اسٹیکس کے لئے اوپن سورس سافٹ ویئر کا استعمال کرتے ہیں۔ اس کے علاوہ ، ایکسل اور میٹلب دونوں نسبتا cheap سستے ہیں اور یہاں تک کہ ہر ایک کے لئے مفت متبادل بھی موجود ہیں۔

اب جب کہ ہم نے معیار درج کیے ہیں جن کے ساتھ ہمیں اپنے سافٹ ویئر انفراسٹرکچر کا انتخاب کرنے کی ضرورت ہے، میں کچھ زیادہ مقبول پیکجوں کے ذریعے چلنا چاہتا ہوں اور ان کا موازنہ کیسے کریں:

نوٹ: میں صرف وہ سافٹ ویئر شامل کرنے جا رہا ہوں جو زیادہ تر خوردہ پریکٹیشنرز اور سافٹ ویئر ڈویلپرز کے لئے دستیاب ہے ، کیونکہ یہ سائٹ کا قارئین ہے۔ جبکہ دوسرے سافٹ ویئر دستیاب ہیں جیسے زیادہ ادارہ جاتی گریڈ ٹولز ، مجھے لگتا ہے کہ یہ خوردہ ماحول میں موثر انداز میں استعمال کرنے کے لئے بہت مہنگے ہیں اور ذاتی طور پر ان کا کوئی تجربہ نہیں ہے۔

بیک ٹیسٹنگ سافٹ ویئر موازنہ

ایم ایس ایکسل

تفصیل: WYSIWYG (جو آپ دیکھتے ہیں وہ وہی ہے جو آپ حاصل کرتے ہیں) اسپریڈشیٹ سافٹ ویئر۔ مالیاتی صنعت میں انتہائی وسیع پیمانے پر۔ ڈیٹا اور الگورتھم مضبوطی سے جڑے ہوئے ہیں۔

عملدرآمد: جی ہاں، ایکسل زیادہ تر بروکرز میں منسلک کیا جا سکتا ہے.

حسب ضرورت: وی بی اے میکرو کو چھپانے کے نفاذ کی قیمت پر زیادہ اعلی درجے کی فعالیت کی اجازت دیتا ہے۔

حکمت عملی کی پیچیدگی: زیادہ جدید اعدادوشمار کے اوزار کو لاگو کرنا مشکل ہے کیونکہ بہت سے سینکڑوں اثاثوں کے ساتھ حکمت عملی ہیں.

تعصب کو کم سے کم کرنا: سیل کو اجاگر کرنے کی فعالیت کے ذریعہ آگے دیکھنے والی تعصب کا پتہ لگانا آسان ہے (VBA کے بغیر فرض کرتے ہوئے) ۔

ترقی کی رفتار: بنیادی حکمت عملیوں کو فوری طور پر لاگو کرنا۔

عملدرآمد کی رفتار: عملدرآمد کی سست رفتار - صرف کم تعدد کی حکمت عملی کے لئے موزوں ہے۔

قیمت: سستی یا مفت (لائسنس پر منحصر ہے) ۔

متبادل: اوپن آفس

MATLAB

تفصیل: پروگرامنگ کا ماحول جو اصل میں کمپیوٹیشنل ریاضی ، طبیعیات اور انجینئرنگ کے لئے ڈیزائن کیا گیا تھا۔ ویکٹرزڈ آپریشنز اور عددی لکیری الجبرا سے متعلقہ کاموں کے لئے بہت موزوں ہے۔ کوانٹ ٹریڈنگ کے لئے پلگ ان کی ایک وسیع رینج فراہم کرتا ہے۔ مقداری ہیج فنڈز میں وسیع پیمانے پر استعمال میں ہے۔

عملدرآمد: کوئی مقامی عملدرآمد کی صلاحیت نہیں ، MATLAB کو ایک علیحدہ عملدرآمد کے نظام کی ضرورت ہے۔

حسب ضرورت: کمپیوٹیشنل ریاضی کے تقریبا تمام شعبوں کے لئے کمیونٹی پلگ ان کی ایک بہت بڑی صف.

حکمت عملی کی پیچیدگی: بہت سے جدید اعدادوشمار کے طریقے پہلے سے دستیاب اور اچھی طرح سے تجربہ کیا گیا ہے۔

تعصب کو کم سے کم کرنا: آگے دیکھنے والی تعصب کا پتہ لگانا مشکل ہے ، وسیع پیمانے پر جانچ کی ضرورت ہے۔

ترقی کی رفتار: مختصر سکرپٹ آسانی سے نفیس بیک ٹیسٹ تشکیل دے سکتے ہیں۔

عملدرآمد کی رفتار: ایک ویکٹرائزڈ / متوازی الگورتھم کا فرض کرتے ہوئے ، MATLAB انتہائی بہتر ہے۔ روایتی تکرار شدہ لوپس کے لئے غریب۔

لاگت: لائسنس کے لئے 1000 امریکی ڈالر۔

متبادل: اوکٹیو، SciLab

پائیتھون

تفصیل: ترقی کی رفتار کے لئے ڈیزائن کیا گیا اعلی سطحی زبان۔ تقریبا کسی بھی پروگرام کے کام کے لئے لائبریریوں کی وسیع رینج۔ ہیج فنڈ اور سرمایہ کاری بینک کمیونٹی میں وسیع تر قبولیت حاصل کرنا۔ عملدرآمد کی رفتار کے لئے C / C ++ کی طرح تیز نہیں ہے۔

عملدرآمد: پائتھون پلگ ان بڑے بروکرز ، جیسے انٹرایکٹو بروکرز کے لئے موجود ہیں۔ لہذا بیک ٹیسٹ اور عملدرآمد کا نظام سب ایک ہی ٹیک اسٹیک کا حصہ ہوسکتے ہیں۔

تخصیص: پائیتھون میں ایک بہت ہی صحت مند ترقیاتی برادری ہے اور یہ ایک پختہ زبان ہے۔ نمبر پی / سائی پی تیزی سے سائنسی کمپیوٹنگ اور شماریاتی تجزیہ کے اوزار مہیا کرتی ہے جو کوانٹ ٹریڈنگ کے لئے موزوں ہے۔

حکمت عملی کی پیچیدگی: اہم الگورتھم کے لئے بہت سارے پلگ ان موجود ہیں ، لیکن اتنا بڑا کوانٹم کمیونٹی نہیں ہے جتنا MATLAB کے لئے موجود ہے۔

تعصب کو کم سے کم کرنا: کسی بھی اعلی سطح کی زبان کے لئے ایک ہی تعصب کو کم سے کم کرنے کے مسائل موجود ہیں۔ جانچ کے بارے میں انتہائی محتاط رہنے کی ضرورت ہے۔

ترقی کی رفتار: پطرون کا بنیادی فائدہ ترقی کی رفتار ہے ، جس میں ٹیسٹنگ کی صلاحیتوں میں مضبوط تعمیر ہے۔

عملدرآمد کی رفتار: C ++ کی طرح تیز نہیں ، لیکن سائنسی کمپیوٹنگ کے اجزاء کو بہتر بنایا گیا ہے اور پائتھون کچھ پلگ ان کے ساتھ مقامی C کوڈ سے بات کرسکتا ہے۔

لاگت: مفت / اوپن سورس

متبادل: روبی، ارلنگ، ہاسکل

R

تفصیل: اعلی درجے کی شماریاتی طریقوں اور ٹائم سیریز تجزیہ کے لئے ڈیزائن کیا گیا ماحول۔ مخصوص شماریاتی ، اکانومیٹرک اور مقامی گرافنگ ٹول سیٹ کی وسیع رینج۔ بڑی ڈویلپر کمیونٹی۔

عملدرآمد: R میں کچھ بروکرز ، خاص طور پر انٹرایکٹو بروکرز کے پلگ انز موجود ہیں۔ اس طرح ایک اینڈ ٹو اینڈ سسٹم مکمل طور پر R میں لکھا جاسکتا ہے۔

تخصیص: R کو کسی بھی پیکیج کے ساتھ تخصیص کیا جاسکتا ہے ، لیکن اس کی طاقت شماریاتی / اقتصادیات کے شعبوں میں ہے۔

حکمت عملی کی پیچیدگی: دستیاب پلگ ان کی وجہ سے معاشی ، شماریاتی یا مشین لرننگ کی حکمت عملی انجام دینے میں زیادہ تر مفید ہے۔

تعصب کو کم سے کم کرنا: کسی بھی اعلی سطح کی زبان جیسے پطرون یا سی ++ کے لئے تعصب کی اسی طرح کی صلاحیت۔ اس طرح جانچ کرنا ضروری ہے۔

ترقی کی رفتار: R شماریاتی طریقوں پر مبنی حکمت عملی لکھنے کے لئے تیز ہے۔

عملدرآمد کی رفتار: R C ++ سے سست ہے ، لیکن ویکٹرزڈ آپریشنز (جیسا کہ MATLAB کے ساتھ) کے لئے نسبتا optim بہتر ہے۔

لاگت: مفت / اوپن سورس

متبادل: ایس پی ایس ایس، اسٹیٹا

C++

تفصیل: پختہ ، اعلی سطحی زبان جو عملدرآمد کی رفتار کے لئے ڈیزائن کی گئی ہے۔ مقداری خزانہ اور عددی لائبریریوں کی وسیع رینج۔ ڈیبگ کرنا مشکل ہے اور اکثر پائتھون یا میٹلب سے زیادہ وقت لگتا ہے۔ خرید اور فروخت دونوں طرف انتہائی عام ہے۔

عملدرآمد: زیادہ تر بروکرج APIs C ++ اور جاوا میں لکھے گئے ہیں۔ اس طرح بہت سارے پلگ ان موجود ہیں۔

حسب ضرورت: سی / سی ++ بنیادی میموری تک براہ راست رسائی کی اجازت دیتا ہے ، لہذا انتہائی اعلی تعدد کی حکمت عملیوں کو نافذ کیا جاسکتا ہے۔

حکمت عملی کی پیچیدگی: سی ++ ایس ٹی ایل بہتر کردہ الگورتھم کی ایک وسیع رینج فراہم کرتا ہے۔ تقریبا کسی بھی خصوصی ریاضیاتی الگورتھم میں ویب پر مفت ، اوپن سورس سی / سی ++ عمل درآمد موجود ہے۔

تعصب کو کم سے کم کرنا: آگے دیکھنے والی تعصب کو ختم کرنا مشکل ہوسکتا ہے ، لیکن دیگر اعلی سطحی زبانوں سے زیادہ مشکل نہیں ہے۔ ڈیبگنگ کے اچھے اوزار ، لیکن بنیادی میموری سے نمٹنے کے لئے محتاط رہنا ضروری ہے۔

ترقی کی رفتار: اسی الگورتھم کے لئے پیتھون یا میٹلب کے مقابلے میں سی ++ کافی لفظی ہے۔ زیادہ لائنوں کا کوڈ (لوک) اکثر کیڑے کی زیادہ امکان کا باعث بنتا ہے۔

عملدرآمد کی رفتار: سی / سی ++ میں عملدرآمد کی انتہائی تیز رفتار ہے اور مخصوص کمپیوٹیشنل فن تعمیرات کے لئے اچھی طرح سے بہتر بنایا جاسکتا ہے۔ اس کا استعمال کرنے کی یہ بنیادی وجہ ہے۔

لاگت: مختلف کمپائلرز: لینکس / جی سی سی مفت ہے ، ایم ایس ویژول اسٹوڈیو کے مختلف لائسنس ہیں۔

متبادل: سی #، جاوا، اسکالا

مختلف حکمت عملیوں کے لئے مختلف سافٹ ویئر پیکجوں کی ضرورت ہوگی۔ ایچ ایف ٹی اور ایچ ایچ ایف ٹی حکمت عملیاں سی / سی ++ میں لکھی جائیں گی (ان دنوں وہ اکثر جی پی یو اور ایف پی جی اے پر انجام دی جاتی ہیں) ، جبکہ کم تعدد کی سمت دارالحکومت کی حکمت عملیوں کو ٹریڈ اسٹیشن میں لاگو کرنا آسان ہے ، کیونکہ سافٹ ویئر / بروکرج کی سب میں ایک نوعیت ہے۔

میری ذاتی ترجیح پائیتھون کے لئے ہے کیونکہ یہ میری ضروریات اور حکمت عملیوں کے لئے حسب ضرورت ، ترقی کی رفتار ، جانچ کی صلاحیت اور عملدرآمد کی رفتار کی صحیح ڈگری فراہم کرتا ہے۔ اگر مجھے کسی چیز کی تیز رفتار کی ضرورت ہو تو ، میں براہ راست اپنے پائیتھون پروگراموں سے C ++ میں ڈراپ کرسکتا ہوں۔ بہت سارے کوانٹ ٹریڈرز کے ذریعہ پسند کیا جانے والا ایک طریقہ یہ ہے کہ وہ اپنی حکمت عملیوں کو پائیتھون میں پروٹو ٹائپ کریں اور پھر آہستہ آہستہ عملدرآمد کے حصوں کو دوبارہ ترتیب دینے کے طریقے سے C ++ میں تبدیل کریں۔ آخر کار پوری الگورو C ++ میں لکھی گئی ہے اور اسے تجارت کرنے کے لئے اکیلا چھوڑ دیا جاسکتا ہے!

بیک ٹسٹنگ کے بارے میں اگلے چند مضامین میں ہم ایک الگورتھمک ٹریڈنگ بیک ٹسٹنگ سسٹم کے نفاذ کے ارد گرد کچھ خاص امور پر ایک نظر ڈالیں گے ، نیز تجارتی تبادلے کے اثرات کو کس طرح شامل کیا جائے گا۔ ہم حکمت عملی کی کارکردگی کی پیمائش پر تبادلہ خیال کریں گے اور آخر میں ایک مثال کی حکمت عملی کے ساتھ اختتام پذیر ہوں گے۔


مزید