معاملات الگوریتمی (Algorithmic Trading) معاملاتی خودکار، تجارت به شیوه جعبه سیاه یا معاملات الگویی خم نامیده میگردد. در این شکل از معاملات، از یک برنامه رایانهای بهره گرفته میشود که مجموعهای از دستورالعملهای ذکر شده (الگوریتم) را جهت انجام معاملات به کار میگیرد.
در تعریفهای مخصوص به تجارت و علوم اقتصادی اینگونه تعریف شده که این شکل از معامله قادر است با سرعت و فرکانس سود بدست بیاورد که برای انسان صورت دادن آن کاملاً غیرممکن خواهد بود.
از معاملات الگوریتمی چه میدانید؟
معاملات الگوریتمی علاوه بر موقعیت پرسودی که جهت فرد تجارتکننده به ارمغان میاورد، با درک و تحلیل تأثیرات مربوط به عواطف انسانی بر فعالیتهای تجاری معاملات را به شیوه سیستماتیک تری صورت خواهد داد. به نظر میاید تجارت الگوریتمی عامل انسانی را حذف خواهد کرد و در عوض از استراتژیهای بر پایه آمار از قبل تعیین شده پیروی خواهد کرد که قادر هستند هفت روز هفته ساعت و بوسیله کامپیوترها با کمترنی نظارت اجرا گردند.
رایانهها قادر هستند مزایای فراوانی نسبت به معاملهگران انسانی بوجود بیاورند. برای نخستین بار، آنها قادر هستند تمام روز، بدون خواب، فعالیت داشته باشند.
آنها علاوه بر این قادر هستند اطلاعات را به صورت دقیق تجزیه و تحلیل نمایند و به تغییرات میلی ثانیه پاسخ دهند. علاوه بر این، آنها هیچوقت احساسات را در موقعیت های حساسا خود فاکتور نمیگیرند.
به همین سبب ، مدتهاست که خیلی از سرمایهگذاران به این باور رسیده اند که ماشینآلات قادر هستند معاملهگران عالی داشته باشند، با توجه به اینکه آنها از استراتژیهای درست و بجا استفاده خواهند کرد.
چرا معاملات الگوریتمی؟
اغلب استراتژیهای معاملات الگوریتمی حول شناسایی موقعیت ها در بازار مطابق با آمار میباشد. تجارت لحظهای به دنبال پیروی از فرایند های کنونی میباشد و استراتژیهای یادگیری ماشینی در تلاش هستند فلسفههای پیچیدهتری را به شکل خودکار در بیاورند یا چندین مورد را به شکل همزمان پیاده کنند.
هیچ کدام از این موارد تضمین حقیقی جهت سودآوری نخواهد بود و معاملهگران باید بفهمند که الگوریتم صحیح یا ربات را کی و کجا استفاده نمایند. زمینه تجارت الگوریتمی نیز به همین صورت تکامل پیدا کرده است. در حالی که این فعالیت با تجارت رایانه در بازارهای سنتی شروع گردید، افزایش داراییهای دیجیتال و مبادلات جاری در هفت روز هفته این روند را به سطح تازه ای رسانده است.
تا حدودی به نظر میرسد که تجارت اتوماتیک و ارزهای رمز پایه جهت یکدیگر بوجود آمده باشند. درست است که کاربران هنوز هم باید استراتژیهای مخصوص خود را صورت بدهند، ولی اگر به درستی اعمال گردد، این تکنیکها قادر هستند به بازرگانان کمک داشه باشند دست خود را از چرخ بردارند و اجازه دهند ریاضیات کار خود را جلو ببرد.
بررسی دقیق تر کاربرد معاملات الگوریتمی
تصور کنید که یک شخص جهت انجام معاملات خود از این معیارهای تجاری ساده پیروی داشته باشد:
- وقتی میانگین متحرک ۵۰ روزه آن از میانگین متحرک ۲۰۰ روزه بالاتر رفت، ۵۰ سهم از سهام را میخرد. (میانگین متحرک میانگین دادهای نقاط گذشته میباشد که نوسانات قیمتی را روز به روز مرتفعتر خواهد کرد و در نتیجهی آن روندها مشخص میگردند.)
- فروش این سهام زمانی که میانگین متحرک ۵۰ روزه آن از میانگین متحرک ۲۰۰ روزه پایینتر برود.
با بهره از این دو دستورالعمل ساده، یک برنامه کامپیوتری به شکل خودکار ارزش سهام (و شاخصهای میانگین متحرک) را کنترل خواهد کرد و در شکل تناسب شرایط تعریف گردیده، سفارشات خرید و فروش را به انجام میرساند.
شخص معاملهگر دیگر نیازی به نظارت بر قیمتها و نمودارهای متغیر و به روز یا سفارشات به شکل دستی نخواهد داشت. سیستم معاملات الگوریتمی با شناسایی موقعیت های مناسب معامله به شکل خودکار این فعالیت را صورت میدهد.
مزایای انجام معاملات به روش الگوریتمی
مزایا معاملات الگوریتمی:
- معاملات با مناسب ترین قیمت ممکن صورت میگیرد.
- ثبت سفارش در این شکل معاملات دقیق و سریع خواهد بود. (اجرایی شدن آن در سطح دلخواه خیلی محتمل میباشد.)
- خیلی اهمیت دارد که معاملات پیش از تغییرات ارزشی قابل توجه به درستی و هر چه سریعتر صورت بگیرند که به شیوه الگوریتمی امری امکان پذیر میباشد.
- کم شدن هزینههای معامله
- بررسی خودکار همزمان در موقعیت های مختلف بازار
- کم شدن انواع خطاهای دستی در زمان انجام معاملات.
- معاملات الگوریتمی را میتوان با بهره از اطلاعات موجود در زمان حقیقی و درست مورد آزمایش دوباره قرار داد تا ببینیم آیا میتوان این گونه از معاملات را یک استراتژی مناسب و هوشمندانه در انجام معاملات تجاری محسوب کرد و یا خیر.
- از احتمال وقوع خطاهای فراوان بوسیله معاملهکنندگان انسانی (و نه ماشینی) در اثر عوامل روحی و روانی کمتر میکند.
اغلب معاملات الگوریتمی که اکنون انجام میگیرد، معاملات با فرکانس بالا (HFT) میباشند که سعی میکند تعداد فراوانی سفارش را با سرعت بیشتر در چندین بازار و با پارامترهای تصمیمگیری چندگانه مطابق با دستورالعملهای از قبل برنامهریزی شده، ثبت نماید.
معاملات الگوریتمی در صورت های گوناگون معامله، خرید و فروش و فعالیتهای متنوع سرمایهگذاری مورد بهره قرار میگیرد از قبیل:
- سرمایهگذاران میان مدت و یا بلند مدت یا موسسات بازرگانی طرف خرید، صندوقهای بازنشستگی، صندوقهای سرمایهگذاری، شرکتهای بیمه و برخی دیگر از معاملات الگوریتمی جهت خرید سهام در مقادیر بالا استفاده میکنند، هنگامی که نمیخواهند با سرمایهگذاریهای گسسته و پر حجم بر ارزش سهام تأثیر گذار باشند.
- سرمایهگذاران کوتاه مدت و شرکای طرف فروش، سازندگان بازار (مانند کارگزارها)، دلالان و داوران از مزایای معاملات خودکار استفاده میکنند. علاوه بر این، معاملات الگوریتمی به ساخت نقدینگی کافی جهت فروشندگان در بازار کمک خواهد کرد.
معاملات الگوریتمی نسبت به شیوه های مبتنی بر شهود یا غریزه معاملهگر، رویکرد سیستماتیکتری در معاملات فعال فراهم خواهد کرد.
استراتژی های معاملات الگوریتمی
هر استراتژی جهت معامله خودکار (الگوریتمی) نیاز به موقعیتی مشخص خواهد داشت که از لحاظ بهبود درآمد یا کاهش هزینه سودآور باشد. در ادامه چند نمونه از استراتژی های معاملاتی مشهور را بررسی خواهیم کرد:
استراتژی های دنباله روی ترندها
مشهور ترین استراتژیهای معاملات الگوریتمی در خصوص میانگین متحرک، شکست کانال، تغییرات سطح قیمت و سایر شاخصهای فنی مرتبط مورد بهره قرار میگیرند. اینها ساده ترین و آسان ترین استراتژیهایی میباشند که قادر هستند از طریق معاملات الگوریتمی اجرا گردند ، چراکه این استراتژیها پیش بینی قیمت انجام نمیدهند.
معاملات مطابق با وقوع روندهای منسب شروع میشوند چرا که اجرای آنها از طریق الگوریتمها فاقد وارد شدن به پیچیدگی تحلیل و پیشبینی، آسان و ساده خواهد بود. اشخاصی که دنباله روی ترندها میباشند بهره از میانگین متحرک ۵۰ و ۲۰۰ روزه را به عنوان یک استراتژی مشهور در دستور کار خود قرار خواهند داد.
فرصت های آربیتراژ
آربیتراژ (Arbitrage) به معنی دریافت سودی فاقد ریسک از اختلاف قیمت دو بازار مختلف میباشد ، یعنی شما سهامی را از یک فهرست در یک بازار خریداری میکنید و همان سهام را همزمان در بازاری دیگر با قیمت بیشتر به فروش میرسانید و از این اختلاف قیمت سود بدست میاورید؛ ما این سود فاقد ریسک را آربیتراژ مینامیم. همان عملکرد را میتوان جهت سهام در برابر ابزارهای آتی داشت؛ چراکه اختلاف قیمت در هر بازهای از زمان در بازارها وجود خواهد داشت.
اجرای یک الگوریتم معین به جهت شناسایی این تفاوت قیمتها و ثبت کارآمد سفارشات، موقعیت های سودآوری را بدست خواهد آورد.
توازن مجدد صندوق شاخص
صندوقهای شاخص دورههای متعادلسازی مجددی را تعریف کردهاند تا منابع خود را با شاخصهای معیار مربوط با آن برابر کنند. این کار فرصتهای سودآوری را برای معاملهگران روش الگوریتمی ایجاد میکند که معاملات مورد انتظار را که بسته به تعداد سهام در صندوق شاخص و قبل از به تعادل رساندن مجدد آن، ۲۰ تا ۸۰ امتیاز پایه دریافت میکنند، سرمایهگذاری میکنند.
این شکل معاملات از طریق سیستمهای معاملات الگوریتمی جهت اجرای به موقع و شناسایی منسب قیمتها آغاز میگردد.
ربات معاملاتی چیست؟
در ساده ترین سطح، یک ربات تجارت الگوریتمی یک کد رایانهای میباشد که قدرت تولید و اجرای سیگنالهای خرید و فروش در بازارهای مالی را خواهد داشت.
اجزای اصلی اینگونه رباتی شامل قوانین ورود به سیستم میباشد که زمان خرید یا فروش سیگنال میدهد. قوانین خروج بیان میکند که چه هنگامی موقعیت کنونی و قوانین اندازهگیری موقعیت که مقدار خرید یا فروش را تعریف میکند را ترک نمایید.
جهت داشتن سودآوری، ربات میبایست کارآیی بازار را به شکل منظم و مداوم شناسایی نماید.
توسعه استراتژی های الگوریتمی
نخستین گام در توسعه استراتژیهای الگوریتمی، تأمل در بعضی از قابلیت های اصلی میباشد که هر استراتژی تجارت الگوریتمی باید داشته باشد. این استراتژی باید از نظر بازار هوشمندانه باشد.
علاوه بر این مدل ریاضی مورد استفاده در تدوین استراتژی باید مطابق با شیبوه های آماری صحیح باشد.
در مرحله بعدی، تعیین کنید که ربات شما قصد دارد چه اطلاعاتی را به دست آورد. برای داشتن یک استراتژی خودکار (الگوریتمی) باید رباتی داشته باشید که قادر به ضبط ناکارآمدیهای مداوم بازار باشد.
استراتژیهای معاملات الگوریتمی از مجموعهای از دستورالعملهای دشوار جهت بهرهگیری از رفتار بازار پیروی خواهند کرد و وقوع یکباره ناکارآمدی بازار جهت تولید یک استراتژی کافی نخواهد بود.
بهعلاوه، اگر علت ناکارآمدی بازار غیرقابل شناسایی باشد، هیچ راهی برای دانستن اینکه آیا موفقیت یا شکست استراتژی به دلیل شانس بوده است یا خیر وجود نخواهد داشت.
با در نظر گرفتن موارد بالا ، انواع گوناگونی از استراتژیها جهت آگاهی از طراحی ربات تجارت الگوریتمی شما وجود خواهد داشت.
استراتژیهایی که از موارد زیر (یا ترکیبی از آنها) استفاده میکنند:
- اخبار اقتصادی کلان (به عنوان نمونه، حقوق و دستمزد غیر مزرعهای یا تغییرات نرخ بهره)
- تجزیه و تحلیل اساسی (به عنوان نمونه، با بهره از اطلاعات درآمد یا یادداشتهای انتشار درآمد)
- تجزیه و تحلیل آماری (به عنوان نمونه، همبستگی یا ادغام مشترک)
- تجزیه و تحلیل فنی (به عنوان نمونه، میانگین متحرک)
- ریزساختار بازار (به عنوان نمونه آربیتراژ یا زیرساختهای تجاری)
فراتر از الگوریتم های معاملاتی معمول
چند نوع بخصوص از الگوریتمها وجود دارد که اتفاقاتی را که در سوی دیگر میافتند شناسایی میکنند. یک سازنده در بازار فروش برای نمونه از این نوع از الگوریتمها استفاده میکند؛ چرا که دارای هوشمندی لازم جهت شناسایی وجود هر گونه الگوریتم در طرف ثبت یک سفارش بزرگ خواهد بود.
چنین ردیابی از طریق الگوریتمها به معاملهگر در یک بازار کمک میکند تا فرصتهای بزرگی که در انتخاب سفارشات پیش میآیند را شناسایی کند.
این کار بعضی اوقات به عنوان عملکردی پیشرفته شناخته خواهد شد.
الزامات فنی برای معاملات الگوریتمی
به کارگیری الگوریتم با استفاده از یک برنامه رایانهای آخرین مؤلفه معاملات الگوریتمی است که با آزمایش مجدد همراه است (آزمایش عملکرد الگوریتم در دورههای گذشتهی بازار سهام برای کسب اطلاع از نحوهی سودآوری آن).
چالش اصلی این میباشد که استراتژی شناسایی شده را به یک دستور کامپیوتری یکپارچه تبدیل نمایید که جهت ثبت سفارش به حساب تجاری دسترسی دارد. موارد زیر الزامات تجارت الگوریتمی میباشد :
- دانش برنامهنویسی کامپیوتری جهت برنامهریزی استراتژیهای معاملاتی مورد نیاز، در صورتی که دانش برنامهنویسی ندارید ولی علاقه مند به انجام معاملات الگوریتمی میباشید ، پیشنهاد میکنیم برنامهنویسانی را جهت این کار استخدام نمایید و یا از نرمافزارهای پیشساخته معاملاتی بهرمند گردید.
- اتصال به شبکه و دسترسی به سیستم عاملهای تجاری جهت ثبت سفارش.
- دسترسی به فیدهای اطلاعات بازار که بوسیله الگوریتم در موقعیتهای ثبت سفارش کنترل میگردند.
- قدرت و همچنین داشتن زیرساختهای بخصوص در مواقع نیاز به کنترل سیستم پیش از اینکه در بازارهای حقیقی فعال گردد.
- اطلاعات پیشین موجود جهت آزمایش مجدد بسته به پیچیدگی قوانین پیادهسازی شده در الگوریتم.
برنامه رایانهای مورد بهره شما باید موارد زیر را به انجام برساند:
- فید قیمت آینده سهام RDS را از هر دو بورس بخواند.
- با بهره از نرخ ارز موجود، یک ارز را به ارز دیگر تبدیل کنید.
- اگر اختلاف قیمت قابل توجهی وجود داشته باشد (به علت حذف هزینههای کارگزاری) که منجر به یک فرصت سودآور میشود، برنامه باید بتواند سفارش خرید را در بورس با قیمت پایینتر قرار دهد و سفارش را در بورس با قیمت بالاتر بفروشد.
اگر سفارشات به دلخواه انجام گردند سود آربیتراژ به دنبال خواهد داشت.
شاید به نظر ساده و آسان باشد، ولی با این حال نگهداری و اجرای معاملات الگوریتمی به همین سادگی نخواهد بود. به خاطر داشته باشید اگر یک سرمایهگذار موفق شود معاملهای انجام دهد، دیگر فعالان در عرصهی تجارت در بازار نیز قادر هستند این کار را انجام دهند.
در نتیجه، قیمتها در صدم ثانیه و حتی میکروثانیه نوسان میکنند. در مثال بالا، چه اتفاقی میافتد اگر یک معامله خرید انجام شود، اما معامله فروش متفاوت باشد، یعنی قیمت فروش در زمان ورود سفارش به بازار تغییر کند؟ پاسخ این است که معاملهگر با موقعیتی آزاد روبرو خواهد شد و استراتژی آربیتراژ را بیارزش میکند.
خطرات و چالشهای اضافی نظیر ریسک خرابی سیستم، خطاهای اتصال به شبکه، فاصله زمانی میان سفارشات و اجرا و از همه اصلی تر الگوریتمهای ناقص وجود نخواهد داشت.
هر چه الگوریتم پیچیدهتر طراحی گردد، آزمایش مجدد سختگیرانهتری پیش از عملی شدن لازم خواهد داشت.