نظام تداول الخيارات java code


أنظمة التداول الترميز.


جوستين كوبر.


كيف يتم إنشاء أنظمة التداول الآلي؟


سيركز هذا البرنامج التعليمي على الجزئين الثاني والثالث من هذه العملية ، حيث يتم تحويل القواعد الخاصة بك إلى رمز يمكن لبرنامج التداول الخاص بك فهمه واستخدامه.


المميزات والعيوب.


يأخذ النظام الآلي العاطفة والانشغال من التداول ، مما يسمح لك بالتركيز على تحسين أسلوبك وقواعد إدارة الأموال. بمجرد تطوير نظام مربح ، فإنه لا يتطلب أي عمل من جانبك حتى ينكسر ، أو ظروف السوق تتطلب التغيير. سلبيات:


إذا لم يتم ترميز النظام واختباره بشكل صحيح ، يمكن أن تحدث خسائر كبيرة بسرعة. في بعض الأحيان يكون من المستحيل وضع قواعد معينة في الكود ، مما يجعل من الصعب تطوير نظام تداول آلي. ستتعلم في هذا البرنامج التعليمي كيفية تخطيط وتصميم نظام تداول آلي ، وكيفية ترجمة هذا التصميم إلى شفرة سيفهمها الكمبيوتر ، وكيفية اختبار خطتك لضمان الأداء الأمثل ، وأخيرًا ، كيفية استخدام النظام لديك.


<h1> نظام تداول الخيارات java code </ h1>


مرحبًا بك في Home of the Open Java Trading System.


يُقصد بنظام Open Java Trading System (OJTS) أن يكون بنية تحتية مشتركة لتطوير أنظمة تداول الأسهم. ويتكون من أربعة أجزاء: جمع البيانات الخام عبر الإنترنت ، والتعرف على إشارات التداول ، ووحدة التصور والوحدات النمطية للاتصال بالواجهات البرمجية المبرمجة لمنصات التداول مثل البنوك. يهدف المشروع إلى توفير بنية تحتية مشتركة جافا خالصة (مستقلة عن المنصات) للمطورين لأنظمة التداول. بعض الجوانب التي يجب معالجتها هي توفير مخطط قاعدة بيانات متوافق مع SQL92 شائع لتخزين البيانات المالية ، واجهات Java الشائعة لكيفية تبادل البيانات بين الوحدات المختلفة ، وتصور البيانات المالية الأولية وإشارات التداول والعديد من الجوانب المشتركة الأخرى اللازمة لإنشاء نظام التداول النهائي.


بسبب وظيفتي وعائلتي ، لم أجد الوقت الكافي لتحسين OJTS بعد الآن. أنا مستمر بتحديث قسم الروابط أدناه الذي سيرشدك إلى مشاريع جافا مفتوحة المصدر أكثر نشاطًا في هذا المجال ، مع ذلك.


في الواقع كنتيجة لاهتمامي بديناميكيات أسواق الأسهم ، بدأت رحلة في التفاصيل الأعمق للاقتصاد الوطني لفهم أسعار صرف العملات. يقودني هذا الموضوع أخيراً إلى دراسة أعمق للمال في حد ذاته كوحدة متريّة نستخدمها في الاقتصاد لقياس "القيمة" أو "النجاح" أو "المنفعة". تبين أن هذا الموضوع مثير للاهتمام للغاية ولكن في نفس الوقت كان من الصعب العثور على أي معلومات حول كيفية عمل نظامنا النقدي. يرحل ويسأل الناس من أين يأتي المال ، من الذي يقوم بإنشائه وما الذي يحدد قيمته. ستلاحظ أنه حتى الأشخاص الذين لديهم درجة الماجستير أو الدكتوراه. في الاقتصاد لن نعرف هذه التفاصيل. أوه ، نعم ، سوف يجيبون ببعض المصطلحات الفنية الخفية ، لكنهم لن يتمكنوا من رسم مخطط بسيط يوضح العملية.


أفادت التقارير أن ج. ويلز قد قال:


"عادةً ما يُعترف بكتابة العملة على أنها أمر مرفوض ، بل يكاد يكون غير لائق ، يحث المحررون الكاتبة بشكل يكاد لا يكتفي بالكتابة عن المال ، ليس لأنه موضوع غير مثير للاهتمام ، بل لأنه كان دائمًا مثيرًا للقلق بشكل كبير". ".


أقترح على أي شخص يعيش في مجتمع ديمقراطي أن يقرأ عن هذا الموضوع. يؤثر على حياتنا كل يوم إلى حد لا يمكن أن يكون مبالغا فيه! في رأيي ، يجب أن يعرف كل مواطن في بلد ديمقراطي في هذا العالم من أين تأتي أموالنا. على الأرجح أنك أتيت إلى هذا الموقع للبحث عن الأدوات التي تساعدك في زيادة ثروتك النقدية. لفهم وحدة "الأموال" المترية (بغض النظر عما إذا كان الدولار أو اليورو) سيكون عنصرا هاما في مجموعة الأدوات الخاصة بك لكسب المال.


إذا كان لديك القليل من الوقت ولا تستطيع إلا أن تقرأ كتابًا واحدًا عن هذا الموضوع ، فأقترح أن تقرأه Wealth، Virtual Wealth and Debt by Frederick Soddy. تمكنت من شراء نسخة مستعملة عبر أمازون بمبلغ 23.48 دولار ، ولكن هناك أيضًا إصدارًا عبر الإنترنت. سوف تحتاج إلى البرنامج المساعد DjVu لقراءته. نُشر هذا الكتاب في الأصل عام 1929 ، لكنه لا يزال يصف الحقائق الفعلية بشكل جيد. حتى لو كنت لا أتفق مع جميع النتائج التي توصل إليها فريدريك سودي ، فإن أعماله تثير الفكر وستقودك إلى طرح الأسئلة الصحيحة.


الإصدارات ، Bugfixes والمستندات المحدثة.


أنا أحقق في كيفية جعل OJTS أكثر توافقا مع جهود نظام تجارة جافا الأخرى.


هناك ويكي جديد متاح على ITSdoc. org مع التركيز على توزيع المعرفة في مجال الاستثمار وأنظمة التداول. الفكرة من وراء ITSdoc. org هي أن يكون لديها منصة تعاون مماثلة لـ wikipedia تساعد المجتمع على مشاركة المعرفة.


