معاملات الگورتیمی چیست؟
آیا تا کنون میدانستید که معاملات الگوریتمی در بیش از ۸۰ درصد معاملات دنیا در بازارهای مالی کاربرد دارند؟ و آیا میدانستید که از ۵ هج فاند بزرگ دنیا، ۴ مورد، تخصصی روی معاملات الگوریتمی کار میکنند؟ با ما همراه باشید تا مفهوم معاملات الگوریتمی را کامل درک کنید.
این ۴ مورد عبارتاَند از:
- Bridgewater Associates که نزدیک ۱۶۰ میلیارد دلار سرمایه را مدیریت میکند.
- AQR Capital Management با سرمایهای در حدود ۸۰ میلیارد دلار.
- Renaissance Technology با ۸۰ میلیارد دلار سرمایه.
- Two Sigma Investments و ۵۰ میلیارد دلار سرمایهای که در اختیار دارد.
علاوه بر اینها، استفاده از الگوریتمها در معاملات، روزبهروز بیشتر و بیشتر میشود. اگر شما میخواهید سوار قطار معاملات الگوریتمی شوید، هیچ زمانی بهتر از الان نیست!
اما تفاوت این معاملات با معاملات اختیاری یا همان معاملات دستی، در چه چیزهایی است؟
معاملات الگوریتمی در برابر روش سنتی
در مفهوم معاملات الگوریتمی داریم که این معاملات ۱۰۰ درصد ماشینی هستند. از این رو، نسبت به روش سنتی، برتری کامل دارند. هیچ احساسی در کار نیست. و این دقیقاً نقطه ضعف معاملات دستی است. انسانها اغلب بر اساس احساسات و حالتهای روحی خود تصمیم میگیرند. این موضوع ۱۰۰ درصد هنگام معامله در فارکس یا هر بازار دیگری، تاثیرگذار است.
نکتهی بعدی رصد بازار است. رباتها میتوانند همیشه؛ بدون خستگی بازارها را رصد کنند. اما آیا شما میتوانید دائماً پای کامپیوتر باشید؟ قطعاً خیر. بهخصوص تریدرهای تازهکار (Retail Traders) که حتی نمیدانند چگونه باید بازار را رصد کنند!
موضوع مهم بعدی، بکتست است. شما میتوانید استراتژِیهای خود را روی دادههای تاریخچۀ بازار بکتست بگیرید. در حالی در معاملات دستی، چنین چیزی تقریباً میسر نیست. اگر هم باشد، بهخوبی معاملات الگوریتمی نیست.
تصمیمگیری در معاملات الگوریتمی
یکی از مواردی که هرگز نمیتوان آن را انکار کرد، موضوع تصمیمگیری در معاملات الگوریتمی است. انسانها در شرایط مختلف تصمیمهای مختلفی را، بسته به شرایط پیشآمده، اتخاذ میکنند. حتی اگر بارها در موقعیت یکسان قرار بگیرند، باز هم ممکن است تصمیمهای مختلفی داشته باشند. پس ابداً نمیتوان از نحوۀ تصمیمگیری افراد مطمئن بود.
اما از آنجایی که رباتهای معاملاتی هیچ نوع احساسی ندارند، پس، به منطقیترین شکل ممکن تصمیم میگیرند. فرقی نمیکند چند بار آنها را بر سر دو راهی خرید یا فروش بگذارید. مطمئن باشید رباتها هر بار همان تصمیم—یعنی درستترین تصمیم، مطابق با الگوریتمشان—را اجرا میکنند. در مفهوم معاملات الگوریتمی چیزی بهعنوان احساس تعریف نشده است.
وقتی صحبت بر سر معامله کردن است، قطعاً آخرین چیزی که نیاز داریم، احساسات است.
آیا انسانها در برابر رباتها برتری دارند؟
قطعاً معاملات الگوریتمی گزینهی نهایی نیستند. خوب بودن یک ربات (Expert Advisor) به کدنویسی خوب آن بستگی دارد. و خوب بودن معاملات یک فرد، به دانش و مهارتهای معاملاتی بالای آن فرد وابسته است. در مقام مقایسه، میتوان گفت یک تریدر میتواند از رباتهای بد، بهتر معامله کند. البته برعکس این هم صادق است. شما باید معیار مقایسهی خود را مشخص کنید.
توضیحی مختصر از معاملات الگوریتمی
وقتی دربارۀ «معاملات الگوریتمی و مفهوم آن» صحبت میکنیم، خیلی ساده، منظور ما همان الگوریتمهایی است که شما برای معامله کردن در بازارهای مالی، طراحی میکنید. بله، دقیقاً خود شما… شما یا هر کس دیگری میتوانید الگوریتم معاملاتی بنویسید.
معاملات الگوریتمی مختص سازمانهای بزرگ با الگوریتمهای بسیار پیچیدۀ میلیون دلاری و تیمهای حرفهای نیست. هر کسی میتواند برای اهداف خودش، الگوریتم بنویسد.
بنابراین، مفاهیمی مثل HFT را از ذهن خود بیرون کنید؛ زیرا HFT کار تریدرهای عادی نیست، و عملاً در برابر موسسات مالی و هزینههای میلیونی آنها، شانسی در HFT نخواهید داشت. پس وقتی صحبت از الگوریتم میشود، منظور طراحی رباتی است که بهجای شما معامله کند و در واقع شما دیگر نیازی به خرید و فروش دستی نداشته باشید. این ربات حداقل، بهتر و دقیقتر از شما در بازار کار میکند.
اما اجازه بدهید مثالی از نحوۀ عملکرد رباتهای معاملاتی و الگوریتمشان را با هم بررسی کنیم.
برای داشتن یک الگوریتم که بتواند بهجای ما معامله کند، باید یک سری شرطها و قوانین را رعایت کنیم. مثلاً میگوییم:
اگر قیمت ABC، مووینگ اَوریج ۳۰ روزهی خود را به سمت بالا قطع کرد، آنگاه الگوریتم باید اقدام به خرید کند.
اما اگر برعکس این شرایط اتفاق اُفتاد، یعنی اگر قیمت ABC، مووینگ اَوریج ۳۰ روزهی خود را به سمت پایین قطع کرد، آنگاه الگوریتم باید بفروشد.
البته این مثال بسیار ساده بود، و قطعاً با این الگوریتم نمیتوان در بازارهای مالی معامله کرد. اما مثال بسیار خوبی بود از اینکه یک الگوریتم چطور عمل میکند.
اما اگر قیمت ABC مانند مثال ما رفتار کند، چه اتفاقی خواهد اُفتاد؟
هر بار که، مانند تصویر زیر، ABC خط سیاه رنگ یا همان خط قیمت را به سمت بالا قطع میکند، الگوریتم خرید انجام میدهد، و هر بار عکس این قضیه باشد، الگوریتم فروش را در دستور کار خواهد داشت. همانطور که میبینید، این الگوریتم قطعاً سودده نیست. اما مهم نیست. فهمیدن عملکرد الگوریتم تنها هدف این مثال است.
معاملات الگوریتمی چه بخشهایی دارند؟
این نوع معاملات، اساساً از دو بخش تشکیل شدهاند. بخش اول، معامله کردن و بحث مالی است. و بخش دوم برنامهنویسی و علم داده را شامل میشود. بنابراین، الگو-تریدر باید این دو حوزه را خوب بشناسد و مفهوم معاملات الگوریتمی را کامل درک کند.
هرچه بیشتر در این دو حوزه اطلاعات داشته باشید، از سایرین یک قدم جلوتر هستید. اما بیایید این دو بخش را دقیقتر بررسی کنیم.
معامله کردن و اُمور مالی
همانطور که گفتیم، باید بر تمام مباحث این بخش مسلط شوید. حداقل مفاهیم مورد نیاز برای تسلط بر بخش اول معاملات الگوریتمی عبارتاَند از:
- مسلط بودن بر مفاهیم پایه
- تسلط بر بحث عرضه و تقاضا
- انواع داراییها (سهام، بازار آپشن، بازار آتی، فارکس، …)
- خرید و فروش در بازارهای مالی
- ۵) تفاوت قیمت Bid و Ask
- اهمیت نقدینگی
- معاملات مارجین
- مدیریت ریسک
- انواع معاملات
شاید در نگاه اول کمی سنگین باشد. اما برای اینکه در معاملات الگوریتمی موفق باشید، باید این موارد را کامل مسلط شوید. حتی برای ترید کردن به شیوۀ دستی هم باید این موارد را تا حد زیادی بدانید.
برنامهنویسی و علم داده
بخش دوم معاملات الگوریتمی، برنامهنویسی و علم داده است. اولین قدم در این حوزه، برنامهنویس شدن است! متاسفیم! راهی برای دور زدن این مورد نیست. اما برنامهنویسی و دانستن آن در هر شرایطی همیشه به نفع شماست.
اما چه زبانی را باید یاد بگیریم؟ پایتون.
زبان برنامهنویسی پایتون، قطعاً بهترین زبان برای معاملات الگوریتمی است. یادگیری آن هم چندان سخت نیست. در پلتفرمهای معاملات الگوریتمی این زبان بسیار به کار میآید. البته جایگزینهایی هم برای این زبان هست. از جمله زبانهای R، یا ++C و جاوا و حتی #C و غیره.
به محض تسلط بر یک زبان، یادگیری زبانهای دیگر بسیار سادهتر خواهد بود. اما در کنار زبان باید علم داده را نیز بلد باشید. این مبحث بسیار ضروری است. زیرا باید الگوریتم خود را با دادههای تاریخچۀ بازار—دادههایی با حجمهای بسیار بالا—تست کنید.
یکی از بهترین پایگاهها برای یادگیری زبانهای برنامهنویسی و سایر علوم، Udemy (یودِمی) است. این وبسایت تقریباً تمام دورههای مورد نیاز با عناوین بسیار گسترده را دارد.
قدم بعدی چیست؟
بعد از تسلط بر دو بخش بسیار مهم در معاملات الگوریتمی، باید الگوریتم خود را توسعه دهید. برای ساخت و توسعۀ یک الگوریتم، ۱۰ مرحله را برای شما آماده کردهایم تا خلاصهوار روند کار را شرح دهیم.
- ایده: شما باید ایدهای برای الگوریتم خود داشته باشید. در واقع الگوریتم شما باید جای خالی چیزی را در بازار پر کند. در واقع باید یک استراتژی برای معامله کردن بچینید.
- کد نویسی: قسمت دوم، تبدیل استراتژی به کد است. بدین ترتیب، کامپیوتر، حرف شما را میفهمد.
- بکتست: بعد از کد نویسی، باید الگوریتم آمادهشده را روی دادههای تاریخچۀ بازار تست کنید.
- بهینهسازی: همواره باید استراتژی خود را بهینهسازی کنید تا کیفیت آن حفظ شود.
- ایمنی: در این مرحله باید حد ضرر، حد سود و سایر موارد احتیاطی را در استراتژی خود تعیین کنید. همچنین اضافه کردن مدیریت ریسک به استراتژی ضروری است.
- تست و بهینهسازی: مجدد استراتژی خود را تست و بهینهسازی کنید. این دو مورد هرگز تمام نمیشوند.
- شبیهسازی: مرحلهی هفتم، شبیهسازی استراتژی در بازار است، البته بدون اینکه پول واقعی در کار باشد. بدین ترتیب اگر استراتژی شما بیش از حد بهینهسازی شده باشد یا مشکلی داشته باشد، در این مرحله مشخص میشود.
- شروع با سرعت کم: اگر از نتایج الگوریتم و استراتژی خود راضی هستید، میتوانید با سرمایۀ کم و سرعت پایین، کار خود را جدی شروع کنید.
- افزایش مقیاس: اگر همهچیز راضیکننده بود، میتوانید کمکم افزایش سرمایه دهید و در مقیاس بزرگتر کار کنید.
- بهینهسازی و رصد: با افزایش سرمایه، و جدیتر شدن کار، باید همواره استراتژی خود را برای شرایط مختلف بهینهسازی کنید. در معاملات الگوریتمی، اگرچه تمام کارها خودکار انجام میشود، اما باز هم باید استراتژی را رصد کنید.
گاهی ممکن است اکسپرتهای شما کاری را انجام دهند که به ضرر شما تمام میشود و شما متوجه این اتفاق نشوید. برای همین، رصد دائمی استراتژیها ضروری است. البته، قبل از اینکه کار کردن با پول واقعی را آغاز کنید، حتماً باید تمام ایرادات و اصطلاحاً باگهای استراتژی را کاملاً برطرف کنید تا در آینده دچار مشکل نشوید.
نتیجهگیری
مفهوم معاملات الگوریتمی و نقش مهم این معاملات در بازارهای امروزی را نمیتوان نادیده گرفت. هرچه جلوتر میرویم، این معاملات بیشتر و بیشتر طرفدار پیدا میکنند. اما برای یادگیری و تسلط بر این حوزه، علاوه بر تسلط بر مفاهیم ابتدایی بازارهای مالی، بایستی، بهطور خلاصه، ۴ مرحله را طی کنید: ۱) درک معاملات الگوریتمی و نحوۀ اجرا شدن این معاملات. ۲) تسلط بر تمام زوایای جهان معاملات و بازارهای مالی. ۳) یادگیری برنامهنویسی و علم داده. و ۴) طراحی و توسعۀ الگوریتمهای معاملاتی خودتان.
خوشبختانه در این مطلب با شمارۀ ۱ یعنی درک معاملات الگوریتمی تا حد زیادی آشنا شدید. پس، تنها ۳ قدم دیگر باقی مانده است. برای این سه قدم، میتوانید به وبسایت Udemy مراجعه کنید. دورههای مختلفی، از صفر تا صد، وجود دارند که میتوانید به راحتی تمام مباحث مورد نیاز را یاد بگیرید.
اگر دانش برنامهنویسی ندارید، باید ابتدا کمی در این حوزه کار کنید و سپس سراغ معاملات الگوریتمی بروید. نگران نباشید، مسیری که در این مطلب گفتیم، بسیار میسر سادهای است. شما فقط به اراده و کمی زمان نیاز دارید تا تبدیل به یکی از بهترین الگو-تریدرها شوید.