معاملات الگوریتمی چیست؟
سالیان درازی است که معاملات در بازارهای مالی مانند بورس یا فارکس انجام میشود و بسیاری از سرمایهگذاران بزرگ در این بازارها به فعالیت مشغولاند. از سال 1398، با همه گیری ویروس کرونا در جهان، بسیاری از مردم در جایجای دنیا، از جمله کشور ایران، به دلیل تعطیلی کسبوکارهای اصلی خود، به معاملات در بازارهای بورس و رمزارز علاقهمند شدند.
سود حاصل از این بازارها در نگاه اول بسیار جذاب است، اما باید در نظر داشت که پاداش بزرگتر با خطرپذیری (ریسک) بزرگتری نیز همراه است. این ریسک، برای افراد عادی که وارد بازار میشوند، حتی بیشتر نیز هست. امروزه فقط انسانها نیستند که در این بازارها با انسانهای دیگری معامله میکنند، بلکه ماشینها نیز با انسان رقابت میکنند. ماشینها، هم از نظر سرعت انجام محاسبات و معاملات در بازار و هم از نظر تحلیل داده و پیشبینی آینده، از انسان قویترند؛ اما جای نگرانی نیست! چرا که با گسترش برنامههای متن باز، ابزارهای برنامهنویسی، اینترنت و محاسبات ابری، افراد معمولی نیز میتوانند همانند شرکتهای بزرگ، الگوریتمهای معاملاتی خود را پیاده کنند.
معاملات الگوریتمی چیست؟
قبل از آن که معاملات الگوریتمی را تعریف کنیم، نخست باید بدانیم که هدف از معاملات در بازارهای مالی همانند بورس یا رمزارز چیست. معاملهگری در بازارهای مالی یک فعالیت اقتصادی بسیار مهم است. معاملهگری در سیستم اقتصادی باعث میشود که نقدینگیِ بلااستفاده وارد بازار شود و هر زمان که نیاز بود، دوباره بتوان پول نقد را بازیابی کرد. همچنین معاملهگری اجازه میدهد که پول در بازارهای مختلف دست به دست شود و داراییهای مختلف با هم مبادله شوند.
معاملات الگوریتمی دستهای از معاملات در بازارهای مالی است که در آنها یک برنامۀ کامپیوتری (یک الگوریتم) خرید و فروش را انجام میدهد. معاملات الگوریتمی نامهای دیگری مانند الگو-ترِیدینگ[1] و معاملات خودکار[2] نیز دارد. این معاملات، با توجه به سرعت رایانهها در پردازش اطلاعات و ارسال درخواستها، میتواند سود قابل توجهتری نسبت به معاملات انسانها داشته باشد.
معاملات الگوریتمی بر پایه مدلهای ریاضی ساخته میشوند که استراتژی خرید و فروش را مشخص میکنند. در این مدلها از کمیتهایی مانند زمان، قیمت، تغییرات قیمت و حجم معاملات استفاده میشود و بر اساس آنها نحوۀ تصمیمگیری برای خرید یا فروش مشخص میشود.
مثالی ساده از معاملات الگوریتمی
فرض کنید یک معاملهگر از این استراتژی برای خرید و فروش یک سهم استفاده میکند:
- زمانی که قیمت میانگین سهم در 30 روز گذشته از قیمت میانگین سهم در 90 روز گذشته بیشتر میشود به مبلغ یک میلیون تومان از آن سهم میخرد.
- زمانی که قیمت میانگین سهم در 30 روز گذشته از قیمت میانگین سهم در 90 روز گذشته کمتر میشود، بخشی از سهام خود را میفروشد.
یک فرد معامله گر برای انجام این معامله باید روزانه سهام مورد نظر را بررسی کند و در ساعت مناسبی، با قیمت مناسب یک سفارش بدهد تا بتواند راهبرد (استراتژی) خود را عملی کند.
در معاملۀ الگوریتمی این دو دستورالعمل ساده در یک برنامه پیادهسازی میشوند و کامپیوتر به صورت خودکار قیمتها را در روزهای مختلف نظارت میکند و میانگین قیمت را محاسبه میکند. زمانی که رویداد مورد انتظار در دستورالعمل رخ میدهد، کامپیوتر بلافاصله آن را شناسایی میکند و دستور خرید یا فروش را ارسال میکند. پس دیگر نیازی نیست که معاملهگر خودش قیمتها را لحظه به لحظه رصد کند و خرید و فروش را در زمان مناسب انجام دهد؛ بلکه تمام این کارها را الگوریتم کامپیوتری با دقت و سرعت انجام میدهد.
انواع معاملات الگوریتمی
بسیاری از معاملات الگوریتمی از نوع معاملات با فرکانس بالا[3] هستند. معاملات فرکانس بالا، دستهای از معاملات هستند که در آنها، با سرعتهای بالا در بازارهای متعدد، تعداد زیادی سفارش داده میشود.
در الگوریتمهای با فرکانس بالا، حتی اگر سود حاصل از خرید و فروش کم باشد، از آنجایی که تعداد سفارشات بالاست و تعداد معاملات انجام گرفته بسیار زیاد است، الگوریتم میتواند در مجموع سود قابل توجهی را به دست آورد.
لزوماً هر وقت در مورد معاملات الگوریتمی صحبت میشود، مقصود معاملات با فرکانس بالا نیست. بسته به استراتژی خرید و فروش، انواع معاملات الگوریتمی را میتوان طراحی و پیادهسازی کرد.
دورۀ معاملات الگوریتمی مدرسه دانش
هدف از این دوره آن است که یاد بگیریم چگونه ما (افراد غیرحرفه ای) نیز می توانیم برای خود ماشینهایی درست کنیم که بتوانند معامله کنند. این دوره به مفاهیم پایهای معاملات الگوریتمی و نحوۀ پیادهسازی آن خواهد پرداخت و پیشنیاز آن آشنایی با زبان برنامهنویسی پایتون و علم دادۀ مقدماتی با پایتون است.
در این دوره به چند دلیل از زبان برنامهنویسی پایتون استفاده میکنیم:
- یادگیری پایتون آسان است.
- سرعت پیادهسازی طرح ها در پایتون بالاتر از دیگر زبانهاست.
- پایتون زبانی است که در علم داده و یادگیری ماشین کتابخانههای معروف و قدرتمندی دارد.
- امکان استفاده از API ها و Streaming API ها برای گرفتن دادههای تاریخی و دادههای لحظهای در پایتون به خوبی وجود دارد.
- پایتون، علاوه بر کتابخانههای قوی عددی، کتابخانههایی مخصوص معاملات الگوریتمی نیز دارد.
- بسیاری از مؤسسات سرمایهگذاری در دنیا، هم اکنون از پایتون استفاده میکنند و شمار آنها رو به افزایش است.
- افراد زیادی با پایتون کار میکنند، بنابراین ما میتوانیم از دیگران کمک بگیریم و مشکلات خود را با جستجوی ساده در اینترنت پیدا کنیم.
- پایتون یک زبان برنامهنویسی است که در حال و آینده موقعیتهای شغلی زیادی برای آن وجود دارد.
انتظار میرود که کسانی که این دوره را با موفقیت بگذرانند، بتوانند معاملات الگوریتمی با استراتژیهای ساده را به راحتی پیادهسازی کنند و الگوریتم خود را ارزیابی کنند.
پیشنیاز این دوره آشنایی با علم داده در پایتون است. دورۀ علم داده در مدرسۀ دانش تمامی مطالب مورد نیاز برای آشنایی با معاملات الگوریتمی را پوشش میدهد.
البته باید توجه شود که حوزۀ معاملات الگوریتمی نسبتاً محرمانه است؛ چرا که افرادی که الگوریتمهای موفقی ساختهاند، به راحتی آن را در اختیار دیگران نمیگذارد. ما آرزو داریم کسانی که این دوره را می گذرانند، بتوانند الگوریتمهای گوناگون را امتحان کنند و در نهایت به الگوریتمی دست یابند که برای آنها کسب درآمد خوبی را رقم بزند.
[1] Algo-trading
[2] Automated trading
[3] High-frequency trading