أمس أصدرت الإصدار 0.13 من مكتبة OpenJavaTradingSystem. ومن بين الميزات الجديدة: استرداد البيانات للأسهم والأموال والعملات من OnVista. تنفيذ تداول العملات والتحويلات....يتم تنفيذ الحافظات ويمكنك العمل مع الحافظات بنفس طريقة التعامل مع عناصر ورقة الأمان الواحدة. إضافة إطار عام لتطبيق الخوارزميات على سلسلة وقت السوق المالية. تحولت من قذيفة التفاعلية SISC / مخطط إلى ABCL / CommonLisp بالإضافة إلى محررها يسمى "J". تمت إضافة آلية تخزين بيانات عامة لتخزين البيانات التي تم استردادها بالفعل عبر الويب في نظام الملفات. بالإضافة إلى العديد من التحسينات الطفيفة إذا كنت مهتمًا بهذا الإصدار الجديد ، فعليك البدء في قسم البداية السريعة / لقطة الشاشة. لم يتم تحديث الدليل بعد ، ولكنه قد يمنحك بعض المعلومات الأساسية القيمة إذا كنت ترغب في استخدام المكتبة في مشروعك. يجب تحديث الوثائق قريبا.


كابل بيانات.


وثائق تصف الأجزاء الداخلية للمشروع. Java Data Objects و Interface documentation.


& gt؛ & gt؛ HTML & gt؛ & gt؛ مشروع توثيق نظام استثمار وتجارة PDF.


تقنية.


كتل البناء الطرف الثالث المستخدمة في هذا المشروع.


HSQLDB هو محرك قاعدة البيانات المشحون بالمشروع بحيث يمكنك البدء فوراً باستخدام OJTS بدون تثبيت قاعدة بيانات طرف ثالث. ولكن إذا كنت تخطط لاستخدام قاعدة بيانات متوافقة مع SQL92 أخرى ، فهذا خيار تكوين. الخروع (الترخيص: الترخيص Exolab)


Castor هو إطار ربط بيانات مفتوح المصدر لـ Java [tm]. إنه أقصر مسار بين كائنات Java ومستندات XML والجداول العلائقية. يوفر Castor ربط Java-to-XML واستمرارية Java-to-SQL والمزيد. Castor Doclet (الترخيص: GNU LGPL v2.1)


جافا doclet لتوليد كل من رسم الخرائط وملفات DDL ل Castor JDO و Castor XML. TestMaker (ترخيص: TestMaker ترخيص مفتوح المصدر)


من مشروع TestMaker فقط يتم استخدام تنفيذ البروتوكولات مثل HTTP أو HTTPS لجمع البيانات من الويب. jCookie (الترخيص: GNU LGPL v2.1)


مكتبة jCookie ضرورية لمكتبات TestMaker للعمل. htmlparser (الترخيص: GNU LGPL v2.1)


يتم استخدام مكتبة htmlparser لاستخراج البيانات من موارد الويب. ABCL / CommonLisp (الترخيص: GNU GPL v2)


يستخدم ABCL (الدب المسلم Lisp) لتطبيق القلب الخوارزمي للمشروع في لغة البرمجة اللغوية العامة ANSI المشتركة. JFreeChart (الترخيص: GNU LGPL v2.1)


يستخدم JFreeChart لتصور البيانات المالية في شكل رسوم بيانية. JSci (الترخيص: GNU LGPL v2.1)


يستبدل Joda Time فصول JDK الأصلية للتاريخ والوقت.


روابط لمشاريع أخرى.


قد تكون مجموعة JavaTraders Google أفضل إدخال لك للتعرف على أنظمة وأدوات التداول الأخرى القائمة على Java.


رمز المشروع مرخص بموجب شروط LGPL وجميع الوثائق التي تجدها في هذا المشروع مرخصة بموجب شروط FDL.


ترميز أنظمة التداول: مرحلة الترميز.


جوستين كوبر.


إذا البارات العلامة & lt ؛ 100 ثم خروج


إذا كانت maCurrent و GT. maPrior بعد ذلك.


إذا كانت maCurrent & lt؛ maPrior بعد ذلك.


بعد إلقاء نظرة سريعة على هذا الرمز ، يجب عليك التعرف على بعض العناصر التي تطرقنا إليها في مرحلة التصميم. على سبيل المثال ، يجب عليك التعرف على تنسيق If / Then الذي استخدمناه عند إنشاء التصميم الخاص بنا. للحصول على فهم أفضل لهذا الرمز ، دعنا نحلله ونحلل كل جزء:


لاحظ أن نقطة جني الربح هي أمر يحدده المستخدمون عند إضافة نظام التداول إلى مخططاتهم. لاحظ أيضًا أننا نقوم بالشراء بسعر الشراء والبيع بسعر العرض - وهذه ميزة رئيسية ، خاصة عند إنشاء نظام للأسهم.


وهناك لديك - العظام العارية لما يبدو عليه رمز نظام التداول. يرجى ملاحظة أن الكود أعلاه ليس نظام تداول كامل ، لأنه لا يتضمن أي أوامر لإغلاق المراكز المفتوحة. يمكن تنفيذ هذه الجوانب الإضافية باستخدام تنسيق مشابه للرمز الذي عرضناه.


خلق تجربة تداول قوية.


تواصل مباشرة مع TD Ameritrade من خلال واجهة برمجة التطبيقات القوية (API) للحصول على تجربة أبسط وقوية.


تداول بالطريقة التي تريدها.


سواء كنت تمتلك برنامجًا تجاريًا أو متداولًا تلقائيًا أو مطورًا كميًا ، يمكنك الاتصال مباشرةً بـ TD Ameritrade من خلال واجهة برمجة التطبيقات القوية. تسمح واجهة برمجة التطبيقات للمطورين بتمكين برامجهم من الاتصال بـ TD Ameritrade للتداول والبيانات وإدارة الحسابات.


يعمل TD Ameritrade بشكل وثيق مع المطورين الذين يستخدمون API ويوفر الدعم الفني المخصص لمجتمع API.


واجهة برمجة التطبيقات هي لغة مستقلة وبسيطة وقوية. تشمل ميزات API الخاصة بـ TD Ameritrade &:


التداول - إرسال وإلغاء وتعديل أوامر البيانات المتدفقة - المستوى الأول والمستوى الثاني والأخبار والنشاط البيانات التاريخية - معلومات يومية وحسابات يومية - أرصدة ومواقع ومعاملات دعم متعدد المنتجات - الأسهم والخيارات وصناديق الاستثمار المتداولة وصناديق الاستثمار المشترك باكرات كود عينة - يوفر دمج سهل في بيئات برمجة متنوعة وثائق شاملة - وصف كامل ووثائق واضحة متوفر دعم عملاء متميز - يتوفر متخصصون متخصصون في API لتقديم الدعم الكامل لأسئلتكم التقنية.


الربط أصبح أسهل. هل ترغب في دمج تطبيق التداول الخاص بك مع TD Ameritrade؟ راسلنا بالبريد الإلكتروني للبدء.


واجهة برمجة التطبيقات عبارة عن بروتوكول خالص - ولا تتطلب أي برامج أخرى لتشغيلها جنبًا إلى جنب مع برنامجك. سوف يتصل برنامجك مباشرة بخوادم TD Ameritrade من أجل تشغيل سلس وسلس.


