معاملات الگوریتمی در بورس
شروع معاملات در بورس به صورت فیزیکی و سنتی بود و برای خرید و فروش یک سهم باید به تالار بورس رفته و با توجه به قیمت روی تابلو فرم خرید یا فروش را پر می کردیم. کم کم با پیشرفت تکنولوژی می توان با استفاده از اینترنت به صورت آنلاین خرید و فروش کنیم.
در کنار این تغییرات نحوه معاملات هم تغییرات زیادی کرده اند. همچنین با بزرگ تر شدن بازار و بیشتر شدن تعداد سهم ها انسان به دلیل محدودیت های موجود نمی تواند همزمان تمام بازار را زیر نظر بگیرد. به خاطر همین سعی کردند در معاملات خود از هوش مصنوعی استفاده کنند.
تعریف معاملات الگوریتمی در بورس
به زبان ساده این معاملات را می توان این گونه بیان کرد که معاملات الگوریتمی معاملاتی هستند که توسط الگوریتم ها و برنامه های کامپیوتری انجام می شوند. این الگوریتم ها توانایی این را دارند که قیمت و حجم سفارشات و زمان بندی را در نظر بگیرند و بر اساس آن معامله کنند.
این معاملات مجموعه ای از دستورالعمل های تعریف شده هستند که شیوه تعریف آن ها بر اساس زمان بندی و قیمت و یا هر مدل ریاضی هستند.
برای استفاده از معاملات الگوریتمی داشتن استراتژی و تسلط به بازار بسیار مهم است و در صورت نبودن این ها نمی توان برنامه ای را برای ربات تعریف کرد.
برای استفاده از معاملات الگوریتمی باید به یکی از زبان های برنامه نویسی تسلط داشته باشید و یا نرم افزار آماده آن را تهیه کنید. در کنار این ها داشتن سخت افزار مناسب برای اجرای برنامه و تست آن واجب است.
در یک «الگوریتم»، دستورات مرحله به مرحله انجام میشوند؛ به عبارت دیگر کامپیوتر قدرت درک ندارد و تنها میتواند دستورات را در کمترین زمان با بالاترین دقت ممکن انجام دهد. بنابراین چیزی که ما از این ربات انتظار داریم، تحلیل بازار نیست، بلکه اجرای دستورات ما با دقت و سرعتی است که به صورت دستی نمیتوانیم از عهده آن برآییم.
معاملات الگوریتمی در بورس ایران به زبان و تعریف ساده در حقیقت معاملاتی هستند که با رسیدن قیمت به اعداد خاصی که مورد نظر است دستور خرید یا فروش خودکار را انجام می دهد.
پیشنیازهای معاملات الگوریتمی
برای گرفتن نتیجه مطلوب از این معاملات بستری برای اجرای مناسب آن نیاز است. بستر این معاملات به سه عامل زیر بستگی دارد:
مطابقت دهندههای بازار یا منبع تغذیه دادهها
این مطابقت دهندهها فرمت اطلاعات بازار را به فرمتی که برای سیستم قابل درک باشد، تبدیل میکنند. همچنین دسترسی لازم به اطلاعات حساب و دیتاهای بازار فراهم میکنند. این کار از طریق رابط برنامهنویسی یا همان API که بازار معاملاتی در اختیار معاملهگر قرار داده، انجام میشود.
موتور پردازش دادههای معاملات الگوریتمی
این موتور مغز متفکر معاملات الگوریتمی است. موتور پردازشگر در این مرحله الگوریتمهای برنامهریزی شده توسط استراتژیهای معاملاتی و شروط تعیین شده ما را با هم و در آن واحد روی کل بازار اعمال میکند و هرگاه شرایط لازم در سهمی پیدا شد، برای معامله تصمیمگیری میکند. به عنوان مثال فرض کنید که ما میخواهیم سهمهایی که در بازار RSI آنها زیر ۳۰ است را شناسایی کنیم. از بین صدها سهم بازار شاید برای انسان این کار بسیار زمانبر و دشوار است، اما برای یک موتور پردازش کننده بسیار راحت است.
ارسال سفارشات به بازار توسط الگوریتمها
در این مرحله سفارشاتی که با الگوریتمهای ما مطابقت دارند به بازار ارسال میشود. تنها نکتهای که اینجا مهم است این است که بستری که الگوریتم ما روی آن کار میکند، برای بازاری که در آن معامله میکنیم، قابل درک باشد.
بیشتر بخوانید: میزان عرضه پول یا نقدینگی چیست؟
بیشتر معاملات الگوریتمی که امروزه انجام میگیرد، معاملات با فرکانس بالا (HFT) هستند که تلاش میکند تعداد زیادی سفارش را با سرعت سریعتر در چندین بازار و با پارامترهای تصمیمگیری چندگانه بر اساس دستورالعملهای از پیش برنامهریزی شده، ثبت کند.
طبقه بندی معاملات الگوریتمی بر اساس عملکرد آن ها
هر معامله خودکار میتواند در نقطهای از طیف معاملات الگوریتمی قرار گیرد. اگر بخواهیم این طیف را بر اساس عملکردهای آن طبقهبندی کنیم، میتوانیم دستهبندی زیر را معرفی کنیم:
الگوریتمهای اجرای معاملات
الگوریتمهای معاملاتی صرفا برای اجرای دستورات معاملاتی تحلیلگر طراحی شدهاند. یعنی معاملهگر، نماد مورد نظر و نقطه ورود / خروج را انتخاب می کند.
فرض کنید یک معاملهگر میخواهد ۱۰۰ میلیارد تومان سهام فولاد خریداری کند. به طور واضح نمیتوان یک سفارش به ارزش ۱۰۰ میلیارد تومان در بازار ثبت کرد، این موضوع باعث تاثیرگذاری بر بازار میشود که معمولا برای معاملهگر زیان بار است، زیرا افراد با مشاهده سفارش او در قیمتهای بالاتر اقدام به خرید میکنند و قیمت قبل از اینکه معاملهگر سهام را خریداری کند، رشد میکند؛ به همین دلیل یک الگوریتم معاملاتی وظیفه شکستن سفارش به سفارشهای کوچک در حجمهای متفاوت و اجرای آنها در بازههای زمانی متفاوت دارد.
الگوریتمهای سیگنالدهی
همان طور که از اسم الگوریتم های سیگنال دهی مشخص است وظیفه رصد و تحلیل بازار را بر عهده دارند و به تنهایی سود آور نیستند. این الگوریتم ها داده های کل بازار را به صورت همزمان زیر نظر می گیرند و هر موقع شرایط یک سهم با استراتژی که از قبل مشخص کردیم مطابقت داشت به ما گزارش می دهد. در واقع می توان گفت یکی از مهم ترین کاربردهای این نوع فیلتر بازار و شناسایی سهم های خوب است.
الگوریتمهای مانیتورینگ یا پایش بازار
این الگوریتمها که به نوعی میتوان آنها را در طبقه الگوریتمهای سیگنالدهی هم قرار داد، وظیفه پایش و مانیتور کردن بازار را دارند.
به عنوان مثال فرض کنید قصد دارید با باز شدن نماد یک سهم، برای بازه کوتاهی نمادهای هم گروه این سهم را بفروشید یا خریداری کنید یا مثلا میخواهید به محض ارسال شدن اطلاعیه صورتهای مالی تعدادی از نمادهای خاص از آن مطلع شوید. یا در موارد حرفهایتر، قصد دارید در حالت کاهش نرخ بهره (وام)، شرکتهایی که کمترین مقدار وام را در حساب خود دارند شناسایی کنید. به کمک الگوریتمهای پایش بازار میتوانید با جستجوی شرایط مورد نظر خود بر روی همه یا بخشی از بازار، عملیات پایش بازار را انجام دهید.
الگوریتمهای تریدینگ
الگوریتمهای تریدینگ وظیفه خرید و فروش سهم بر اساس استراتژی از قبل تعیین شده معاملهگر را دارند. به عنوان مثال فرض کنید که استراتژی ما خرید پلکانی سهم در صف فروش و فروش آن در صف خرید است. بر همین اساس این الگوریتم به محض دیدن صف فروش در سهم مورد نظر عملیات خرید را آغاز و در قیمتهای از پیش تعیین شده و صف خرید، عملیات فروش سهم را آغاز میکند.
این نوع الگوریتمها براساس دوره زمانی از قبل برنامهریزی شده به دو نوع کمبسامد و پربسامد تقسیم میشوند.
الگوریتمهای کمبسامد (LFT)
منظور از الگوریتمهای تریدینگ کمبسامد (Low Frequency Trading) این است که فاصله زمان دریافت دادههای بازار زیاد است. به عبارت دیگر در این نوع الگوریتمها بالا بودن سرعت دریافت و پردازش دادهها خیلی مهم نیست. بر همین اساس استراتژیهای معاملاتی در این الگوریتمها برای تایمهای میان مدت و بلند مدت برنامهریزی میشوند.
این نوع الگوریتمها با توجه به محدودیتها با شرایط بازارهای داخلی ایران سازگار هستند.
الگوریتمهای HFT یا پر بسامد High Frequency Trading
الگوریتم های پر بسامد باید به طور متوسط مدت زمان خرید تا فروش دارایی خریداری شده آنها کمتر از پنج دهم ثانیه باشد تا در این طبقه قرار گیرند.
در بازار سرمایه بینالملل، کارگزاریهای بسیاری هستند که به ارزش معامله شما هیچ کاری ندارند اما برعکس به ازای هر معامله از شما کارمزد ثابتی دریافت میکنند.
حال اگر ارزش سرمایه شما به سمت بی نهایت میل کند، درصد کارمزد معامله به سمت صفر میل میکند. مثلا شما ممکن است ارزش معامله تان آنقدر زیاد باشد که در صورت رشد رقم چهارم بعد از ممیز به اندازه یک واحد، کارمزد معاملاتی شما پرداخت شود. این دسته از معاملات که بازار NASDAQ و NYSE را قبضه کرده است، معمولا در جفت ارزها Forex نیز بسیار پرکاربرد است، اما به دلیل ساختار کارمزد در ایران، استفاده از آن معمولا به دلیل کارمزد بالا با زیان همراه است.
دسته بندی الگوریتم ها بر اساس هدف
قبلا بیشتر طبقه بندی الگوریتم ها بر اساس نحوه اجرای آن ها بود ولی با توجه به اینکه سرمایه گذار بر اساس مجموعه ای از اهداف برای سرمایه گذاری خود تصمیم می گیرد، بنابراین می توان الگوریتم ها را بر اساس هدف دسته بندی کرد که در سه گروه اصلی زیر قرار می گیرند:
الگوریتمهای اثر محور (Impact-driven)
این دسته از الگوریتمها به دنبال حداقل کردن اثر کلی بر بازار هستند. به عبارت دیگر تلاش میکنند تا اثر معاملات بر قیمت دارایی را کاهش دهند. بنابراین سفارشهای با حجم بزرگ اغلب به سفارشهای با حجم کوچک شکسته میشوند و سپس در یک دوره زمانی طولانیتر در بازار ارسال و معامله میشوند. مشهورترین الگوریتمهایی که در این دسته قرار میگیرند عبارتند از:
- الگوریتم VWAP یا میانگین موزون حجمی قیمت (VWAP: Volume Weighted Average Price)
- الگوریتم TWAP یا میانگین موزون زمانی قیمت (TWAP: Time Weighted Average Price)
- الگوریتم POV یا درصد حجمی (POV: Percentage Of Volume)
- الگوریتم حداقل تاثیر (Minimal impact)
الگوریتمهای هزینه محور (Cost-driven)
این الگوریتمها به دنبال کاهش هزینه کلی معاملات هستند. بنابراین آنها باید اثر بازار، ریسک زمانی و عواملی همچون روند قیمت را در نظر بگیرند. منظور اصلی از هزینه معاملات، تفاوت قیمت تصمیمگیری و قیمتی است که معامله در آن انجام میشود. در حقیقت، زمانی که مدیر پرتفوی تصمیم به خرید یا فروش میگیرد ممکن است قیمت نهایی معامله با قیمت زمان تصمیمگیری متفاوت باشد. بنابراین این الگوریتمها به دنبال بهترین عملکرد و کمترین ریسک قیمت هستند.
مشهورترین الگوریتمهایی که در این دسته قرار میگیرند عبارتند از:
- الگوریتمهای حداقل هزینه اجرا (Implementation Shortfall)
- الگوریتمهای کمبود تطبیقی (Adaptive Shortfall)
- الگوریتمهای پایان بازار (Market On Close)
الگوریتمهای فرصت یاب (opportunistic)
این الگوریتمها به دنبال کسب منفعت از شرایط مطلوب بازار هستند و اغلب بر مبنای قیمت یا نقدینگی- محور هستند. الگوریتمهایی که در این دسته قرار میگیرند عبارتاند از:
- الگوریتمهای درون خطی قیمت (Price Inline)
- الگوریتمهای نقدشونده محور (Liquidity-driven)
- معاملات جفتی (Pair / Spread trading)
بیشتر بخوانید: صندوق های سرمایه گذاری و مزایای آن ها
مزایا و معایب معاملات الگوریتمی در بورس
این روش هم مانند تمامی روشهای دیگر مزایا و معایبی دارد. معاملهگران با آگاهی از آنها و شناختی که نسبت به خود دارند، میتوانند در مورد استفاده کردن از آن تصمیم بگیرند. در رابطه با مزایای روش معاملات الگوریتمی میتوان به موارد زیر اشاره کرد:
• امکان انجام تست پس از پیاده سازی استراتژی معاملاتی، بررسی بازخورد و در صورت نیاز اصلاح آن
• مشخص شدن میزان سود و ضرر احتمالی در مراحل پیش تست و کاهش میزان ریسک به وسیله اعمال تغییرات و بهینهسازی
• سرعت و دقت بالا در انجام معاملات
• دخیل نبودن احساسات انسانی که موجب اخذ تصمیمات هیجانی و برخلاف استراتژی انتخاب شده میشود.
• پیدا کردن سهام مد نظر در کسری از ثانیه
• تحلیل مقادیر زیادی از اطلاعات با چندین روش و در زمانی کم
• عدم تاثیرگذاری مواردی مانند خستگی ذهنی و خطای دید
بیشتر بخوانید: تحلیل تکنیکال چیست و چه کاربردی در بورس دارد؟
اگرچه روش معاملات الگوریتمی در تمام دنیا و در بازارهای مختلف استفاده میشود و یکی از محبوبترین روشها است اما معایبی را نیز میتوان برای آن در نظر گرفت:
- باگهای کدنویسی معاملات الگوریتمی
- ایجاد صف خرید یا فروش کاذب
- افزایش دستکاری در بازار
مجله اینترنتی تحلیلک
خیلی مطلب خوبی بود. ممنون از تحلیلک بابت مطالب خاصی که به اون میپردازه. یک سوال داشتم API مخفف چیه و ایا شما آموزش الگوریتم نویسی بازار سرمایه رو توی آموزش هاتون قرار می دین؟