پس از پیشرفتهای بسیار عظیمی که در تکنولوژی اتفاق افتاد، نفوذ تکنولوژی در تمام صنایع و عرصههای اقتصادی دیده شد و پس از گذشت سالها، اکنون کوچکترین اجزای زندگی روزمره انسان نیز با تکنولوژی درگیر شده است.
بازارهای مالی نیز از این پیشرفت مستثنی نبودند و پس از برنامه نویسی برنامههای تحلیلی و سامانههای معاملاتی آنلاین، ورود تکنولوژی به بازارهای مالی بیش از پیش مورد استقبال سرمایه گذاران و کارگزاران قرار گرفت. استفاده از ابزارهای گوناگون جهت کسب سود از بازارهای مالی سبب شد تا برنامه نویسان اقدام به طراحی سیستمهایی کنند که به صورت اتوماتیک اقدام به انجام معاملات کند.
این سیستمهای خودکار معاملات را معاملات الگوریتمی میگویند و در این مطلب قصد داریم معاملات الگوریتمی را بیشتر بشناسیم و با نحوه عمل این سیستمهای معاملاتی آشنا شویم.
الگوریتم چیست؟
الگوریتمها گروهی از دستورالعملهایی هستند که جهت حل مسئلهی مورد نظر تعریف شدهاند. این دستورالعملها معمولاً به توالی مشخص و به ترتیب خاصی اجرا میشوند. هر الگوریتم باید از یک سری اجزای مشخص تشکیل شده باشد تا بتواند به درستی اجرا شود. اجزای هر الگوریتم به صورت زیر است:
ورودی و خروجی: باید اطلاعاتی را به عنوان ورودی مشخص کنیم تا برنامه ما آنها را طبق دستورالعملهای مشخص، پردازش کند و سپس نتیجه یا نتایج حاصل را به صورت خروجی ارائه دهد.
قطعیت: دستورهای ارائه شده باید با دقت و بدون ابهام در عملیات باشند تا به طور صحیح قابل اجرا باشند.
محدودیت: هر الگوریتم باید شامل یک آغاز و یک خاتمهی مشخص شده باشد. این مجموعه دستورالعملها باید در زمان مناسبی اتمام یابد و دورهی پردازش اطلاعات معقول باشد.
معاملات الگوریتمی در بازارهای مالی چیست؟
همان گونه که در تعریف الگوریتم گفته شد، الگوریتمها مجموعهای از دستورالعملهایی است که بدون دخالت انسان به پردازش و حل مسئله میپردازد. معاملات الگوریتمی نیز دستورالعملهای مشخص جهت ورود و خروج از معاملات در بازارهای مالی به کمک سیستمهای رایانهای میباشد.
معاملات الگوریتمی یا همان الگو تریدینگ (Algo Trading) به کمک زبانهای برنامه نویسی نوشته شده و دستورالعملها و مراحل اجرایی آن توسط متخصصین تعیین میشود. میتوان پارامترهای گوناگونی را جهت بررسی به وسیله الگوریتم مشخص کرد و سپس بر اساس حجمها و زمانبندی تعریف شده معاملات را به انجام برسانند. از آنجایی که فرآیند بررسی و یافتن نقاط ورود و خروج بر اساس برنامههای از پیش تعیین شده توسط سیستمهای رایانهای انجام میپذیرد، احساسات انسان که میتواند در نتایج معاملات تأثیر منفی داشته باشد، از معاملات حذف میشود.
انواع الگوریتمهای معاملاتی بر اساس نحوه عملکرد
الگوریتمهای معاملاتی میتوانند در بخشهای گوناگون معامله گری به کمک سرمایه گذاران بیایند. افراد مختلف بر اساس نیازهای خود اقدام به استفاده از این الگوریتمها در یک بخش از فرآیند معامله خود میکنند و یا از ابتدا تا پایان این فرآیند را برعهدهی الگوریتمهای معاملاتی میگذارند تا طبق استراتژی تعریف شده معاملات آنها را پیش ببرد. این الگوریتمها وابسته به اینکه در کجای فرآیند معامله گری قرار میگیرند، به پنج دسته تقسیم میشوند.
1. الگوریتمهای انجام معاملات
وظیفهی اصلی این دسته از الگوریتمها تقسیم کردن سفارشات بزرگ به سفارشهای کوچکتر میباشد. این عمل جهت جلوگیری از به وجود آمدن مشکلات در بازارهای کم حجم و یا سهمهای کوچک میباشد. در الگوریتمهای انجام معاملات باید نقاط خرید و فروش و نماد مورد نظر از سوی معامله گر به سیستم داده شود و سپس طبق دستورالعملهای موجود به انجام معامله بپردازد.2. الگوریتمهای سیگنال دهنده
این دسته از الگوریتمهای معاملاتی با صادر کردن سیگنالهای خرید و فروش میتوانند تحلیلگران را در دستیابی به سود بیشتر یاری رسانند. اما تنها با استفاده از سیگنالهای این الگوریتمها نمیتوان انتظار سودهای بسیار بالا را داشت، بلکه این الگوریتمها صرفاً سیگنالهای خرید و فروش اندیکاتورهای تحلیل تکنیکال را برای سرمایه گذاران مخابره میکنند. برای مثال میتوانید لیست تمام سهمهایی که اندیکاتور RSI در آنها سیگنال خرید داده را در چند ثانیه مشاهده کنید. برای دریافت سیگنالهای معاملاتی از سایر اندیکاتورهای پرکاربرد بورسی مانند اندیکاتور مکدی (MACD) ، استوکاستیک (Stochastic)، CCI، ایچیموکو (Ichimoku) و سایر اندیکاتورها نیز میتوان از این دسته از الگوریتمهای معاملاتی استفاده کرد.3. الگوریتمهای مانیتورینگ یا فیلتر کننده
الگوریتمهای مانیتورینگ وظیفه جستجو کردن در میان سهمهای گوناگون و یافتن سهمهایی با پارامترهای موردنظر سرمایه گذاران را برعهده دارند. برای مثال هنگامی که خبر افزایش نرخ دلار در سامانه نیما منتشر میشود، سرمایه گذاران بسیاری به دنبال لیست سهمهایی هستند که صادرات محور میباشند و از طریق افزایش نرخ دلار نیما سودآوری آنها افزایش مییابد. با تعریف پارامترهای موردنظر خود میتوانید سهمهایی با ویژگیهای خاص را بهسرعت پیدا کنید.4. الگوریتمهای کم بسامد (Position Trading)
دستورالعملهایی که در الگوریتمهای کم بسامد تعریف میشود، جهت انجام معاملاتی با دیدگاه بلند مدت است. این الگوریتم جهت استفاده در بازار ایران بسیار کاربردی میباشد. اما تعریف سرمایه گذاری بلند مدت در میان تحلیلگران بنیادی، تکنیکال و استفاده کنندگان از الگو تریدینگها بسیار متفاوت میباشد. در معاملات الگوریتمی به معاملاتی با طول بیش از یک ساعت، معاملات بلند مدت اطلاق میشود در صورتی که احتمالاً قبل از گفتن این مطلب، احتمالاً در ذهن شما حداقل بازهی زمانی چندین ماهه برای اصطلاح سرمایه گذاری بلند مدت نقش بسته بود.5. الگوریتمهای پر بسامد (High Frequence Trading)
این نوع از الگوریتمها در بازار ایران و بسیاری از بازارهای مالی دیگر که از قوانین خاصی پیروی میکنند بسیار کم کاربرد است. الگوریتمهای پر بسامد به انجام معاملات در زمان بسیار کوتاه (میانگین پنج دهم ثانیه) میپردازند و هدف از ایجاد آنها کسب سودهای اندک اما پر تعداد میباشد. این نوع از کسب بازده از بازارهای مالی که مالیات و کارمزد ثابت دریافت نمیکنند کاربردی است و در بازاری مانند بورس تهران، به دلیل دریافت کارمزد و مالیات ثابت این روش سبب زیان معامله گران میشود.مزایای استفاده از معاملات الگوریتمی در بورس چیست؟
استفاده از معاملات الگوریتمی مزایای بسیار زیادی را به همراه دارد که هر روزه با پیشرفتهای بیشتر در معاملات الگوریتمی و هوشمند شدن این سیستمها، بر مزیتهای آن افزوده میشود. در ادامه به مهمترین مزایای استفاده از معاملات الگوریتمی اشاره میکنیم.
1. امکان بررسی و تحلیل شرایط نمودارهای متعدد در زمان کوتاه
2. ثبت سفارشات و انجام معاملات با دقت و سرعت بالا
3. حداقل شدن دخالت احساسات انسانی در معامله گری و کاهش تصمیمات هیجانی
4. کاهش خطاهای محاسباتی و مقداری هنگام ثبت سفارشات
5. ثبت سریع سفارش و انجام معامله قبل از تغییرات بالای قیمت
6. امکان بررسی نتایج معاملات بر اساس استراتژی معاملاتی طبق دادههای آپدیت شده (به روز) در بازار
7. صرفه جویی در زمان معامله گران
نحوه عملکرد الگوریتمهای معاملاتی چیست؟
انجام معاملات توسط الگوریتمها نیازمند فرآیندی است تا بتوانند استراتژیهای تعریف شده را به درستی اجرا کنند:
- در مرحلهی اول نیاز است این الگوریتم به رصد نمودارهای موجود بپردازد تا بتواند فرصتهای مختلف به وجود آمده در نمودارهای گوناگون را، طبق استراتژی مشخص شده شناسایی کند. به دلیل تعدد فرصتهای معاملاتی و همچنین اهمیت تعیین مناطق صحیح ورود و خروج این بخش از فرآیند، از اهمیت بالایی برخوردار است.
- در مرحلهی دوم و پس از شناسایی فرصت ورود بر اساس استراتژی، نوبت به باز کردن معامله (پوزیشن گیری) میرسد، اما قبل از کلیک بر روی خرید یا فروش لازم است تا مدیریت سرمایه و مدیریت ریسک معامله بررسی شود. طبق مدیریت سرمایه و مدیریت ریسک مشخص شده برای رایانه، حجم معاملات تعیین میشود.
- در مرحلهی سوم معامله انجام میشود و منتظر فرصتهای معاملاتی بعدی میماند.
- مرحلهی چهارم بررسی و مدیریت معاملات (پوزیشن) باز میباشد که باید در خصوص زمان بسته شدن و نقاط خروج بررسیهای لازم انجام گیرد.
بهترین استراتژیهای معاملاتی با کمک الگوریتمها کدام است؟
استراتژیهای گوناگونی برای استفاده از معاملات الگوریتمی در بازارهای مالی وجود دارد اما برخی از این استراتژیها از محبوبیت و کاربرد بیشتری نزد معامله گران برخوردار هستند که در این بخش به معرفی این استراتژیهای میپردازیم.
استراتژی دنبال کنندهی روند (Trend Following)
ابتداییترین و سادهترین استراتژی که میتوان با کمک الگوریتمهای معاملاتی اجرا کرد، استراتژی دنبال کنندهی روند میباشد. این استراتژی بر اساس بررسی روندهای موجود در اندیکاتورها و تغییرات سطح قیمت هستند و با سادهترین اجزا قابل اجرا است.
موقعیتهای معامله آربیتراژی
تعریف این استراتژی با دانستن مفهوم آربیتراژ بسیار ساده میباشد لذا در ابتدا مفهوم آربیتراژ را بررسی میکنیم. آربیتراژ یعنی "کسب سود از طریق اختلاف قیمت یک کالای مشخص در دو بازار مختلف". سادهترین آربیتراژی را که میتوان در ایران مثال زد، میزان اختلاف قیمت سکههای تمام بهار آزادی تحویل یک روزه بورس کالا با قیمت سکه تمام بهار آزادی در بازار آزاد میباشد.
الگوریتمهای این دسته با بررسی قیمتها در بازارهای گوناگون میتوانند این فرصتها را شنایی کرده و با معامله آن کالا به کسب سود از محل این اختلاف قیمت میپردازد.
نزدیک شدن قیمت به میانگین قیمت
یکی از فرضهای ابتدایی تحلیل که میان سرمایه گذاران دیده میشود این است که قیمت همواره تمایل دارد تا در نزدیکی میانگین قیمت حرکت کند و زمانی که فاصلهی میانگین قیمت و نمودار قیمت زیاد میشود، قیمت مجدداً به سمت میانگین باز میگردد. این استراتژی با درنظرگرفتن این موضوع، اقدام به معاملاتی میکند که قیمت در کف و سقف از میانگین فاصله گرفته است. چندین استراتژی گوناگون بر اساس این مفهوم طراحی شدهاند که همگی آنها از میانگینهای گوناگون مانند میانگین ساده، میانگین موزون و میانگین نمایی در دورههای زمانی مختلف استفاده میکنند.
برای معاملات الگوریتمی چه پیش نیازهای فنی لازم است؟
پس از آشنایی با نحوه عملکرد معاملات الگوریتمی، لازم است تا با استفاده از برنامه نویسی بتوانیم الگوریتم مورد نظر خود را طراحی کنیم. در صورت نداشتن تخصص در این زمینه، میتوانیم از متخصصان برنامه نویسی جهت نهایی سازی الگوریتمهای معاملاتی مورد نظر کمک بگیریم. در ادامه به پیش نیازهایی که برای طراحی الگوریتمها نیاز است اشاره میکنیم:
تخصص در زمینهی برنامه نویسی جهت پیاده سازی استراتژی معاملاتی در الگوریتم
دسترسی به اینترنت و سامانه معاملات آنلاین جهت دریافت، رصد و تحلیل اطلاعات
ارتباط با سامانه معاملات جهت انجام معاملات و پوزیشن گیری
قابلیت امتحان کردن برنامه نوشته شده بر اساس گذشته بازار جهت بررسی نتایج عملکرد استراتژی (Back Test)
با الگو تریدینگ یا معاملات الگوریتمی چقدر میتوانیم سود کسب کنیم؟
میزان سودهای کسب شده با کمک الگو تریدینگ میتواند وابسته به استراتژیهای معاملاتی که در برنامه نویسی الگوریتمها اعمال میشود و نوع الگوریتم معاملاتی استفاده شده، متفاوت است. همچنین استفاده از معاملات الگوریتمی میتواند در بازارهای گوناگون نتایج بسیار متفاوتی داشته باشد. برای مشاهده میزان سودی که از طریق الگوریتم نوشته شده به دست میآید، باید با بک تست گرفتن از استراتژی طراحی شده در بازار مالی موردنظر، به جواب برسیم.
آیا تمام استراتژیهای تحلیل تکنیکال را میتوانیم با معاملات الگوریتمی اجرا کنیم؟
در صورت داشتن تخصص کافی و صرف وقت و تلاش میتوانید از تمامی ابزارهای تحلیل تکنیکال در معاملات الگوریتمی استفاده کنید. اما نحوه بررسی و تحلیل نمودارهای قیمت در بازارهای مالی توسط افراد گوناگون متفاوت است. همانطور که در فرضهای اولیه تحلیل تکنیکال بیان میشود، ممکن است در شرایط یکسان معاملاتی، نظر یک نفر رشد بیشتر سهم باشد و اقدام به خرید سهم کند و بلعکس در همان لحظه سرمایه گذار دیگری تحلیلش از شرایط سهم، ریزش قیمت باشد و اقدام به فروش کند.
از این رو استفاده از تحلیلهایی مانند خط روند، امواج الیوت، الگوهای هارمونیک و سایر ابزارها میتواند در نظر افراد گوناگون متفاوت باشد. به همین دلیل است که در معاملات الگوریتمی بیشتر از اندیکاتورها جهت یافتن نقاط ورود و خروج معاملات استفاده میشود.
آیا میتوان از معاملات الگوریتمی در بازار ایران استفاده کرد؟
معاملات الگوریتمی را در تمام بازارهای مالی میتوان استفاده کرد و با کمک آن کسب سود کرد. نکتهای که توجه به آن ضروری است، طراحی استراتژی معاملاتی و پیاده سازی الگوریتمها در برنامه نویسی، متناسب با بازار مورد نظر است. برای مثال اگر از یک الگوریتم معاملاتی برای بازار بورس ایران استفاده میکنید، ممکن است این الگوریتم در بازار رمز ارزها نتواند نتایج مطلوبی را داشته باشد.
جمع بندی
ما در عصری پر شتاب زندگی میکنیم که باید همواره خود را با تغییر و تحولات جهان سازگار کنیم و از این تغییرات در جهت پیشرفت بهره بگیریم. بیش از 85% معاملات در بازارهای مالی آمریکا با استفاده از معاملات الگوریتمی یا همان الگو تریدینگ انجام میشود که نشان از جایگاه ویژه این ابزار و دانش نزد معامله گران حرفهای دنیا دارد.
در این مطلب هرآنچه را جهت آشنایی اولیه با فرآیند معاملات الگوریتمی و نحوه اجرای آن نیاز بود را توضیح دادیم تا علاقهمندان به این موضوع بتوانند در ادامه بیشتر به فعالیت در این حوزه بپردازند.