مرنة وشاملة.


دعم مرن مع خدمة متميزة.


ما ينبغي أن يكون خدماتك المالية المالية.


شاهد ما يميزنا عن البقية مع أهم 6 أسباب لاختيار TD Ameritrade.


قارن TD Ameritrade مع شركات الخدمات المالية الرائدة الأخرى.


أفضل للاستثمار على المدى الطويل.


على مدار خمس سنوات متتالية ، احتلنا المرتبة الأولى في الاستثمار طويل الأجل في استطلاع Broker لعام 2017 عبر الإنترنت.


تحقق من خلفية TD Ameritrade على BrokerCheck FINRA.


تداول بدون عمولة لمدة 60 يومًا بالإضافة إلى الحصول على 600 دولار * تفاصيل العرض.


# 1 للاستثمار طويل الأجل.


تقلبات السوق والحجم وتوافر النظام قد يؤخر الوصول إلى الحساب وعمليات الإعدام التجارية.


أنت مسؤول عن جميع الصفقات التي تم إدخالها في حساب TD Ameritrade الخاص بك ، بما في ذلك التداول الآلي أو المبرمج المبرمج عبر API. خدمات الوساطة التي تقدمها TD Ameritrade، Inc.


لا تفرض TD Ameritrade رسومًا على النظام الأساسي أو الصيانة أو عدم النشاط. لا تزال العمولات ورسوم الخدمات ورسوم الاستثناء سارية. يرجى مراجعة رسوم العمولة والسمسرة لدينا للحصول على التفاصيل.


تتأثر أسعار التنفيذ والسرعة والسيولة بالعديد من العوامل ، بما في ذلك تقلبات السوق وحجم ونوع النظام ومراكز السوق المتاحة.


أخبار الجرائد و أسعار NASDAQ من المستوى الثاني مجانية للمشتركين غير المحترفين. الوصول إلى البيانات في الوقت الحقيقي يخضع لقبول اتفاقات الصرف. الوصول المهني والرسوم تختلف. لمزيد من التفاصيل ، راجع عمولتنا ورسوم السمسرة.


TD Ameritrade، Inc. ، عضو FINRA / SIPC. هذا ليس عرضًا أو استدراجًا في أي اختصاص قضائي حيث لا يُسمح لنا بممارسة الأعمال. TD Ameritrade هي علامة تجارية مملوكة ملكية مشتركة لشركة TD Ameritrade IP Company، Inc و Toronto-Dominion Bank. &نسخ؛ 2017 TD Ameritrade.


QuantStart.


انضم إلى بوابة العضوية الخاصة في Quantcademy التي تلبي احتياجات مجتمع تجارة الكميات بالتجزئة سريع النمو. ستجد مجموعة من المتداولين الكميين ذوي التفكير المشترك ، على استعداد للإجابة على أسئلتكم التجارية الأكثر إلحاحًا.


تحقق من كتابي الإلكتروني على التداول الكمي حيث أعلمك كيفية بناء استراتيجيات تداول منتظمة مربحة مع أدوات بايثون ، من الصفر.


ألق نظرة على كتابي الإلكتروني الجديد حول استراتيجيات التداول المتقدمة باستخدام تحليل السلاسل الزمنية ، والتعلم الآلي وإحصائيات بايزي ، مع بايثون ور.


بقلم مايكل هالز مور في 26 يوليو 2013.


أحد أكثر الأسئلة المتكررة التي أتلقىها في كيس بريد QS هو "ما هي أفضل لغة برمجة للتداول الحسابي؟". الإجابة المختصرة هي أنه لا توجد لغة "أفضل". معلمات الطريقة والأداء والنمطية والتطوير والمرونة والتكلفة يجب أن تؤخذ في الاعتبار. ستوضح هذه المقالة المكونات الضرورية لمعمارية نظام التداول الخوارزمي وكيف تؤثر القرارات المتعلقة بالتنفيذ على اختيار اللغة.


أولا ، سيتم النظر في المكونات الرئيسية لنظام التداول الخوارزمي ، مثل أدوات البحث ، ومحفظة المحفظة ، ومدير المخاطر ومحرك التنفيذ. في وقت لاحق ، سيتم فحص استراتيجيات التداول المختلفة وكيف تؤثر على تصميم النظام. على وجه الخصوص سوف يتم مناقشة تواتر التداول وحجم التداول المحتمل.


بمجرد اختيار طريقة التداول ، من الضروري تصميم النظام بأكمله. وهذا يشمل اختيار الأجهزة ، ونظام (أنظمة) التشغيل ومرونة النظام ضد الأحداث النادرة ، التي يحتمل أن تكون كارثية. في حين يجري النظر في الهندسة المعمارية ، يجب إيلاء الاعتبار الواجب للأداء - لكل من أدوات البحث وكذلك بيئة التنفيذ المباشر.


ما هو نظام التداول الذي تحاول القيام به؟


قبل اتخاذ قرار بشأن "أفضل" اللغة التي يتم بها كتابة نظام التداول الآلي ، من الضروري تحديد المتطلبات. هل سيستند النظام إلى التنفيذ البحت؟ هل سيتطلب النظام وحدة إدارة المخاطر أو محفظة الأوراق المالية؟ هل سيتطلب النظام جهازًا خلفيًا عالي الأداء؟ بالنسبة لمعظم الاستراتيجيات ، يمكن تقسيم نظام التداول إلى قسمين: البحث وتوليد الإشارة.


يهتم البحث بتقييم أداء الطريقة على البيانات التاريخية. تُعرف عملية تقييم طريقة التداول على بيانات السوق السابقة باسم اختبار التبادل الخلفي (backtesting). إن حجم البيانات والتعقيد الخوارزمي سيكون لهما تأثير كبير على الكثافة الحاسوبية للماضي. غالبًا ما تكون سرعة وحدة المعالجة المركزية والتزامن هما العاملان المحدودان في تحسين سرعة تنفيذ البحث.


يهتم جيل الإشارة بتوليد مجموعة من إشارات التداول من خوارزمية وإرسال مثل هذه الأوامر إلى السوق ، عادة عن طريق الوساطة. بالنسبة إلى استراتيجيات معينة ، يلزم وجود مستوى عالٍ من الأداء. غالبًا ما تكون مشكلات I / O مثل عرض النطاق الترددي للشبكة ووقت الاستجابة العامل المحدود في تحسين أنظمة التنفيذ. هل ترغب في دمج تطبيق التداول الخاص بك مع TD Ameritrade؟ راسلنا بالبريد الإلكتروني للبدء.


