در چند سال گذشته بازارهای مالی دستخوش تحولات گستردهای در زمینه فناوریهای کامپیوتری شدهاند. سهم معاملات آنلاین به صورت نمایی رشد کرده و سرعت انجام معاملات در واحد زمان به صورت غیر قابل باوری در حال افزایش است. فراخور این پیشرفتها، معاملهگران نیاز به ابزارها و روشهای نوینی برای عکس العمل سریع به تغییرات لحظهای بازار داشتند. کلیه این ابزارها و روشها نهایتا به اجرای هرچه هوشمندتر معاملات و استفاده بیشتر از قدرت پردازش کامپیوترها در خرید و فروش منجر میشود. معاملات هوشمند در بازارهای مالی دنیا با نام معاملات الگوریتمی (Algorithmic Trading) شناخته میشود، در واقع الگوریتم مجموعهای از قوانین معاملاتی هستند که قیمت و زمان ورود و خروج از یک سیستم را محاسبه میکنند.
جالب است بدانید منشا کلمه الگوریتم را یکی از نخستین و بزرگترین ریاضیدانان ایران بنام خوارزمی، تقریبا 820 سال قبل از میلاد در کتابی به نام "شرح محاسبات با اعداد" مطرح کرده بود. نخستین معاملات الگوریتمی را میتوان در اولین صندوق سرمایهگذاری دنیا، تاسیس در سال 1949 توسط آلفرد جانز دنبال کرد. در حقیقت جانز از معاملات الگوریتمی برای معامله به روش هج استفاده میکرد. منظور از هج؛ باز کردن دو معامله در جهت خلاف یکدیگر است. با فرض اینکه معاملهگر بداند دو سهم روندی در خلاف جهت همدیگر دارند (به عنوان مثال گروه خودرویی و گروه قندی). این کار امنیت معاملات را بالا میبرد و باعث میشود با نوسانات شدید بازار، معاملهگر زیان زیادی متحمل نشود.
تعریف واژگان
✓ الگوریتم: مجموعهای متناهی از دستورات از پیش برنامه نویسی شده برای حل مسأله و یا انجام فعل است.
✓ معاملات الگوریتمی: فرآیندی است که در آن با بهره گیری از الگوریتمها، میتوان پارامترهای سفارش از قبیل نماد معاملاتی، حجم، مبلغ و زمان را تعیین و آن را به سامانه معاملاتی ارسال نمود.
✓ سفارشهای پربسامد(HFT): سفارشهایی هستند که از طریق یک کارگزار یا کارگزار/معاملهگر برای یک مشتری و یک نماد معاملاتی (مستقل از روش تولید سفارش)، با فاصله زمانی کمتر یا مساوی 300 میلی ثانیه به هسته معاملات ارسال میشوند.
✓ دستورالعمل معاملات برخط: منظور دستورالعمل اجرایی معاملات برخط مصوب 1398/06/06 هیات مدیره سازمان میباشد.
✓ واسط کاربری(UI) زیرساخت دسترسی برخط: واسط گرافیکی است که جهت تعامل مشتری با زیرساخت بند 4 ماده یک دستورالعمل معاملات برخط استفاده میشود.
✓ شناسه الگوریتم: کد منحصر به فرد به ازای هر الگوریتم در سطح هر کارگزار یا کارگزار/معاملهگر میباشد.
✓ برچسب معاملات الگوریتمی: کد منحصر به فردی است که مشخص کننده الگوریتمی بودن سفارش ارسال شده به سامانه معاملاتی میباشد.
وظیفه اصلی الگوریتمها به شرح زیر است:
✓ فرصتهای معاملاتی را تشخیص دهند (بر اساس الگوریتمها و منطق از پیش تعریف شده توسط معاملهگر).
✓ بر اساس فرصتها، سفارشهای خرید و فروش را به سیستم معاملات وارد کنند.
✓ سفارشها را مدیریت و ریسک را کنترل کنند.
ورودی این الگوریتمها یک یا چند متغیر است که میتواند شامل ریز معاملات لحظهای سهام، سفارشات خرید و فروش در بازار (عمق بازار)، دادههای سابقه معاملاتی سهام، اطلاعات بنیادین، اخبار بازار سرمایه و بسیاری اطلاعات دیگر باشد. نکته حائز اهمیت این است که ورود هرگونه اطلاعاتی باید به صورت کمی و عددی باشد، در صورت استفاده از اخبار، باید این اخبار کمی سازی شوند. به عنوان مثال تاثیر مثبت یا منفی اخبار را میتوان با شاخصی بین صفر تا 100 دسته بندی کرد تا برای سیستم قابل درک باشد.
در بازارهای مالی پلتفرمهای معاملاتی زیادی وجود دارد که از معاملات الگوریتمی پشتیبانی میکند. بعضی از آنها به طور کاملا خودکار شرایط استراتژی شما را جستجو و معامله را توسط کارگزارتان انجام میدهند. بعضی دیگر، موقعیتهای معاملاتی را مییابند که با ضوابط و معیارهای استراتژی شما متناسب باشد، اما اقدام به انجام معامله نمیکنند. در حقیقیت سیستمهای نیمه خودکار فقط شما را به نحوی از وجود یک موقعیت مناسب باخبر میسازد. برخی از نرم افزارهای خودکار و نیمه خودکار در جدول زیر لیست شدهاند.
نرمافزار تحلیلگر امید تنها نرم افزار با قابلیت معاملات الگوریتمی در ایران است که امکان اسکن لحظهای بازار، ساخت استراتژی، تست و بهینه سازی و ارسال سفارش (در صورت کسب مجوز مشتری از سازمانهای مربوطه) را دارا میباشد. برای طراحی یک الگوریتم معاملاتی نیاز به تعریف یک سلسله شرایطی مانند زمان، قیمت و حجم برای انجام معاملات توسط یک برنامه کامپیوتری داریم. برای پیادهسازی این شرایط و مفهوم آن به زبان قابل فهم کامپیوتر، از کدنویسی و زبانهای رایج برنامهنویسی استفاده میشود. مشخصه بارز معاملات الگوریتمی این است که انسان در انجام این معاملات هیچ نقشی ندارد و تمام مراحل ترید نظیر تحلیل بازار، تعیین نقطه ورود، حد ضرر و سود و تعیین مقدار سرمایه برای ورود به معامله توسط این الگوریتم انجام میشود.
برای درک بهتر معاملات الگوریتمی یک مثال ساده را با هم بررسی میکنیم:
خرید: زمانی که میانگین متحرک (MA) 30 روزه بیشتر از میانگین متحرک 60 روزه شود (کراس صعودی)
فروش: زمانی که میانگین متحرک 30 روزه کمتر از میانگین متحرک 60 روزه شود (کراس نزولی)
این سیستم مورد مثال، بر مبنای میانگین متحرک 30 و 60 روزه خرید و فروش میکند.
برای این استراتژی به این دو ابزار نیاز داریم:
✓ نرمافزاری برای محاسبه میانگین متحرک یا مووینگ اوریج سهام
✓ نرمافزاری جهت اسکن کل سهام بازار و جستجوی کراس نزولی یا صعودی
بطور کل هر دادهای در مورد بازار سهام شامل؛ حجم، قدرت خریدار به فروشنده، نقاط اشباع خرید و فروش، اندیکاتورها و ... و حتی دادههای فاندامنتال، توانایی تبدیل شدن به الگوریتم برای معاملات اتوماتیک را دارند.
فواید معاملات الگوریتمی
✓ هزینه کمتر معاملاتی برای سرمایهگذاران (تعداد سفارشات زیاد در سمت عرضه و تقاضا باعث میشود هر وقت که اراده کنیم برای فروش، سفارشی باشد که به آن بفروشیم).
✓ افزایش حجم معاملاتی و نقدشوندگی (هر چه حجم معاملات یک سهم بیشتر باشد امکان دستکاری در قیمت کمتر است و این باعث تحلیلپذیری بیشتر میشود).
✓ نوسان پذیری کمتر (نوسانهای زیاد معمولا در سهام کممعاملات و توسط سفته بازان اتفاق میافتد).
✓ افزایش عمق بازار (هر چه عمق بازار بیشتر شود، تحلیلها بهتر جواب میدهند و زندگی در بازار راحتتر است).
✓ روند منطقی حرکت سهم و عدم دستکاری در قیمت به سادگی
✓ حداقل شدن تاخیر در اجرای سفارشات (همیشه سفارشاتی برای پاسخ به سفارش ما هستند و نباید ساعتها منتظر شویم که یکی از ما بخرد یا به ما بفروشد).
تاکنون حداقل 4 شرکت در حوزه ارائه خدمات الگوریتمی به نهادهای مالی از سازمان بورس مجوز گرفتهاند. این شرکتها علاوه بر ارائه خدمات به نهادهای مالی و بازارگردانها به کارگزاریهای متقاضی نیز ابزارهای معاملات الگوریتمی ارائه میدهند، همچنین 18 کارگزاری نیز مجوز دسترسی سهامداران حقیقی و حقوقی به معاملات الگوریتمی را از سازمان بورس دریافت کردهاند که شامل کارگزاری بانک آینده، خبرگان سهام، بورس بیمه ایران، امین سهم، آتیه، سهم آشنا، شهر، مدبر آسیا، بانک کارآفرین، اندیشه و بینش پیشرو، انصار، ایستاتیس پویا، آیندهنگر خوارزمی، توسعه معاملات کیان، حافظ، بورس بهگزین، سینا و آرمون بورس هستند که معاملهگران حقیقی و حقوقی جهت اطلاع از شرایط و نحوه استفاده از خدمات معاملات الگوریتمی، میتوانند با هرکدام از کارگزاریهای فوق ارتباط برقرار کنند.
روشهای ارائه خدمات معاملات الگوریتمی
ارائه خدمات معاملات الگوریتمی توسط کارگزار یا کارگزار/معاملهگر به مشتریان، به دو روش به شرح زیر امکانپذیر است:
✓ ارائه الگوریتم توسط کارگزار یا کارگزار/معاملهگر: در این روش الگوریتمهای آماده به همراه شرح عملکرد آن، توسط کارگزار یا کارگزار/معاملهگر بر روی واسط کاربری(UI) زیرساخت دسترسی برخط، قرار داده میشود و مشتریان میتوانند در صورت تمایل از این الگوریتمها استفاده کنند.
✓ کدنویسی توسط مشتری: در این روش قابلیت نوشتن الگوریتم توسط مشتری در واسط کاربری (UI) زیرساخت دسترسی برخط توسط کارگزار یا کارگزار/معاملهگر ارائه میشود.
الزامات روش اول (ارائه الگوریتم توسط کارگزار/کارگزار معاملهگر)
علاوه بر رعایت الزامات عمومی در این روش، الزامات زیر نیز توسط کارگزار یا کارگزار/معاملهگر باید رعایت گردد:
✓ پارامترهای مربوط به سفارش، شامل نماد معاملاتی، بازه قیمت، بازه تعداد سهم و نوع سفارش (خرید یا فروش) باید توسط مشتری تعیین شود. تمام مقادیر پارامترهای الگوریتم باید متناسب با الزامات ثبت لاگ سازمان ذخیره شوند.
✓ هر الگوریتم و شناسه اختصاص داده شده به آن و استراتژی آن، باید نزد کارگزار یا کارگزار/معاملهگر، مکتوب و قابل استناد برای سازمان باشد و چنانچه الگوریتم تغییر نمود، باید به عنوان الگوریتم جدید در نظر گرفته و شناسه الگوریتم جدید به آن اختصاص داده شود.
الزامات روش دوم (کدنویسی توسط مشتری)
علاوه بر رعایت الزامات عمومی در این روش، الزامات زیر نیز باید توسط کارگزار یا کارگزار/معاملهگر رعایت گردد:
✓ کارگزار یا کارگزار/معاملهگر باید قابلیت فعالسازی/غیرفعالسازی این امکان (کدنویسی دلخواه) برای هر مشتری را داشته باشد.
✓ الگوریتمهای تهیه شده توسط مشتری باید نزد کارگزار یا کارگزار/معاملهگر به صورت محرمانه و رمزنگاری شده ثبت و ذخیره گردد و امکان بهرهبرداری یا افشای آنها بدون کسب رضایت مشتری، وجود نداشته باشد.
✓ الگوریتمها، اطلاعات محرمانه مشتری محسوب شده و مسئولیت کیفری، انضباطی و جبران خسارت ناشی از نقض محرمانگی اطلاعات بر عهده کارگزار یا کارگزار/معاملهگر است.
این الزامات در تاریخ 1398/11/07، به تصویب هیئت مدیرۀ سازمان بورس و اوراق بهادار رسید و یک هفته پس از ابلاغ قراردادها و بیانیۀ ریسک، لازمالاجراست.
الزامات عمومی معاملات الگوریتمی
کلیه الزامات زیر در خصوص تمامی روشهای ارائه خدمات معاملات الگوریتمی توسط کارگزار یا کارگزار/معاملهگر لازمالرعایه است:
✓ فاصله بین ایجاد یک سفارش و اصلاح یا حذف آن باید حداقل یک ثانیه باشد.
✓ هر الگوریتم مستلزم داشتن شناسه الگوریتم است.
✓ تمامی سفارشهای تولید شده توسط یک الگوریتم، باید حتما برچسب معاملات الگوریتمی داشته باشد و برچسب مربوطه در لاگهایی که تولید میشود نیز ذخیره گردد، به نحوی که در صورت مراجعه به سفارشهای گذشته، بتوان موارد الگوریتمی و غیرالگوریتمی را تشخیص داد.
✓ شناسه الگوریتم باید در لاگهای تولید شده توسط سامانه کارگزار یا کارگزار/معاملهگر ثبت و نگهداری شود.
✓ کارگزار یا کارگزار/معاملهگر باید این امکان را در سامانه خود پیشبینی نماید که در صورت نیاز و با رعایت قوانین و مقررات یا حسب دستور مدیریت نظارت بر بورسها یا بورس مربوطه، فوراً تمام یا بخشی از سفارشهای ارسال شده به ازای هر الگوریتم برای هر مشتری را ضمن اطلاعرسانی مقتضی و قابل استناد به وی، لغو کند. لازم است لاگ اقدامات موضوع این بند بر اساس الزامات ثبت لاگ سازمان (مرکز نظارت بر امنیت اطلاعات بازار سرمایه) تولید و ذخیره شود.
✓ کارگزار یا کارگزار/معاملهگر باید این امکان را در سامانه خود پیشبینی نماید که در صورت نیاز و با رعایت قوانین و مقررات بازار سرمایه یا حسب دستور مدیریت نظارت بر بورسها یا بورس مربوطه، فوراً یک الگوریتم خاص (یا تمام الگوریتمها) را ضمن اطلاعرسانی مقتضی و قابل استناد به مشتریان متوقف نماید. لازم است لاگ اقدامات موضوع این بند بر اساس الزامات ثبت لاگ سازمان (مرکز نظارت بر امنیت اطلاعات بازار سرمایه) تولید و ذخیره شود.
✓ کارگزار یا کارگزار/معاملهگر باید امکان نظارت بر پارامترهای مربوط به الگوریتمها (حداقل شامل نماد معاملاتی، تعداد نماد معاملاتی، بازه قیمتی هر نماد معاملاتی، ارزش، حجم، تعداد و نوع سفارشها، بازه زمانی، بازار و نوع اوراق بهادار) به ازای هر مشتری را داشته باشد.
✓ فقط سفارشهای محدود، مجاز به ثبت از طریق الگوریتم میباشند.
✓ وارد کردن سفارشهای پربسامد(HFT) مجاز نمیباشد. زیرساختهای دسترسی برخط، باید به گونهای طراحی شود که امکان ارسال سفارهای پربسامد از طریق آن وجود نداشته باشد.
✓ ثبت سفارشهای پنهان (دوبخشی) از طریق الگوریتم مجاز نمیباشد.
✓ ارسال سفارشهای الگوریتمی در طول مدت پیش گشایش و در زمان گشایش بازار ممنوع میباشد.
✓ کارگزار یا کارگزار/معاملهگر موظف است تمامی محدودیتهایی که منجر به رد درخواست توسط سامانه معاملاتی میگردد، را کنترل نماید.
✓ کارگزار یا کارگزار/معاملهگری که در معاملات الگوریتمی شرکت میکند باید سیستمها و کنترلهای ریسک موثر و متناسب با کسبوکار خود را در نظر گرفته و از استفاده از الگوریتمهایی که نتایج آنها مغایر با قوانین و مقررات باشند، جلوگیری کند.
چالشهای پیش روی معاملات الگوریتمی در دنیا
استفاده از الگوریتمها همواره با این تهدید مواجه میباشد که ممکن است معاملهگر دیگری، با رمزگشایی الگوریتم شما، از آن علیه شما استفاده کند. اگر شخصی یا الگوریتمی این الگو را کشف کند، میتواند در اجرای سفارشها از شما پیشی بگیرد. مثلا قبل از آنکه موج بعدی باعث افزایش قیمت شود، سفارشهایی را با تخفیف بخرند. هر چه الگوریتم متداولتر باشد، مهندسی معکوس آن هم آسانتر است. زمانی الگوریتمهای معاملاتی جالبتر و البته موثرتر میشوند که معاملهگران چند الگوریتم را با هم ترکیب کنند و الگوریتم جدید و پیچیدهای را بسازند.
دوران آینده به طور قطع و یقین دوران الگوریتمی خواهد بود. سفارشات فروش در کارگزاریها رو به سمت نرم افزارها میآورد و معاملهگران در سفارشات میلیاردی (شاید در آن زمان تیلیاردی) خرید با یکدیگر به رقابت میپردازند. در سال 2011 مجلهی Journal of Finance در مقالهای عنوان کرد که در سال 2009، معادل 73 درصد از تمام معاملات بازارهای ایالات متحده توسط معاملات الگوریتمی انجام شده که تأثیر بسزایی در افزایش نقدشوندگی این بازارها داشته است. میتوان حدس زد که این روند تا به امروز بسیار گستردهتر شده باشد.
سوالی که مطرح میشود این است که آیا الگوریتم جایگزین معاملهگران خواهند شد؟
پاسخ منفی است، الگوریتم جایگزین معاملهگران نخواهد شد. در حقیقت معاملهگر و تیمش الگوریتم را طراحی میکنند و الگوریتم تنها سیستم معاملاتی آنها را اجرا میکند. این کار معاملهگران را بهرهورتر خواهد کرد و این فرصت را به آنان خواهد داد که بهینهسازی و ایجاد استراتژی متعدد با تمرکز تفکر کنند.
تکنولوژی معاملاتی الگوریتمی، تحول بزرگی در بازار سرمایه است. به امید روزی که با کمک به کارگیری این راهکار جدید، بازار سرمایه ایران به یکی از عمیقترین و سریعترین بازارهای بورس منطقه تبدیل شود و بسیاری از مشکلات کنونی آن نظیر حجم کم معاملات و عدم نقدشوندگی لازم، عمق کم بازار، سادگی، آسیب پذیری و دست کاری قیمت ها و بسیاری مشکلات دیگر، به مدد این ابزار برطرف شود.
برای درک بهتر موضوع، میتوانید ویدئوی زیر را مشاهده نمایید: