زیر ساخت معاملات الگوریتمی

  1. خانه
  2. chevron_right
  3. زیر ساخت معاملات الگوریتمی

مقدمه

معاملات الگوریتمی یا معاملات خودکار چند وقتی است که در بازار سرمایه ایران به عنوان یکی از روندهای آتی بازار سرمایه خودنمایی می‌کنند. شرکت‌های استارت‌آپی و غیر استارت‌آپی بسیاری در این حوزه شروع به فعالیت کرده‌اند و ادعاهای جالب و غریبی مطرح می‌کنند.

در دنیا نیز یادگیری ماشین یا به طور کلی‌تر، هوش مصنوعی در حال عرض اندام در بازارهای مالی است. شرکت‌های بزرگی در دنیا از جمله CITADEL و Black Rock در آمریکا به عنوان رهبران سرمایه‌گذاری الگوریتمی و شرکت‌هایی از جمله Quantopian و Numerai با دیدگاه‌های متفاوت در حال تلاش برای رهبری هوش مصنوعی یا به طور ساده‌تر، معاملات الگوریتمی در بازارهای مالی هستند.

 

آمار ارائه شده درخصوص استفاده از الگوریتم ها و راهبردهای الگوریتمی در دنیا و بورس های پیشرفته، امیدبخش است و از استفاده از آن ها تا بیش از 80 درصد حجم کل معاملات حکایت دارد! لذا در آینده ای نزدیک، ممکن است کسانی که به مفاهیم معاملات الگوریتمی آشنایی ندارند، دیگر به راحتی قادر به ادامه فعالیت در بازارهای مالی نباشند!

با توسعه پیشرفت‌های تکنولوژیک در حوزه برنامه‌های معاملاتی و بازارهای مالی، معاملات الگوریتمی مورد اقبال و پذیرش بورس‌ها در سراسر جهان قرار گرفته است. این روش در طول یک دهه گذشته در بازارهای توسعه‌یافته رایج‌ترین شیوه معاملاتی بوده و در کشورهای در حال توسعه نیز به سرعت در حال گسترش است.

امروز معاملات الگوریتمی آخرین روش داد و ستد در بازار سرمایه کشور های پیشرفته محسوب می شود و بازار ما به تقویت این نوع معاملات نیاز دارد، اما آنچه اهمیت دارد این است که باید از طریق فرهنگ سازی به فراگیر شدن ابزار هایی از این دست کمک کنیم.

در چند سال گذشته فرآیند داد و ستد در بازار سرمایه تغییرات قابل‌ توجهی داشته‌ و اکنون به واسطه سیستم ‌های الکترونیکی و پیچیده شدن بازار های مالی، نحوه معاملات از حالت سنتی به سمت روش های نوین حرکت کرده است. در این مسیر بهره گیری از معاملات الگوریتمی منجر به انجام بهتر و دقیق تر استراتژی های معاملاتی سرمایه گذاران می شود. در این روش سفارش‌ ها (هم برای طرف خریدار هم طرف فروشنده) بدون دخالت عامل انسانی از طریق سیستم ها ثبت می شود. با این حال به رغم فراهم شدن بستر های لازم معاملات الگوریتمی در بازار سرمایه کشور، صاحب نظران می گویند همچنان فرهنگ سازی در این زمینه امری ضروری است.

در این روش بر اساس فاکتور های دقیق تصمیم گیری و رفتار های مبتنی بر شایعه و هیجان از فرآیند داد و ستد حذف می شود. معاملات الگوریتمی به علمی شدن تصمیم گیری ها در بورس کمک می کند، در معاملات الگوریتمی ما شاهد افزایش شفافیت هستیم و بازیگران با اطمینان، ایمنی و ریسک کمتری داد و ستد می کنند. به رغم پیشرفت در توسعه معاملات الگوریتمی اما هنوز عموم سرمایه گذاران با ساز و کارهای اجرایی این روش آشنایی ندارند و در نتیجه در این مسیر به فرهنگ سازی نیاز داریم.

طرح مسئله