واجهة برمجة التطبيقات عبارة عن بروتوكول خالص - ولا تتطلب أي برامج أخرى لتشغيلها جنبًا إلى جنب مع برنامجك. سوف يتصل برنامجك مباشرة بخوادم TD Ameritrade من أجل تشغيل سلس وسلس.


مرنة وشاملة.


دعم مرن مع خدمة متميزة.


ما ينبغي أن يكون خدماتك المالية المالية.


شاهد ما يميزنا عن البقية مع أهم 6 أسباب لاختيار TD Ameritrade.


قارن TD Ameritrade مع شركات الخدمات المالية الرائدة الأخرى.


أفضل للاستثمار على المدى الطويل.


على مدار خمس سنوات متتالية ، احتلنا المرتبة الأولى في الاستثمار طويل الأجل في استطلاع Broker لعام 2017 عبر الإنترنت.


تحقق من خلفية TD Ameritrade على BrokerCheck FINRA.


تداول بدون عمولة لمدة 60 يومًا بالإضافة إلى الحصول على 600 دولار * تفاصيل العرض.


# 1 للاستثمار طويل الأجل.


تقلبات السوق والحجم وتوافر النظام قد يؤخر الوصول إلى الحساب وعمليات الإعدام التجارية.


أنت مسؤول عن جميع الصفقات التي تم إدخالها في حساب TD Ameritrade الخاص بك ، بما في ذلك التداول الآلي أو المبرمج المبرمج عبر API. خدمات الوساطة التي تقدمها TD Ameritrade، Inc.


لا تفرض TD Ameritrade رسومًا على النظام الأساسي أو الصيانة أو عدم النشاط. لا تزال العمولات ورسوم الخدمات ورسوم الاستثناء سارية. يرجى مراجعة رسوم العمولة والسمسرة لدينا للحصول على التفاصيل.


تتأثر أسعار التنفيذ والسرعة والسيولة بالعديد من العوامل ، بما في ذلك تقلبات السوق وحجم ونوع النظام ومراكز السوق المتاحة.


أخبار الجرائد و أسعار NASDAQ من المستوى الثاني مجانية للمشتركين غير المحترفين. الوصول إلى البيانات في الوقت الحقيقي يخضع لقبول اتفاقات الصرف. الوصول المهني والرسوم تختلف. لمزيد من التفاصيل ، راجع عمولتنا ورسوم السمسرة.


TD Ameritrade، Inc. ، عضو FINRA / SIPC. هذا ليس عرضًا أو استدراجًا في أي اختصاص قضائي حيث لا يُسمح لنا بممارسة الأعمال. TD Ameritrade هي علامة تجارية مملوكة ملكية مشتركة لشركة TD Ameritrade IP Company، Inc و Toronto-Dominion Bank. &نسخ؛ 2017 TD Ameritrade.


QuantStart.


انضم إلى بوابة العضوية الخاصة في Quantcademy التي تلبي احتياجات مجتمع تجارة الكميات بالتجزئة سريع النمو. ستجد مجموعة من المتداولين الكميين ذوي التفكير المشترك ، على استعداد للإجابة على أسئلتكم التجارية الأكثر إلحاحًا.


تحقق من كتابي الإلكتروني على التداول الكمي حيث أعلمك كيفية بناء استراتيجيات تداول منتظمة مربحة مع أدوات بايثون ، من الصفر.


ألق نظرة على كتابي الإلكتروني الجديد حول استراتيجيات التداول المتقدمة باستخدام تحليل السلاسل الزمنية ، والتعلم الآلي وإحصائيات بايزي ، مع بايثون ور.


بقلم مايكل هالز مور في 26 يوليو 2013.


أحد أكثر الأسئلة المتكررة التي أتلقىها في كيس بريد QS هو "ما هي أفضل لغة برمجة للتداول الحسابي؟". الإجابة المختصرة هي أنه لا توجد لغة "أفضل". معلمات الطريقة والأداء والنمطية والتطوير والمرونة والتكلفة يجب أن تؤخذ في الاعتبار. ستوضح هذه المقالة المكونات الضرورية لمعمارية نظام التداول الخوارزمي وكيف تؤثر القرارات المتعلقة بالتنفيذ على اختيار اللغة.


أولا ، سيتم النظر في المكونات الرئيسية لنظام التداول الخوارزمي ، مثل أدوات البحث ، ومحفظة المحفظة ، ومدير المخاطر ومحرك التنفيذ. في وقت لاحق ، سيتم فحص استراتيجيات التداول المختلفة وكيف تؤثر على تصميم النظام. على وجه الخصوص سوف يتم مناقشة تواتر التداول وحجم التداول المحتمل.


بمجرد اختيار طريقة التداول ، من الضروري تصميم النظام بأكمله. وهذا يشمل اختيار الأجهزة ، ونظام (أنظمة) التشغيل ومرونة النظام ضد الأحداث النادرة ، التي يحتمل أن تكون كارثية. في حين يجري النظر في الهندسة المعمارية ، يجب إيلاء الاعتبار الواجب للأداء - لكل من أدوات البحث وكذلك بيئة التنفيذ المباشر.


ما هو نظام التداول الذي تحاول القيام به؟


قبل اتخاذ قرار بشأن "أفضل" اللغة التي يتم بها كتابة نظام التداول الآلي ، من الضروري تحديد المتطلبات. هل سيستند النظام إلى التنفيذ البحت؟ هل سيتطلب النظام وحدة إدارة المخاطر أو محفظة الأوراق المالية؟ هل سيتطلب النظام جهازًا خلفيًا عالي الأداء؟ بالنسبة لمعظم الاستراتيجيات ، يمكن تقسيم نظام التداول إلى قسمين: البحث وتوليد الإشارة.


يهتم البحث بتقييم أداء الطريقة على البيانات التاريخية. تُعرف عملية تقييم طريقة التداول على بيانات السوق السابقة باسم اختبار التبادل الخلفي (backtesting). إن حجم البيانات والتعقيد الخوارزمي سيكون لهما تأثير كبير على الكثافة الحاسوبية للماضي. غالبًا ما تكون سرعة وحدة المعالجة المركزية والتزامن هما العاملان المحدودان في تحسين سرعة تنفيذ البحث.


يهتم جيل الإشارة بتوليد مجموعة من إشارات التداول من خوارزمية وإرسال مثل هذه الأوامر إلى السوق ، عادة عن طريق الوساطة. بالنسبة إلى استراتيجيات معينة ، يلزم وجود مستوى عالٍ من الأداء. غالبًا ما تكون مشكلات I / O مثل عرض النطاق الترددي للشبكة ووقت الاستجابة العامل المحدود في تحسين أنظمة التنفيذ.......من السهل إنشاء إستراتيجيات مستقرة حيث يمكن بسهولة تعديل آلية إنشاء المحفظة وإدارة المخاطر للتعامل مع أنظمة متعددة. وبالتالي ينبغي اعتبارها مكونات أساسية في بداية تصميم نظام التداول الخوارزمي.


