لماذا تستخدم صناديق التحوط والخدمات المالية في كثير من الأحيان OCaml؟

StackOverflow https://stackoverflow.com/questions/1924367

سؤال

أثناء حديثي مع عدد من المحللين الكميين/التحوطيين، توصلت إلى استنتاج مفاده أن عددًا كبيرًا منهم يبدو أنهم يستخدمون لغة البيرة المحلية أو لغة OCaml في العديد من المهام.ما لم يستطع الكثير منهم الإجابة عليه هو السبب.

يمكنني بالتأكيد أن أفهم سبب عدم رغبتهم في استخدام C++ في معظم الأحيان، ولكن لماذا يتفوق OCaml في هذه الاستخدامات مقارنة بلغات البرمجة النصية الأخرى، مثل Python وRuby وما إلى ذلك؟

هل كانت مفيدة؟

المحلول

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

وعمل الكتاب في جين شارع كابيتال التي استثمرت بشكل كبير في التعليمات البرمجية لغة كامل الموضوعية.

تحديث : انظر أيضا موضوع <لأ href = "https://stackoverflow.com/questions/1996432/what-programming-languages-is-algorithmic-trading-software-written-in "> ما البرمجة اللغوية (ق) هو برنامج تداول حسابي مكتوب في؟ . أحد التعليقات يذكر قدم العرض يارون منسكي في جامعة كارنيجي ميلون في استخدام جين شارع كابيتال من CAML. نحو ساعة طويلة، و<م> جدا مثيرة للاهتمام.

تحديث اثنين : كتب يارون نظرة أخرى، وهذه المرة لACM قائمة الانتظار، ودعا <لأ href = "http://queue.acm.org/detail.cfm؟id=2038036" يختلط = "noreferrer نوفولو"> لغة كامل الموضوعية للجماهير .

نصائح أخرى

انظر على سبيل المثال تبادل لاطلاق النار لغات البرمجة لمقارنات السرعة:

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

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

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

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

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

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

وربما هذا هو السبب في لغة كامل الموضوعية مايكروسوفت تحييدهم عن F #

ولأنه بتوهج بسرعة (وأكثر إيجازا من C ++).

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

وتافهة الموازاة مقارنة مع بيثون / روبي؟ على الأقل هذا صحيح لF #، ولكن يجب أن يكون صحيحا لCAML / لغة كامل الموضوعية لكثير من أسباب نفسها.

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

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

وأنا لا أعمل في مكان مثل هذا، لذلك هذه هي مجرد تخمينات لماذا أنا قد تفعل ذلك في موقفهم:

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

في تجربتي Quants انها VBA (اقرأ: إكسل) مع c #، أو F # أحيانا جدا

وتحرير:

وأنا أعيد صياغة ما، لتصويت سلبي، أنا لا أعرف شخصيا من أي Quants استخدام CAML ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top