شرکت‌های استارت‌آپی و غیر استارت‌آپی بسیاری در حوزه معاملات الگوریتمی شروع به فعالیت کرده‌اند و ادعاهای جالب و غریبی مطرح می‌کنند. اما تا اجرائی شدن کامل ادعاهای آنها راه زیادی باقی مانده است.

در حال حاضر شرکت های OMS به دلیل گسترده بوده فعالیت ها و سرویس های جاری خود هیچگونه فعالیت جدی در این بخش نداشته و سرویسی به استفاده کنندگان این بخش ارائه نمی کنند.

بر اساس دستورالعمل سازمان بورس اوراق بهادار و همچنین سازمان فناوری بورس اوراق بهادار شرکت های OMS ملزم به ارائه سرویسهای زیرساخت نرم افزاری اختصاصی OMS به توسعه دهندگان رابط های کاربری معاملات برخط، معاملات الگوریتمی و … می باشند.

هیچگونه استانداری برای ارائه این سرویس ها وجود نداشته و هریک از شرکت های OMS با روشی متفاوت این سرویس ها را ارائه میکنند. بنابراین توسعه دهندگانی که نیاز به استفاده از این سرویس ها را داشته باشند بنا به نیاز خود باید هریک از این سرویس ها را بصورت جداگانه پیاده سازی و استفاده نمایند.

علاوه بر پیچیدگی های پیاده سازی و فنی بزرگترین مشکل این توسعه دهندگان عدم دانش کافی نسبت به فرایندهای جاری در چرخه سفارشات در بازار سرمایه (شرکت های OMS) باعث رفت و برگشت های فراوانی شده و بیشتر مواقع باعث سردرگمی آنها شده و عطای این فعالیت و پروژه را به لقایش می بخشند. این نکته بسیار حائز اهمیت می باشد چرا که تخصص و هدف تیم های توسعه دهنده مسائل دیگری همچون طراحی رابط کاربری، معامله الگوریتمی، سبدگردانی، بازراگردانی و… می باشد نه مسائل فنی شرکت های OMS!

با بررسی های فوق وجود یک زیرساخت برای ارائه سرویس استاندارد ، قابل شخصی سازی کاملاً احساس شده و نیاز اساسی فعالان این حوزه می باشد.

نتیجه گیری

نیازهایی که در راستای زیرساخت معاملات برای تیم های توسعه دهندگان قراردارند، نظیر:

  • نیازهای اطلاعاتی خاص و موردی
  • زیر ساخت و اطلاعات جانبی
  • ابزارهای جدید
  • شخصی سازی

همانطور که پیش تر مورد بحث و بررسی قرار گرفت بر طرف کرد نیازهای فوق توسط شرکت های OMS امکان پذیر نیست، چراکه به­صورت عمومی و برای کاربردهای عادی مشتری های خودشان (کارگزاری ها) طراحی و ساخته شده­اند.

می‌توان اینگونه نتیجه گرفت که یک زیرساخت خوب باید قدرتمند باشد مهم‌تر از همه این است که باید ساختاری واضح داشته، به تجربه کاربری توجه کند، منحصربه‌فرد باشد، ساده باشد و فهم آن برای استفاده کنندگان به‌راحتی ممکن باشد.

با تمرکز روی موارد مطرح شده و در نظر گرفتن این که فعالان این حوزه در تلاش هستند تا به رشد پایداری از طریق افزایش تعداد معاملات خود دست یابند، در همین راستا ­ناگزیر هستند تا زیرساخت­های فنی و سامانه آنلاین مختص خود را راه اندازی کنند. تکتولوژی‌های بکار رفته در این سامانه تنها برای یک هدف می باشند:

” ابزاری قدرتمند، برای فرصت‌های بازار”

این زیرساخت باید با بکارگیری تکنولوژی در مدت زمان اندکی مورد استقبال بسیار زیاد توسعه دهندگان قرار بگیرند.

زیر ساخت معاملات الگوریتمی در بازار سرمایه