وتتمثل وظيفة نظام محفظة الأوراق المالية في اتخاذ مجموعة من عمليات التداول المرغوبة وإنتاج مجموعة من الصفقات الفعلية التي تقلل من الخلل ، وتحافظ على التعرض للعوامل المختلفة (مثل القطاعات ، ودروس الأصول ، والتقلبات ، وغير ذلك) ، وتحسين تخصيص رأس المال لمختلف استراتيجيات في محفظة.


غالباً ما ينقص بناء الحافظة إلى مشكلة الجبر الخطي (مثل عامل المصفوفة) وبالتالي يعتمد الأداء بشكل كبير على فعالية تطبيق الجبر الخطي العددى المتوفر. تتضمن المكتبات الشائعة uBLAS و LAPACK و NAG لـ C ++. تمتلك MatLab أيضًا عمليات مصفوفة محسّنة على نطاق واسع. تستخدم بايثون NumPy / SciPy لمثل هذه الحسابات. تتطلب المحفظة المتوازنة بشكل متكرر مكتبة مصفوفة مجمعة (ومحسنة بشكل جيد!) لتنفيذ هذه الخطوة ، حتى لا تختنق نظام التداول.


تعتبر إدارة المخاطر جزءًا مهمًا للغاية من نظام التداول الخوارزمي. يمكن أن تأتي المخاطر بأشكال عديدة: زيادة التقلبات (على الرغم من أن ذلك قد يكون مرغوبًا لاستراتيجيات معينة!) ، وزيادة الارتباط بين فئات الأصول ، والتخلف عن الطرف الآخر ، وانقطاع الخادم ، وأحداث "البجعة السوداء" ، وأخطاء الخلل في رمز التداول ، على سبيل المثال لا الحصر.


تحاول عناصر إدارة المخاطر توقع وتوقع التقلبات المفرطة والارتباط بين فئات الأصول وتأثيراتها اللاحقة على رأس المال المتداول. في كثير من الأحيان هذا يقلل إلى مجموعة من الحسابات الإحصائية مثل "اختبارات الإجهاد" مونتي كارلو. وهذا يشبه إلى حد بعيد الاحتياجات الحسابية لمحرك تسعير المشتقات ، وبالتالي سيكون محصلاً في وحدة المعالجة المركزية. هذه المحاكيات متوازنة للغاية (انظر أدناه) ، وإلى حد ما ، من الممكن "رمي الأجهزة على المشكلة".


وتتمثل وظيفة نظام التنفيذ في تلقي إشارات تداول مفلترة من مكونات إدارة المحافظ والمخاطرة وإرسالها إلى شركة وساطة أو غيرها من وسائل الوصول إلى الأسواق. بالنسبة لغالبية استراتيجيات تداول خوارزمية البيع بالتجزئة ، ينطوي ذلك على اتصال API أو FIX إلى وسيط مثل Interactive Brokers. تتضمن الاعتبارات الأساسية عند اتخاذ قرار بشأن لغة ما جودة واجهة برمجة التطبيقات ، ومدى إتاحة اللغة لواجهة برمجة التطبيقات ، وتكرار التنفيذ والانزلاق المتوقع.


تشير "جودة" واجهة برمجة التطبيقات (API) إلى مدى توثيقها ، ونوع الأداء الذي توفره ، وما إذا كانت تحتاج إلى برنامج مستقل يمكن الوصول إليه أو ما إذا كان يمكن إنشاء بوابة بطريقة غير مقطوعة الرأس (بمعنى عدم وجود واجهة المستخدم الرسومية). في حالة Interactive Brokers ، يجب تشغيل أداة Trader WorkStation في بيئة GUI من أجل الوصول إلى API الخاص بهم. اضطررت مرة واحدة لتثبيت إصدار سطح المكتب أوبونتو على خادم سحابة الأمازون للوصول إلى وسطاء التفاعلية عن بعد ، فقط لهذا السبب!


توفر معظم واجهات برمجة التطبيقات واجهة C ++ و / أو Java. عادة ما يكون الأمر متروك للمجتمع لتطوير أغلفة خاصة بلغة C # و Python و R و Excel و MatLab. لاحظ أنه مع كل مكون إضافي إضافي يستخدم (خاصة مغلفة واجهة برمجة التطبيقات) ، هناك نطاق للاحتيال في النظام. اختبر دائمًا المكونات الإضافية من هذا النوع وتأكد من الحفاظ عليها بنشاط. المقياس الجدير بالاهتمام هو معرفة عدد التحديثات الجديدة التي تم إجراؤها على التعليمات البرمجية في الأشهر الأخيرة.


يعتبر تكرار التنفيذ ذو أهمية قصوى في خوارزمية التنفيذ. لاحظ أنه قد يتم إرسال المئات من الطلبات في كل دقيقة ، وحيث أن هذا الأداء أمر بالغ الأهمية. سيتم تكبد الانزلاق من خلال نظام تنفيذ سيء الأداء وهذا سيكون له تأثير كبير على الربحية.


تعتبر اللغات المكتوبة بشكل أساسي (انظر أدناه) مثل C ++ / Java مثالية بشكل عام للتنفيذ ولكن هناك مفاضلة في وقت التطوير والاختبار وسهولة الصيانة. إن اللغات التي يتم كتابتها ديناميكيًا ، مثل Python و Perl ، أصبحت الآن بشكل عام "سريعة بما فيه الكفاية". تأكد دائمًا من أن المكونات مصممة بطريقة معيارية (انظر أدناه) بحيث يمكن "تبديلها" خارجًا كلما كان مقياس النظام.


التخطيط المعماري وعملية التطوير.


تمت مناقشة مكونات نظام التداول ومتطلباته من حيث التردد والحجم أعلاه ، ولكن البنية التحتية للنظام لم تتم تغطيتها بعد. ومن المرجح أن يكون هؤلاء الذين يعملون كمتاجر للبيع بالتجزئة أو يعملون في صندوق صغير "يرتدون العديد من القبعات". سيكون من الضروري تغطية نموذج ألفا ، وإدارة المخاطر ومعايير التنفيذ ، وكذلك التنفيذ النهائي للنظام. قبل الخوض في لغات معينة ، سيتم مناقشة تصميم بنية النظام المثلى.


فصل الاهتمامات.


أحد أهم القرارات التي يجب اتخاذها في البداية هو كيفية "فصل مخاوف" نظام التداول. من السهل إنشاء إستراتيجيات مستقرة حيث يمكن بسهولة تعديل آلية إنشاء المحفظة وإدارة المخاطر للتعامل مع أنظمة متعددة. وبالتالي ينبغي اعتبارها مكونات أساسية في بداية تصميم نظام التداول الخوارزمي.


