
معاملات الگوریتمی (Algoritmic Trading) که به معاملات خودکار نیز شناخته میشود، یک برنامه کامپیوتری است که بر اساس دستورالعملهایی که از قبل تعیین شده، معاملات در بازار ارزهای دیجیتال را انجام میدهد. در واقع این نوع معاملات توسط یک برنامه کامپیوتری انجام میشود و برای انجام ترید نیازی به حضور تریدر در بازار نخواهد بود. همچنین سرعت پردازش بالای کامپیوتر در مقایسه با انسان، این روش را بسیار کارآمدتر و عموما پرسودتر از ترید توسط انسان کرده است. این مقاله را به آموزش این نوع معاملات اختصاص دادهایم.
معاملات الگوریتمی چیست؟
همه ما – حتی کسانی که تاکنون برنامهنویسی نکردهاند – میدانیم که کامپیوترها و سیستمهای کامپیوتری برای انجام هرکاری نیاز به برنامه دارند. اما برنامه نویسی معمولا با نوشتن برنامه آغاز نمیشود. قبل از نوشتن برنامه لازم است گام به گام، کارهایی را که باید برنامه انجام دهد، تعریف کنیم. به این تعریف گام به گام یک عملیات، طراحی الگوریتم یا Algorithm گفته میشود. در مورد روش معاملات الگوریتمی نیز به تعریف یک سلسله شرایطی مانند، زمان، قیمت، حجم و… برای انجام معاملات توسط یک برنامه کامپیوتری نیاز داریم. معمولا برای پیادهسازی این شرایط و تفهیم این شرایط به زبان کامپیوتر، از کدنویسی و استفاده از زبانهای برنامهنویسی رایج، استفاده میکنیم. مشخصه بارز معاملات الگوریتمی این است که انسان در انجام معاملات نقشی ندارد و تمام مراحل یک ترید، اعم از تحلیل بازار، تعیین نقطه ورود، تعیین مقدار سرمایه درگیر در هر معامله، حد سود و حد ضرر توسط برنامه کامپیوتری انجام میشود. در این روش، تریدر به طور مستقیم در بازار حضور ندارد اما در صورتی که از روش مناسبی استفاده کند، برنامه ترید او، برای او کسب ثروت خواهد کرد.
ذکر یک مثال ساده برای تبیین Algorithmic Trading
برای درک بهتر از این روش معاملاتی، یک مثال بسیار ساده از معاملات الگوریتمی میزنیم. اندیکاتور میانگین متحرک جزو اندیکاتورهای بسیار ساده در تحلیل تکنیکال است. یکی از روشهای انجام ترید با استفاده از این اندیکاتور، استفاده از دو اندیکاتور ۵۰ و ۲۰۰ روزه است. مطابق قوانین این اندیکاتور، درصورتی که میانگین متحرک ۵۰ روزه، میانگین متحرک ۲۰۰ روزه را به سمت بالا بشکند، سیگنال خرید صادر شده و هنگامی که میانگین متحرک ۵۰ روزه در زیر میانگین متحرک ۲۰۰ روزه قرار بگیرد، سیگنال فروش صادر میشود. اگر تریدری بخواهد با استفاده از این اندیکاتور، معاملات خودکار انجام دهد، باید همین دو شرط را به زبان کامپیوتر پیادهسازی کند. پس ما احتیاج به یک برنامه کامپیوتری داریم که دو اندیکاتور میانگین متحرک ۵۰ و ۲۰۰ روزه را برای تمامی ارزهای دیجیتال محاسبه کند. هر زمان و در هر نموداری، اگر میانگین متحرک ۵۰ روزه بالاتر از میانگین متحرک ۲۰۰ روزه قرار گرفت، در همان لحظه اقدام به خرید آن دارایی دیجیتال کرده و زمانی که برعکس آن اتفاق افتاد، از بازار خارج شده و دارایی خریداری شده را به فروش برساند. به همین ترتیب بر اساس شرایطی که برای برنامه تعیین شده، اگر موقعیتی برای ورود بوجود آمد، برنامه به صورت خودکار معامله را آغاز میکند. با استفاده از چنین برنامهای نیاز به حضور تریدر در بازار نخواهد بود. این نوع معاملات که تماما توسط کامپیوتر انجام میشود را معاملات الگوریتمی میگویند.
مزایای استفاده از معاملات الگوریتمی چیست؟
استفاده از این روش برای انجام معاملات و ترید در بازار ارزهای دیجیتال مزایای زیر را به همراه دارد:
- انجام سفارش خرید و فروش به صورت خودکار و توسط برنامه صورت خواهد گرفت، بنابراین همواره سفارشها در بهترین قیمت انجام میشود.
- زمان، در این روش معنایی ندارد. در تمام ساعات شبانهروز به محض برقرار شدن شرایط ورود، معامله انجام خواهد شد.
- امکان بررسی و ارزیابی چندین نماد مختلف در یک لحظه وجود دارد. انجام تحلیل همزمان نمودار قیمت چند دارایی دیجیتال توسط انسان غیرممکن است.
- با استفاده از این روش، احتمال وقوع خطای انسانی در زمان انجام معاملات به دلیل خستگی یا بی دقتی، به صفر میرسد. خطا در یک برنامه کامپیوتری، غیرممکن است.
- یکی از مزایای مسلم این روش، آزمودن و صحتسنجی آن با استفاده از اطلاعات گذشته است. با انجام این کار میتوان ایرادهای موجود در این روش را شناسایی و رفع کرد.
- حرفهایترین تریدرها و معاملهگران هم در مواقعی تصمیمات احساسی گرفته و احساساتشان بر منطق معاملاتیشان غلبه میکند و این اتفاق منجر به زیان آنها میشود. اما برای یک برنامه کامپیوتری، احساسات مفهومی ندارد و تمام کارها مطابق الگوریتم انجام خواهد شد.
استراتژیهای Algorithmic Trading
معاملات الگوریتمی مختص استفاده از اندیکاتورها و ترکیب شدن آنها نیست بلکه در تعریف عام آن هرجایی در بازارهای مالی که موقعیتی برای کسب سود فراهم است، این روش وارد میشود. در ادامه به برخی از استراتژیهای رایج در انجام این معاملات اشاره خواهیم کرد.
استراتژیهای دنبالکننده روند
یکی از رایجترین استراتژیهای مورد استفاده در معاملات الگوریتمی ، شناسایی روند و همراه شدن با روند بازار است. این شناسایی روند با استفاده از اندیکاتورهای رایج در تحلیل تکنیکال انجام میشود. این استراتژی، یکی از سادهترین استراتژیها در میان دیگر روشها است. زیرا این استراتژی، نیازی به پیشبینی قیمت در آینده ندارد و صرفا با روند فعلی بازار همراه خواهد شد. استفاده از میانگین متحرک ۵۰ روزه و ۲۰۰ روزه که در ابتدای این مقاله اشاره شد، جزو این دسته تقسیمبندی میشود.
فرصتهای آربیتراژ
این فرصت زمانی ایجاد میشود که یک دارایی دیجیتال، در دو (یا بیشتر) صرافی مختلف معامله شود و قیمت آن در یکی از این صرافیها کمتر از دیگر صرافیها باشد. در چنین شرایطی میتواند این دارایی دیجیتال را در صرافی که قیمت پایینتری دارد، خریداری کرد و با انتقال به صرافی دیگر، در قیمت بالاتری به فروش رساند. این الگوریتم باید اختلاف میان قیمت یک دارایی واحد در بازارهای مختلف را رصد کند و در صورت یافتن یک دارایی که شرایط آربیتراژ را دارد، به صورت مداوم معاملات را بر روی همان دارایی انجام دهد. تا زمانی که این اختلاف قیمت وجود داشته باشد، این الگوریتم، معاملات را به سرعت انجام میدهد و به محض برطرف شدن اختلاف قیمتی، این معامله بسته خواهد شد. به دلیل آنکه این معاملات به سرعت انجام میشود ممکن است صدها یا هزاران معامله را بر روی یک دارایی انجام شود که در مجموع سود قابل توجهی را به ارمغان خواهد آورد. البته معاملات آربیتراژ توسط انسان نیز قابل انجام است؛ اما استفاده از معاملات الگوریتمی سرعت و دقت و تعداد معاملات را بسیار افزایش خواهد داد که در نهایت سود بالاتری را برای تریدر به ارمغان میآورد.
زمان بازتنظیم شاخصها
در بازارهای مالی شاخصهای زیادی وجود دارد که معدل و میانگین وضعیت یک گروه خاص و یا بخش خاصی از بازار را نمایش میدهد. برای مثال، شاخص دیفای در بازار ارزهای دیجیتال، نماینده رفتار چند پروژه دیفای مطرح در بازار ارزهای رمزنگاری شده است. عدد این شاخص، میانگینی از قیمت ارزهای دیجیتال موجود در حوزه دیفای است. این شاخص معمولا در بازههای زمانی مشخصی و با توجه به تغییرات قیمتی داراییهای پشتوانه خود، بازتنظیم میشوند. در زمانی که تغییرات قیمتی شدیدی در قیمت پروژههای دیفای اتفاق میافتد، این شاخص به سرعت تغییر نخواهد کرد و طبیعتا با یک اختلاف زمانی تغییرات در آن اعمال خواهد شد. این زمان فرصت مناسبی برای ورود معاملات الگوریتمی است. در چنین شرایطی نیز میتوان از تاخیر در محاسبه مجدد شاخصها برای کسب سود استفاده کرد.
استراتژیهای مبتنی بر مدلهای ریاضی
مدلهای ریاضی اثبات شده، مثل استراتژی معاملاتی Delta-neutral، که امکان انجام معامله بر روی ابزارهای اختیار معامله و معاملات مشتقه را با استفاده از روشهای ریاضی فراهم کرده است. در این روش اختلاف قیمت بین معاملات مشتقه یک دارایی با قیمت دارایی اصلی در بازار اسپات رصد میشود و در صورتی که بر اساس استراتژی، شرایط برای باز کردن پوزیشن لانگ یا شورت فراهم باشد، به صورت خودکار سفارشها فعال خواهد شد. در این روش گاهی سود حاصل از یک معامله زیر یک درصد است اما به دلیل آنکه این معاملات توسط برنامه و به صورت خودکار انجام میشود، تعداد معاملات انجام شده بالاست و در نهایت مجموع سودهای حاصل از این معاملات الگوریتمی ، عدد قابل توجهی خواهد بود.
استراتژی Mean reversion
این استراتژی معاملات الگوریتمی بر اساس نظریه بازگشت به میانگین طراحی شده است. در این استراتژی، بالاترین و پایینترین قیمت یک دارایی در یک بازه زمانی مشخص، یک اتفاق مقطعی در بازار تلقی میشود که به صورت طبیعی در بازار رقم میخورد و معمولا قیمت، به مقدار میانگین خود بازمیگردد (البته این مورد براساس احتمالات است و رفتار چرخهای بازار معمولا چنین شرایطی را بوجود خواهد آورد). شناسایی و تعریف یک بازه قیمتی و طراحی یک الگوریتم براساس آن، به برنامه معاملاتی این امکان را میدهد تا به صورت خودکار معاملات را انجام دهد. زمانی که قیمت از بازه قیمتی تعریف شده در الگوریتم تجاوز کند، شرایط برای باز کردن پوزیشن معاملاتی فراهم میشود. در چنین شرایطی، نقطه خروج از این معامله، بازگشت قیمت به میانگین بازه تعیین شده است.
استراتژیهای مورد استفاده در ترید داراییهای دیجیتال و دیگر داراییها بسیار گستردهاند. اما ویژگی یکسان در تمامی آنها، داشتن یک الگوریتم و دستورالعمل برای شرایط یک معامله و انجام آن توسط یک برنامه کامپیوتری و به صورت خودکار است. این الگوریتم و استراتژی بسیار متنوع است و هر تریدر بر اساس تحقیقات و تجربیات شخصی خود آن را تعریف میکند. سپس رباتهای معاملاتی این استراتژی را در بازار پیاده میکنند. در ادامه این مقاله احتیاجات فنی برای داشتن یک معامله الگوریتمی را معرفی خواهیم کرد.
الزامات فنی برای یک Algorithmic trading
اجرای معاملات الگوریتمی با استفاده از برنامه کامپیوتری بخش نهایی در یک طرحریزی یک الگوریتم است. صحتسنجی این الگوریتم که اصطلاحا Backtesting گفته میشود، یکی دیگر از مولفههای ضروری در طراحی و اجرای معاملات الگوریتمی است. اما بخش مهم، تعریف روش معامله به زبان کامپیوتر است. در واقع پیادهسازی آنچه در ذهن معاملهگر است به زبان قابل فهم برای کامپیوتر یکی از مراحل اصلی در طراحی یک الگوریتم معاملاتی است. انجام این کار نیازمند داشتن دانش فنی در حوزههای زیر است:
- دانش برنامهنویسی کامپیوتر برای کدنویسی و معرفی استراتژی معاملاتی به کامپیوتر. یا خود تریدر باید این دانش را کسب کند یا برای پیادهسازی شرایط لازم برای انجام معاملات الگوریتمی ، از یک برنامهنویس کمک بگیرد.
- اتصال به شبکه و دسترسی به پلتفرمهای معاملاتی به منظور انجام معاملات، مانند صرافی بایننس یا هر پلتفرم معاملاتی دیگر در بازار ارزهای دیجیتال که امکان انجام معاملات الگوریتمی در آن وجود دارد.
- دسترسی به اطلاعات بازار؛ الگوریتم طراحی شده باید به اطلاعات بازار اعم از قیمت، حجم، تاریخ معاملات و هر گونه اطلاعات دیگری که الگوریتم به آن نیاز دارد، دسترسی داشته باشد.
- سیستم معاملاتی باید امکان صحتسنجی و بک تست را داشته باشد تا پیش از انجام معاملات واقعی، صحت الگوریتم و استراتژی آن ارزیابی شود. این کار ریسک از دست رفتن سرمایه در معاملات الگوریتمی را به میزان زیادی کاهش خواهد داد.
به این لیست میتوان موارد بیشتری اضافه کرد اما نکات مهم در پیاده سازی یک استراتژی برای انجام معاملات الگوریتمی شامل موارد فوق میشود. در ادامه برای فهم بهتر این روش معاملاتی یک مثال واقعی از یک معاملات الگوریتمی را دنبال میکنیم.
یک مثال واقعی از معاملات الگوریتمی
شرکت نفت شل رویال در دو بازار سهام آمستردام هلند و بازار سهام لندن لیست بوده و معاملات آن در این دو بازار سهام انجام میشود. استراتژی معاملات الگوریتمی پیادهسازی شده در بازار این سهام، آربیتراژ است. با استفاده از این الگوریتم، هر زمان فرصت آربیتراژ در سهام این شرکت بوجود آید، معاملات به صورت خودکار انجام خواهد شد.
قیمت سهام این شرکت در بازار سهام آمستردام به یورو محاسبه میشود، در حالی که قیمت سهام آن در بازار سهام لندن، به پوند محاسبه میشود. در واقع سهام این شرکت دارای دو قیمت مختلف به یورو و پوند است. با توجه به اختلاف ساعت آغاز کار بازار سهام در کشورهای مختلف، معاملات سهام این شرکت در بازار بورس اوراق بهادار آمستردام یک ساعت زودتر از بازار سهام لندن آغاز میشود. میتوان قیمت سهام این شرکت در این دو بازار را رصد کرد تا هر زمان اختلاف قیمتی در آنها مشاهده شد، معاملات آربیتراژ به صورت خودکار انجام شود. برای انجام این کار به موار زیر احتیاج است:
- استفاده از یک کامپیوتر که قیمت سهام را در دو بازار رصد کند.
- دریافت اطلاعات قیمت از بازار سهام لندن و آمستردام
- استفاده از یک پلتفرم انتشار قیمت ارزها در بازار فارکس، که نسبت قیمت پوند به یورو را محاسبه کند.
- استفاده از یک پلتفرم معاملاتی برای انجام معاملات
- استفاده از تاریخچه معاملاتی برای صحتسنجی کار الگوریتم
این برنامه کامپیوتری باید مراحل زیر را انجام دهد:
- دریافت قیمت سهام شرکت نفت رویال در دو بازار سهام
- اطلاع از قیمت لحظهای نسبت پوند به یورو در بازار فارکس
- محاسبه اختلاف قیمت در دو بازار سهام و مقایسه آن با استفاده از نسبت پوند به یورو و محاسبه کارمزد انجام معاملات. در صورتی که اختلاف میان آنها، قابل توجه بود، الگوریتم معامله فعال شود و سهام در بازاری که قیمت کمتری دارد، خریداری شود و در بازار سهام دیگر که قیمت سهام بالاتر است به فروش برسد.
- اگر اختلاف قیمت همچنان وجود داشت، معامله مجددا انجام شود. این سلسله معاملات تا زمانی که اختلاف قیمت وجود دارد، به دفعات ادامه یابد. در صورت یکسان شدن قیمت در دو بازار، معاملات متوقف شود.
کسب سود به همین سادگی و راحتی! هرچند دستیابی به یک الگوریتم معاملاتی سودده، به هیچ عنوان کار سادهای نیست. ذکر یک نکته ضروری است؛ زمانی که شما بتوانید معاملات الگوریتمی را در یک بازار انجام دهید، به طور حتم دیگران نیز این کار را خواهند کرد. لذا معاملات الگوریتمی از نوسانات قیمت در صدم ثانیه و حتی هزارم ثانیه، استفاده خواهد کرد. طراحی یک الگوریتم معاملاتی برای چنین وضعیتی، تجربه و دانش بسیار بالایی نیاز دارد.
سخن پایانی
همانطور که سود حاصل از چنین معاملاتی بالاست، ریسک انجام Algorithmic trading نیز بالاست. احتمالا کسب درآمد در ساعتی که خواب هستید و یا در تفریح هستید، بسیار جذاب است. اما معاملات الگوریتمی علاوه بر دانش بالا، مسائل دیگری نیز به همراه دارد. قطعی اینترنت، تاخیر در انجام سفارشات توسط صرافی به دلیل مشکلات احتمالی در سرور یا شلوغی شبکه و… و از همه مهمتر بروز اشکال در الگوریتم و وجود نقص و ایراد در کدهای برنامه معاملاتی شما میتواند ضررهای جبران ناپذیری به بار بیاورد. هر برنامه معاملاتی خودکار نیاز به اصلاح و رفع ایراد دارد که به طور مداوم باید بررسی شود. گاهی کد برنامه معاملاتی خوکار آنچنان پیچیده است که برای اصلاح آن باید صاحب استراتژی دانش فنی بالایی در زمینه علوم کامپیوتر داشته باشد. به همه این موارد دانش فنی از تحلیل بازار، تحلیل تکینکال، تحلیل فاندامنتال و شناخت دقیق و عمیق بازار را اضافه کنید.