این سامانه برای کلیه مشتری ها راه حل سرمایه گذاری سریع و ساده را از طریق ایجاد امکان صدور و ابطال واحدهای صندوق سرمایه گذاری ارایه می کند و دسترسی به اطلاعات صندوق های سرمایه گذاری را به صورت یکپارچه و بدون واسطه در سریع ترین زمان ممکن فراهم می نماید.

مشتریان می توانند با فعال سازی نام کاربری و رمز عبور سامانه صندوق به راحتی از امکانات این  سامانه بهره برده و از ابزارها و امکانات جدید این حوزه استفاده نمایند.

بر اساس فرایندهای پیاده سازی شده، یک مشتری پس از تکمیل اطلاعات پروفایل خود و با انجام احراز هویت الکترونیک KYC در سریعترین زمان ممکن اقدام به سرمایه گذاری و ثبت درخواست صدور می نماید.

با سازوکار پیش بینی شده مشتری های سابق صندوق سرمایه گذاری که از قبل واحد های صندوق را خریداری کرده اند نیز با وارد کردن حداقل اطلاعات می توانند با دریافت حساب کاربری خود از امکانات سامانه استفاده نمایند. قالبیت های اصلی این سامانه عبارت است از:

سرعت

پاسخگویی محیط کاربری و سیستم ثبت سفارشات در سامانه آنلاین به لطف زیرساخت های نیرومند آن بسیار سریع عمل می‌کند.

هوشمندی

در این زیر ساخت دیگر نیازی به محاسبات کلاینت نیست، همه چیز به طور خودکار محاسبه میشود. سود‌و‌زیان لحظه‌ای‌ و…

کارایی در کارگزاری های مختلف(Multi-OMS)

به لطف طراحی معماری و زیرساخت قدرتمند امکان دسترسی به هسته معاملات از طریق بیش از یک OMS فراهم را میسر می‌سازد.

شخصی سازی

این نیاز برای فعالان این حوزه وجود دارد که یکسری از عملیات های خاص را باید از طریق زیر ساخت در دسترس داشته باشند. (سفارش های شرطی، سفارش های دسته ای، Copy trading و…)

ما با الگو گرفتن از برترین سامانه‌های معاملات الگوریتمی سعی در ارائه زیرساختی در کلاس جهانی نموده و با تکیه بر شناخت عمیق از بازار سرمایه ایران، اقدام به طراحی یک معماری قدرتمند نموده‌ ایم.

ویژگی

بازار گردانی الگوریتمی

همواره بازارهای نوظهور با چالش حجم و عمق کم بازار مواجه بوده است. تعهد بازارگردان ایجاد اطمینان خریداران و فروشندگان از نقدشوندگی سهم، منصفانه و منطقی بودن معاملات سهم است.

بازارگردانی الگوریتمی نقشی حیاتی در سلامت و کارایی بازارهای مالی دارد و در کنار کاهش هزینه های مربوط به اجرای معاملات، باعث کاهش نوسانات و هیجانات، بهبود فرآیند قیمت گذاری و کیفیت در معاملات می شود. این کار به نوعی از شفافیت بازار حمایت می کند و باعث افزایش رضایت سهامداران از هر معامله است.

ضینفعان

  • سرمایه گذاران (مزایا: هزینه کمتر معاملاتی، بهبود فرآیندهای کشف، افزایش تعداد و حجم معاملاتی -افزایش نقدشوندگی، نوسان پذیری و ریسک کمتر، افزایش عمق بازار، روند منطقی حرکت سهم و عدم دستکاری در قیمت و…)
  • صاحبان سهم (مزایا: کاهش هزینه‌های تامین مالی شرکت، افزایش نقدشوندگی، خوشنامی سهم در بین اهالی بازار، خوشنامی ناشر جهت عرضه اولیه سهام دیگر و..)
  • سازمان و شرکت های بورس (مزایا: افزایش ارزش معاملات و جذب ساده تر سرمایه گذار خارجی، مشکلات کمتر در زمان بروز بحران ها و…)