وتتمثل وظيفة نظام محفظة الأوراق المالية في اتخاذ مجموعة من عمليات التداول المرغوبة وإنتاج مجموعة من الصفقات الفعلية التي تقلل من الخلل ، وتحافظ على التعرض للعوامل المختلفة (مثل القطاعات ، ودروس الأصول ، والتقلبات ، وغير ذلك) ، وتحسين تخصيص رأس المال لمختلف استراتيجيات في محفظة.


غالباً ما ينقص بناء الحافظة إلى مشكلة الجبر الخطي (مثل عامل المصفوفة) وبالتالي يعتمد الأداء بشكل كبير على فعالية تطبيق الجبر الخطي العددى المتوفر. تتضمن المكتبات الشائعة uBLAS و LAPACK و NAG لـ C ++. تمتلك MatLab أيضًا عمليات مصفوفة محسّنة على نطاق واسع. تستخدم بايثون NumPy / SciPy لمثل هذه الحسابات. تتطلب المحفظة المتوازنة بشكل متكرر مكتبة مصفوفة مجمعة (ومحسنة بشكل جيد!) لتنفيذ هذه الخطوة ، حتى لا تختنق نظام التداول.


تعتبر إدارة المخاطر جزءًا مهمًا للغاية من نظام التداول الخوارزمي. يمكن أن تأتي المخاطر بأشكال عديدة: زيادة التقلبات (على الرغم من أن ذلك قد يكون مرغوبًا لاستراتيجيات معينة!) ، وزيادة الارتباط بين فئات الأصول ، والتخلف عن الطرف الآخر ، وانقطاع الخادم ، وأحداث "البجعة السوداء" ، وأخطاء الخلل في رمز التداول ، على سبيل المثال لا الحصر.


تحاول عناصر إدارة المخاطر توقع وتوقع التقلبات المفرطة والارتباط بين فئات الأصول وتأثيراتها اللاحقة على رأس المال المتداول. في كثير من الأحيان هذا يقلل إلى مجموعة من الحسابات الإحصائية مثل "اختبارات الإجهاد" مونتي كارلو. وهذا يشبه إلى حد بعيد الاحتياجات الحسابية لمحرك تسعير المشتقات ، وبالتالي سيكون محصلاً في وحدة المعالجة المركزية. هذه المحاكيات متوازنة للغاية (انظر أدناه) ، وإلى حد ما ، من الممكن "رمي الأجهزة على المشكلة".


وتتمثل وظيفة نظام التنفيذ في تلقي إشارات تداول مفلترة من مكونات إدارة المحافظ والمخاطرة وإرسالها إلى شركة وساطة أو غيرها من وسائل الوصول إلى الأسواق. بالنسبة لغالبية استراتيجيات تداول خوارزمية البيع بالتجزئة ، ينطوي ذلك على اتصال API أو FIX إلى وسيط مثل Interactive Brokers. تتضمن الاعتبارات الأساسية عند اتخاذ قرار بشأن لغة ما جودة واجهة برمجة التطبيقات ، ومدى إتاحة اللغة لواجهة برمجة التطبيقات ، وتكرار التنفيذ والانزلاق المتوقع.


تشير "جودة" واجهة برمجة التطبيقات (API) إلى مدى توثيقها ، ونوع الأداء الذي توفره ، وما إذا كانت تحتاج إلى برنامج مستقل يمكن الوصول إليه أو ما إذا كان يمكن إنشاء بوابة بطريقة غير مقطوعة الرأس (بمعنى عدم وجود واجهة المستخدم الرسومية). في حالة Interactive Brokers ، يجب تشغيل أداة Trader WorkStation في بيئة GUI من أجل الوصول إلى API الخاص بهم. اضطررت مرة واحدة لتثبيت إصدار سطح المكتب أوبونتو على خادم سحابة الأمازون للوصول إلى وسطاء التفاعلية عن بعد ، فقط لهذا السبب!


توفر معظم واجهات برمجة التطبيقات واجهة C ++ و / أو Java. عادة ما يكون الأمر متروك للمجتمع لتطوير أغلفة خاصة بلغة C # و Python و R و Excel و MatLab. لاحظ أنه مع كل مكون إضافي إضافي يستخدم (خاصة مغلفة واجهة برمجة التطبيقات) ، هناك نطاق للاحتيال في النظام. اختبر دائمًا المكونات الإضافية من هذا النوع وتأكد من الحفاظ عليها بنشاط. المقياس الجدير بالاهتمام هو معرفة عدد التحديثات الجديدة التي تم إجراؤها على التعليمات البرمجية في الأشهر الأخيرة.


يعتبر تكرار التنفيذ ذو أهمية قصوى في خوارزمية التنفيذ. لاحظ أنه قد يتم إرسال المئات من الطلبات في كل دقيقة ، وحيث أن هذا الأداء أمر بالغ الأهمية. سيتم تكبد الانزلاق من خلال نظام تنفيذ سيء الأداء وهذا سيكون له تأثير كبير على الربحية.


تعتبر اللغات المكتوبة بشكل أساسي (انظر أدناه) مثل C ++ / Java مثالية بشكل عام للتنفيذ ولكن هناك مفاضلة في وقت التطوير والاختبار وسهولة الصيانة. إن اللغات التي يتم كتابتها ديناميكيًا ، مثل Python و Perl ، أصبحت الآن بشكل عام "سريعة بما فيه الكفاية". تأكد دائمًا من أن المكونات مصممة بطريقة معيارية (انظر أدناه) بحيث يمكن "تبديلها" خارجًا كلما كان مقياس النظام.


التخطيط المعماري وعملية التطوير.


تمت مناقشة مكونات نظام التداول ومتطلباته من حيث التردد والحجم أعلاه ، ولكن البنية التحتية للنظام لم تتم تغطيتها بعد. ومن المرجح أن يكون هؤلاء الذين يعملون كمتاجر للبيع بالتجزئة أو يعملون في صندوق صغير "يرتدون العديد من القبعات". سيكون من الضروري تغطية نموذج ألفا ، وإدارة المخاطر ومعايير التنفيذ ، وكذلك التنفيذ النهائي للنظام. قبل الخوض في لغات معينة ، سيتم مناقشة تصميم بنية النظام المثلى.


فصل الاهتمامات.


أحد أهم القرارات التي يجب اتخاذها في البداية هو كيفية "فصل مخاوف" نظام التداول.......Translating...تحدث حالة استخدام شائعة في تطوير الويب عند أخذ البيانات من قاعدة بيانات علائقية مدعومة بالقرص ووضعها في الذاكرة. لا يلزم أي طلبات لاحقة للبيانات "الوصول إلى قاعدة البيانات" وبالتالي يمكن أن تكون مكاسب الأداء كبيرة.


للتداول يمكن أن يكون التخزين المؤقت مفيد للغاية. على سبيل المثال ، يمكن تخزين الحالة الحالية لمحفظة الطريقة في ذاكرة تخزين مؤقت إلى أن تتم إعادة توازنها ، بحيث لا تحتاج إلى إعادة إنشاء القائمة عند كل حلقة من خوارزمية التداول. ومن المرجح أن يكون هذا التجديد عملية إدخال / إخراج عالية لوحدة المعالجة المركزية أو القرص.


ومع ذلك ، التخزين المؤقت لا تخلو من القضايا الخاصة بها. يمكن أن يؤدي تجديد بيانات ذاكرة التخزين المؤقت دفعة واحدة ، نظرًا لطبيعة تخزين ذاكرة التخزين المؤقت المتغيرة ، إلى زيادة الطلب على البنية الأساسية. وهناك مسألة أخرى هي تراكم الكلاب ، حيث يتم تنفيذ أجيال متعددة من نسخة مخبأة جديدة تحت حمولة عالية للغاية ، مما يؤدي إلى فشل سلسلة من المتتالية.


التخصيص الديناميكي للذاكرة عملية مكلفة في تنفيذ البرامج. وبالتالي ، من الضروري أن تكون تطبيقات التداول عالية الأداء على دراية جيدة بكيفية تخصيص الذاكرة وإلغاء تخصيصها أثناء تدفق البرنامج. تقوم معايير لغة أحدث مثل Java و C # و Python بتنفيذ جمع البيانات المهملة تلقائيًا ، والذي يشير إلى إلغاء تخصيص الذاكرة المخصصة ديناميكيًا عندما تخرج الكائنات من نطاقها.


جمع القمامة مفيد للغاية أثناء التطوير لأنه يقلل من الأخطاء ويسهل القراءة. ومع ذلك ، غالبًا ما يكون دون المستوى الأمثل لبعض استراتيجيات التداول عالية التردد. عادةً ما يتم طلب تجميع البيانات المهملة المخصصة لهذه الحالات. في Java ، على سبيل المثال ، من خلال توليف أداة تجميع البيانات المهملة وتكوين الكومة ، يمكن الحصول على أداء عالي لاستراتيجيات HFT.


لا يوفر C ++ مجمّع garbage الأصلي ولذلك فمن الضروري معالجة كافة التخصيص / إلغاء تخصيص الذاكرة كجزء من تطبيق الكائن. بينما من المحتمل أن يكون الخطأ عرضة (مما قد يؤدي إلى مؤشرات متدلية) ، فمن المفيد للغاية أن يكون لديك تحكم دقيق في كيفية ظهور الكائنات على الكومة لبعض التطبيقات. عند اختيار لغة تأكد من دراسة كيفية عمل أداة تجميع البيانات المهملة وما إذا كان يمكن تعديلها لتحسين حالة استخدام معينة.


العديد من العمليات في أنظمة التداول الخوارزمية قابلة للتوازي. يشير هذا إلى مفهوم تنفيذ عمليات برنامجية متعددة في نفس الوقت ، أي "بالتوازي". تتضمن خوارزميات "المتوازية المحرجة" الخطوات التي يمكن حسابها بشكل مستقل بشكل مستقل عن الخطوات الأخرى. بعض العمليات الإحصائية ، مثل محاكاة مونت كارلو ، هي مثال جيد على الخوارزميات المتوازية المحرجة حيث يمكن حساب كل سحب عشوائي وعملية مسار لاحقة دون معرفة المسارات الأخرى.


الخوارزميات الأخرى متوازية جزئيا فقط. تعتبر محاكاة ديناميكية الموائع مثالاً على ذلك ، حيث يمكن تقسيم مجال الحساب الفرعي ، ولكن في نهاية المطاف يجب أن تتواصل هذه المجالات مع بعضها البعض وبالتالي تكون العمليات متسلسلة جزئياً. تخضع الخوارزميات المتوازية لقانون Amdahl ، الذي يوفر حدًا نظريًا أعلى لزيادة أداء الخوارزمية المتوازية عندما تخضع لعمليات $ N $ منفصلة (على سبيل المثال على وحدة المعالجة المركزية الأساسية أو الخيط).


لقد أصبح التوازي ذو أهمية متزايدة كوسيلة للتحسين حيث أن ركود سرعة المعالج قد أصاب بالركود ، حيث تحتوي المعالجات الحديثة على العديد من النوى التي تؤدي بها الحسابات الموازية. أدى صعود أجهزة الرسومات الاستهلاكية (في الغالب لألعاب الفيديو) إلى تطوير وحدات المعالجة الرسومية (GPUs) ، التي تحتوي على مئات "النوى" لعمليات متزامنة للغاية. هذه GPUs الآن بأسعار معقولة جدا. أدت الأطر الرفيعة المستوى ، مثل CUDA في Nvidia ، إلى اعتماد واسع النطاق في الأوساط الأكاديمية والمالية.


لا تتناسب أجهزة GPU هذه بشكل عام إلا مع الجانب البحثي للتمويل الكمي ، في حين يتم استخدام الأجهزة الأخرى الأكثر تخصصًا (بما في ذلك صفيفات البوابة القابلة للبرمجة - FPGA) لـ (U) HFT. في الوقت الحاضر ، تدعم معظم langauges الحديثة درجة التزامن / تعدد مؤشرات. وبالتالي ، فمن السهل تحسين مستوى الخاسر ، لأن جميع الحسابات مستقلة بشكل عام عن الآخرين.


يشير التدريج في هندسة البرامج وعملياتها إلى قدرة النظام على التعامل مع الأحمال المتزايدة باستمرار في شكل طلبات أكبر واستخدام أعلى للمعالج والمزيد من تخصيص الذاكرة. في التداول الخوارزمي ، تكون الطريقة قابلة للقياس إذا تمكنت من قبول كميات أكبر من رأس المال ولا تزال تحقق عوائد ثابتة. تتراكم مكدس التكنولوجيا التجارية إذا كان يمكن أن يتحمل أحجام أكبر من التجارة وزيادة الكمون ، دون اختناقات.


في حين أن الأنظمة يجب أن تكون مصممة لتوسيع نطاقها ، فمن الصعب التنبؤ مسبقًا أين سيحدث اختناق. سيساعد قطع الأشجار والاختبار والتوصيف والرصد بشكل كبير في السماح للنظام بتوسيع نطاقه. غالبًا ما يتم وصف اللغات نفسها بأنها "غير قابلة للتغيير". هذا عادة ما يكون نتيجة للتضليل ، بدلا من الحقيقة الصعبة.......Translating...Translating...تتطلب بايثون و R خطوطًا أقل بكثير من الشفرة (LOC) لتحقيق وظائف مماثلة ، ويرجع ذلك أساسًا إلى المكتبات الشاملة. علاوة على ذلك ، فإنها تسمح في الغالب بتطوير وحدة التحكم التفاعلي ، مما يقلل بشكل سريع من عملية التطوير التكرارية.