کاربرد ها

  • سهام (تحلیل حجم بالا و ارسال سفارش بر طبق استراتژی های از پیش تعریف شده، کاهش هزینه های بازارگردانی، کنترل ریسک، سود آوری ، کارایی و..)
  • اوراق (نقدشوندگی نمادهای متعدد درآمد ثابت، سفارشات پرحجم و متعدد متناسب با شرایط بازار بدهی، الگوریتم‌های مدیریت ریسک و مدیریت دیرش-فاصله متوسط اوراق تا سررسید، ثبات میزان اوراق و نقدینگی پرتفوی بازارگردان ، کارا، سریع‌ت، کم‌ ریسک‌ و کم هزینه و …)
  • ETF (سفارش گذاری بلافاصله پس از بروز شدن NAV صندوق، بازارهای مختلف (صعودی، نزولی و خنثی) استراتژی های متفاوت و…)
  • آربیتراژ(قدرت تحلیلی قوی، سرعت و دقت بالا و…)

 

معماری

این قسمت شامل زیر ساخت سیستم جهت پیاده سازی الگورتیم در کلاینت الگوریتم می باشد. در واقع پی و شالوده سیستم می باشد. این زیر ساخت یکبار پیاده سازی می شود و در تمام پروژه ها مورد استفاده قرار می گیرد. بطور کلی زیر ساخت شامل 6 زیر سیستم مجزا از هم خواهد بود.

 

Pusher receiver (rabbit MQ)

ای زیر سیستم جهت اتصال به Push Server و دریافت پیام های که بصورت اتوماتیک ارسال می شود پیاده سازی خواهد شد. در واقع تمام اطلاعاتی که ممکن است در طول عمر اجرای برنامه تغییر کند توسط سرور ارسال می شود. این زیر ساخت پیام ها را دریافت کرده و پس از ترجمه آنها به زیر سیستم مورد نظر انتقال می دهد.

دقت شود این زیر سیستم قطعا باید دارای revise message event برای هر پیام باشد تا زیر سیستم نیز متوجه دریافت این پیام شود تا در صورت نیاز یک (یا چند) عملیات انجام گیرد. بطور مثال زمانی که بخشی از یک سفارش اجرا می شود پیام Order Execution ارسال می شود. (مشخص میکند چه سفارشی، چه تعداد ، چه قیمتی و در چه زمانی اجرا شده است .) کلاینت این پیام را دریافت میکند و اطلاعات سفارش را در کش خود بروز کرده و سفارش جدیدی جایگزین تعداد اجرا شده می کند.

بطور کلی باید گفت این زیر ساخت اهمیت بسیاری در بالا بردن عملکرد سیستم خواهد داشت .

Api Send/Revise Request

این زیر سیستم جهت تعامل با Api ها می باشد. از آنجائی که تمام Api ها دارای ساختار یکسانی هستند باید درخواست/نتیجه تمام فراخوانی های Api در تمام زیر سیستم ها از طریق این زیر سیستم صورت بگیرد. برای این قسمت میتوان: Log Request , Log Response , Error Handling , Monitoring و … در نظر گرفت. برای فراخوانی متدهائی که نیاز به احراز هویت و توکن دارند از زیر سیستم Account Manager توکن مورد نظر را گرفته و اقدام به ایجاد یک درخواست و ارسال آن به سمت api میکند.

زمانی که جواب درخواست از api دریافت می شود این زیر سیستم اقدام به ترجمه نتیجه کرده و تائید یا خطای عملیات را مشخص میکند

 

 

Account Manager (Login – Account Manager)

این زیر سیستم در واقع اولین قسمت از هر پروژه ای می باشد که شروع بکار میکنید. این زیر ساخت شامل دو قسمت می باشد: Login – Account manager

Login: ورود به سیستم و دریافت توکن معتبر برای کاربر – Account manager مدیریت حساب های کاربری فعال

برای ورود با استفاده از به زیر ساخت  Api Send/Revise Request  و ارسال پارامتر های لاگین (نام کاربری-کلمه عبور) در صورت ورود موفق توکن دریافت شده در حافظه (کش) با فورمت مناسب ذخیره می گردد. تا در صورت نیاز هر یک از سیستم ها اطلاعات کاربر و توکن دریافت گردد.