بالنظر إلى أن الوقت كمطور مطور للغاية ، وسرعة التنفيذ في كثير من الأحيان أقل من ذلك (ما لم يكن في مساحة HFT) ، يستحق الأمر النظر بشكل مكثف إلى مكدس تكنولوجيا مفتوحة المصدر. تمتلك بيثون و آر مجتمعات إنمائية مهمة وهي مدعومة بشكل جيد للغاية ، بسبب شعبيتها. الوثائق ممتازة والبق (على الأقل للمكتبات الأساسية) تبقى نادرة.


غالبًا ما تعاني الأدوات المفتوحة المصدر من عدم وجود عقد دعم تجاري مخصص وتعمل على النحو الأمثل على أنظمة ذات واجهات مستخدم أقل تسامحًا. سيكون خادم Linux النموذجي (مثل Ubuntu) غالبًا موجهًا بالكامل إلى سطر الأوامر. بالإضافة إلى ذلك ، يمكن أن تكون بايثون و R بطيئة في بعض مهام التنفيذ. هناك آليات للتكامل مع C ++ لتحسين سرعات التنفيذ ، ولكنها تتطلب بعض الخبرة في برمجة متعددة اللغات.


على الرغم من أن البرمجيات الاحتكارية ليست محصنة ضد مشكلات التبعية / الإصدارات ، إلا أنه من غير المعتاد التعامل مع إصدارات المكتبات غير الصحيحة في مثل هذه البيئات. يمكن أن تكون أنظمة التشغيل مفتوحة المصدر مثل Linux أكثر تعقيدًا.


سأقوم بتجربة رأيي الشخصي هنا وأذكر أنني أقوم ببناء جميع أدواتي التجارية باستخدام تقنيات مفتوحة المصدر. على وجه الخصوص أستخدم: أوبونتو ، ماي سل ، بايثون ، سي ++ و ر. النضج ، حجم المجتمع ، القدرة على "الحفر العميق" في حالة حدوث مشاكل وانخفاض تكلفة التكلفة الإجمالية (TCO) تفوق بكثير بساطة واجهة المستخدم الرسومية والتجهيزات الأسهل. بعد قولي هذا ، فإن Microsoft Visual Studio (خاصة لـ C ++) هي بيئة تطوير متكاملة رائعة (IDE) والتي أود أن أوصي بها أيضًا.


يشير رأس هذا القسم إلى قدرات "خارج الصندوق" للغة - ما هي المكتبات التي تحتوي عليها وكيف جيدة؟ هذا هو المكان الذي تتمتع فيه اللغات الناضجة بميزة على المتغيرات الأحدث. تمتلك كل من C ++ و Java و Python الآن مكتبات واسعة النطاق لبرمجة الشبكات ، HTTP ، تفاعل نظام التشغيل ، GUI ، التعبيرات العادية (regex) ، التكرار والخوارزميات الأساسية.


تشتهر C ++ بمكتبة القوالب القياسية (STL) التي تحتوي على ثروة من هياكل البيانات عالية الأداء والخوارزميات "مجانًا". تشتهر بيثون بكونها قادرة على التواصل مع أي نوع آخر من الأنظمة / البروتوكول (خاصة الإنترنت) ، ومعظمها من خلال مكتبتها القياسية الخاصة. يحتوي R على ثروة من الأدوات الإحصائية والإقتصادية التي تم إنشاؤها ، في حين أن MatLab هو الأمثل للغاية لأي رمز جبر خطي رقمي (والذي يمكن العثور عليه في تحسين المحفظة وتسعير المشتقات ، على سبيل المثال).


خارج المكتبات القياسية ، يستخدم C ++ مكتبة Boost ، التي تملأ "الأجزاء المفقودة" من المكتبة القياسية. في الواقع ، العديد من أجزاء Boost جعلتها في معيار TR1 ومن ثم متوفرة في مواصفات C ++ 11 ، بما في ذلك الدعم الأصلي لتعبيرات lambda والتوافق.


تمتلك بايثون مجموعة مكتبة تحليل بيانات NumPy / SciPy / Pandas عالية الأداء ، والتي اكتسبت قبولًا واسعًا لأبحاث التداول الخوارزمية. علاوة على ذلك ، توجد المكونات الإضافية عالية الأداء للوصول إلى قواعد البيانات العلائقية الرئيسية ، مثل MySQL ++ (MySQL / C ++) و JDBC (Java / MatLab) و MySQLdb (MySQL / Python) و psychopg2 (PostgreSQL / Python). يمكن لبيثون التواصل مع R عبر RPy plugin!


هناك جانب غالبًا ما يتم تجاهله في نظام التداول بينما في مرحلة البحث والتصميم الأولية هو الاتصال بواجهة وسيط API. معظم واجهات برمجة التطبيقات تدعم C ++ و Java ، ولكن بعضها يدعم C # و Python ، إما بشكل مباشر أو باستخدام رمز المجمّع المقدم من المجتمع إلى واجهات برمجة تطبيقات C ++. على وجه الخصوص ، يمكن توصيل الوسطاء التفاعليين عن طريق البرنامج المساعد IBPy. إذا كان الأداء العالي مطلوبًا ، ستدعم شركات السمسرة بروتوكول FIX.


كما هو واضح الآن ، فإن اختيار لغة (لغات) البرمجة لنظام التداول الخوارزمي ليس واضحًا ويتطلب التفكير العميق. وتتمثل الاعتبارات الرئيسية في الأداء وسهولة التطوير والمرونة والاختبار وفصل الاهتمامات والألفة والصيانة وتوافر شفرة المصدر وتكاليف الترخيص واستحقاق المكتبات.


تتمثل الفائدة من البنية المنفصلة في أنها تسمح بتوصيل اللغات بمختلف جوانب مجموعة التداول ، وعند تغير المتطلبات. نظام التداول هو أداة متطورة ومن المرجح أن أي خيارات اللغة سوف تتطور جنبا إلى جنب معها.


مجرد الابتداء بالتداول الكمي؟


3 أسباب للاشتراك في قائمة البريد الإلكتروني QuantStart:


1. دروس تجارة الكمية.


ستحصل على وصول فوري إلى دورة بريدية مجانية مكونة من 10 أجزاء معبأة بلمحات ونصائح لمساعدتك على البدء في التداول الكمي!


2. جميع أحدث محتوى.


كل أسبوع سأرسل لك غلافًا من كل النشاط على برنامج QuantStart حتى لا تفوتك أية مشاركة مرة أخرى.


نصائح حقيقية للتداول الكمي قابلة للتنفيذ بدون أي هراء....

تعليقات