Account manager وظیفه تعامل با سایر سیستم ها جهت اراده توکن به آنها و همچنین به روز نگهداشتن توکن یعنی عملیات Refresh token   را بر عهده دارد.

با بکار گیری Account manager قابلیت لاگین با چند حساب کاربری به سیستم اضافه می گردد. و میتوان با اجرای یک برنامه برای چندین حساب مشتری الگوریتم های مختلف اجرا کرد.

Account State manager

این زیر سیستم وضعیت حساب مشتری (قدرت خرید و …) را نگهداری میکند. بعد از لاگین موفق اطلاعات وضعیت حساب از api دریافت شده و در کش ذخیره می گردد، بعد از این هرجا لازم باشد که وضعیت حساب چک شود از این زیر سیستم اطلاعات دریافت می گردد. به روز رسانی اطلاعات در صورت تغییر نیز با استفاده از زیر ساخت Pusher و پیام وضعیت حساب انجام می گیرد.

 

 

 

 

Asset manager

این زیر سیستم دارائی حساب مشتری (پرتفوی) را نگهداری میکند. بعد از لاگین موفق اطلاعات وضعیت دارائی از api دریافت شده و در کش ذخیره می گردد، بعد از این هرجا لازم باشد که وضعیت دارائی چک شود از این زیر سیستم اطلاعات دریافت می گردد. به روز رسانی اطلاعات در صورت تغییر نیز با استفاده از زیر ساخت Pusher و پیام دارائی انجام می گیرد.

Market Information

اطلاعات بازار و هر آنچه که مربوط به اطلاعات بازار نماد باشد در این زیر ساخت قرار می گیرد. در واقع اطلاعات هر نماد که در سایر سیستم ها مورد استفاده قرار می گیرد توسط این سیستم فراهم می گردد. بعد از لاگین موفق و دریافت اطلاعات حساب بلافاصله اطلاعات نماد (watch list) از api دریافت شده و در کش ذخیره می گردد، بعد از این هرجا لازم باشد که اطلاعات نماد (صف، معامله، قیمت ها و…) چک شود از این زیر سیستم اطلاعات دریافت می گردد. در زمان هائی که این اطلاعات تغییر میکند با استفاده از زیر ساخت Pusher و پیام معامله، صف، نماد و… انجام می گیرد.

لازمه سیستم فوق داشتن قابلیت event  است. وجود این قابلیت باعث می شود هرگونه تغییر در اطلاعات نماد  این تغییر به سیستم هائی که به این اطلاعات نیاز دارند اطلاع داده می شود تا آن سیستم بصورت اتوماتیک یک عملیات خاص انجام دهد.

Order management system

قابلیت ارسال سفارش جدید، ویرایش و انصراف سفارش در این سیستم فراهم می گردد. باید قابلیت های مختلفی در این سیستم پیاده سازی گردد و بنا به نیاز هر استراتژی کاملتر خواهد شد. این سیستم دارای دو قسمت می باشد.

Order management – Order cache

Order Action:  تمام عملیات مربوط به سفارشات (add-modify-cancel) برای ارسال سفارش در apiروش های مختلفی پیش بینی شده است. (سفارش تکی، دسته ای ، حمایتی و…)

Order Cache: اطلاعات مربوط به سفارشات هر کاربری که به سیستم لاگین کرده است در حافظه نگهداری می شود ، بعد از لاگین موفق و دریافت اطلاعات حساب بلافاصله اطلاعات سفارشات و…  از api دریافت شده و در کش ذخیره می گردد، بعد از این هرجا لازم باشد که اطلاعات سفارشات (سفارشات فعال، کل سفارشات، معاملات و…) دریافت شود از این زیر سیستم اطلاعات دریافت می گردد. در زمان هائی که این اطلاعات تغییر میکند با استفاده از زیر ساخت Pusher و پیام های مناسب انجام می گیرد. این سیستم دارای قابلیت event  است. وجود این قابلیت باعث می شود هرگونه تغییر در سفارشات به سیستم هائی که به این اطلاعات نیاز دارند اطلاع داده می شود تا آن سیستم بصورت اتوماتیک یک عملیات خاص انجام دهد.

فهرست