بیت کوین و سایر کریپتوکارنسی‌ها توانستند به تدریج راهشان را به سمت بازارهای عمومی باز کنند و سرمایه‌گذاران زیادی به سمت این دارایی نوظهور حرکت کردند. همچنین معامله رمزارزها با افزایش تعداد صرافی‌های آنلاین رو به افزایش رفت و توانست در ماه‌های گذشته رکوردهای جدیدی را در حجم معاملات برای خودش ثبت کند (ژوئن ۲۰۲۰). اما سرمایه گذاران می‌دانند که معامله دارایی‌های دیجیتال با سایر محصولات مالی تا حد زیادی متفاوت است و زیر و بم خاص خودش را دارد.

معامله رمزارزها بسیار ریسک‌پذیر است

در دنیای رمزارزها فراز و فرودهای دیوانه‌واری اتفاق می‌افتد که اکثر سرمایه‌گذارها را وسوسه می‌کند سری هم  به آن بزنند. اما همانطور که ممکن است به عنوان یک سرمایه‌گذار در مدت زمان کوتاهی سرمایه ‌تان را چند برابر کنید، همانقدر امکان دارد که آن را یک شبه از دست بدهید.

اگر بخواهیم به زبان ساده بگویییم، معامله ارزهای دیجیتال مثل یک ترن هوایی پر از بالا و پایین‌ها روی موج‌های نوسان و غیرقابل پیش‌بینی بودن است. و همین موضوع است که حتی افرادی که درک خوبی از بازار دارند را هم در خطر قرار می‌دهد.

اما تمام اینها به این معنی نیستند که از جذابیت‌هایی معامله رمزارزها کم شود یا آنها را سبد سرمایه گذاری خود حذف کنیم. بلکه راه‌هایی وجود دارد که این معاملات به شکلی با بهره‌وری بیشتر و ریسک کمتر انجام شوند، یکی از این روش‌ها الگوریتمیک تریدینگ است که در ادامه بیشتر با آن آشنا خواهیم شد.

الگوریتمیک تریدینگ و اصول اولیه پیاده‌سازی آن

الگوریتمیک تریدینگ را می‌توان یک اپلیکیشن داده محور دانست. این روش معامله‌گری در واقع این توانایی است که بتوانیم دانشی را از داده‌ها استخراج کنیم و آن را در معامله به کار ببندیم. استفاده از علم داده در معامله رمزارزها می‌تواند برای سرمایه‌گذاری یک مزیت بزرگ نسبت به روش‌های شهودی ترید محسوب شود. اما به این معنی نیست که تریدینگ هوشمند فقط به دیتاساینس وابسته است.

الگوریتمیک تریدینگ - ترید با بات

تریدینگ هوشمند از استفاده همزمان و تعامل چندین مفهوم پیچیده خلق می‌شود، و داشتن یک رویکرد کلی‌نگر در این نوع از تریدینگ ضروری است.

پس اگر می‌خواهید یک پروژه تریدینگ خودکار را شروع کنید، یادتان باشد که باید با مفاهیم ترید و ارتباطی که با یکدیگر دارند آشنا باشید. بعد از آن، مرحله پیاده‌سازی نرم‌افزاری قرار دارد که لازم است کمی هم با مفاهیمش آشنا شوید.

بیاید اول با سه مفهوم مهم آشنا شویم که اغلب به اشتباه به جای یکدیگر به کار می‌روند و ممکن است باعث گیج شدن معامله‌گران شوند.

  • سیستم تریدینگ: یک فریم‌ورک برای مدیریت منطق با سطح پایین که به هدف ساختار دادن به فرایندها و روش‌ها است که برای پیاده‌سازی و اجرای استراتژی‌های تریدینگ مورد استفاده قرار می‌گیرد.
  • استراتژی تریدینگ: توصیفی از یک سری کارها و اتفاقات است که طی مراحلی انجام می‌شوند. ایونت‌ها با اتفاق افتادن شرایط خاصی از وضعیت مارکت به وقوع می‌پیوندند. استراتژی‌های تریدینگ برای این طراحی شده‌اند که با مدیریت کردن و گرفتن موقعیت‌ها (positoin) به یک هدف مشخص در یک برنامه جامع‌تر در یک سیستم ترید برسند.
  • ربات تریدینگ: یک برنامه کامپیوتری است، که بر اساس دیتاست‌های دردسترس، منطق تریدینگ را بر اساس استراتژی تریدینگ اعمال می‌کند. ربات می‌تواند سشن‌های آزمایشی و شبیه‌سازی را اجرا کند، یا ممکن است قرار دادن یا مدیریت سفارش‌های واقعی در صرافی‌ها باشد.

چشم‌انداز کلی

به عبارت کلی، استراتژی تریدینگ یک سری دستورالعمل را ارائه می‌دهد که هدف آن ایجاد استراتژی‌های تصمیم‌گیری بر اساس تحلیل داده بازار است. بنابراین، کیفیت منطق تریدینگ، با قابلیت‌های تحلیل داده همبستگی زیادی دارد.

حالا بیایید اول  یک منطق تریدینگ که  توسط یک شخص برنامه‌نویسی شده است تمرکز کنیم و پیاده‌سازی‌های هوش مصنوعی را برای مطالب دیگر بگذاریم.

ایده‌های تریدینگ معمولا از تحلیل داده و مصورسازی داده می‌آیند.

برای اینکه به قوانینی دست پیدا کنیم که چه زمانی یک دارایی را بخریم و چه زمانی بفروشیم، معامله‌گرها باید نظریه‌هایشان را برساسا ایده‌های ترید فرمول‌بندی کنند. یکی از محبوب‌ترین‌های قلمرو ایده‌های ترید، همان تحلیل تکنیکال است.

برخی فکر می‌کنند بازار مطابق با آمار رفتار می‌کند، اما اکثر معامله‌گرها معتقدند که این روانشانسی انسان‌ها در تصمیمات تریدینگ است که بر رفتار مارکت هم تاثیر می‌گذارد. چراکه انسان‌ها براساس احساسات‌اشن مانند ترس یا طمع تصمیم می‌گیرند، یا حداقل تحت تاثیر احساساتشان قرار می‌گیرند. انسان‌ها وقتی در یک محیط شبیه‌سازی قرار می‌گیرد، به نوعی رفتارهایی قابل پیش‌بینی از خود نشان می‌دهند. حتی به نوعی معامله‌گرها اعتقاد دارند که در آشوب حرکت قیمت دارایی‌ها، همین رفتارها و روانشناسی بازارها است که الگوها را می‌سازد.

قطعا نیروهای دیگری هم وجود دارد که روی قیمت تاثیر می‌گذارد، و این موضوعات در اسکیل‌های زمانی متفاوتی خودشان را نشان می‌دهند؛ نیروهایی مانند اصول اقتصاد یا کلان که روی بازارهای خاصی تاثیر می‌گذارد عرضه و تقاضا، برهمکنش با بازارهای دیگر، سیاست‌های جهانی، ماهیت دارایی و غیره. یعنی یک سری متغیر چندگانه و بدون قید و بند وجود دارد که روی بازار تاثیر می‌گذارد و آن را آنقدر پیچیده می‌کند که سر در آوردن از آن تغریبا غیرممکن است.

به این خاطر که الگوریتمیک تریدینگ یک روش داده محور است، و به این خاطر که تریدینگ بر اساس منطق برنامه‌نویسی‌شده انسانی معمولا از مشاهده الگوها به دست می‌آید، می توانیم نتیجه بگیریم که مصورسازی داده هم یک مولفه کاملا حیاتی است. حتما توجه کرده‌اید که معامه‌گران محتاط زمان بی‌نهایتی را به نمودارهای بازار خیره می‌شوند: برای اینکه تصمیمات تریدینگ خود را براساس آنچه می‌بینند بگیرند.

به عنوان یک الگوریتمیک تریدر، شما هم باید روی نمودارها زمان بگذارید، اما زمان بسیار کمی نسبتا به آنچه تریدرهای سنتی زمان می‌گذارند. شما از نمودارها استفاده می‌کنید تا به ایده‌های ترید دست پیدا کنید که بعدا آنها را در استراتژی تریدینگ خود پیاده‌سازی کنید.

می‌توان گفت استراتژی‌های تریدینگ از پیاده‌سازی، تست کردن و دوباره تنظیم کردن ایده‌های تریدینگ به دست می‌آیند.

وقتی یک ایده تریدینگ به شکل یک سری قانون درآمد، باید استراتژی خود را تست کنید و ببینید که چگونه عمل می‌کند؛ هم روی یک سری داده قدیمی‌تر که به این کار بک‌تست کردن (back testing) هم می‌گوییم، و هم روی داده‌های همان لحظه تست کنید که با آن ترید روی کاغذ (paper trading) می‌گویند.

تست کردن استراتژی‌ها یک جنبه حیاتی در تریدینگ سیستماتیک است، چراکه دقت و اعتبار تست‌ها به طور مستقیم، روی اینکه در واقعیت مدل شما چه عملکردی دارد اثر می‌گذارد. برای اینکه تست‌های شما برای پیش‌بینی عملکرد تریدینگ لایو هم ارزشمند باشند، لازم است که بدانید تریدینگ لایو چگونه کار می‌کند و تمام متغیرهای موثر در یک سشن تریدینگ لایو را هم در نظر بگیرید؛ از جمله هزینه‌های تراکنش و لغزش (slippage)، لغزش که اصطلاحی است که معمولا درمورد فارکس به کار می‌رود و به معنی اختلاف بین نرخ گذاشتن درخواست خرید یا فروش و نرخی است که معامله واقعا در آن اتفاق می‌افتد.

ترید با استفاده از ربات ها - الگو ترید

فراموش نکنید که پیاده‌سازی و استفاده از استراتژی‌های اتوماتیک‌شده برای تریدینگ لایو دیگر  با پول واقعی شما سروکار دارد. ربات ترید شما باید قدرتمند باشد و حتما باید از تست‌های تضمین کیفیت زیاد سربلند بیرون بیاید.

همچنین باید انعطاف‌پذیر باشد و عملکرد مناسبی داشته باشد تا بتواند رد تمام فعالیت‌هایی که بر اساس استراتژی انجام شده‌اند را نگه دارد؛ از جمله نگه‌داشتن اکانت‌ها، امکان مدیریت، تغییر یا کنسل کردن درخواست‌های خرید و فروش و…. .

مفاهیمی که باید بدانید

همانطور که از بخش قبل دریافته‌ایم، برای طراحی، تست و پیاده‌سازی یک استراتژی تریدینگ به زیرساخت‌های نرم‌افزاری زیادی نیاز داریم. بیایید به طور خلاصه مهم‌ترین ویژگی‌هایی که برای چنین پلت‌فرمی نیاز داریم را مرور کنیم.

۱. وصل شدن به یک صرافی

صرافی‌های کریپتوکارنسی ها، یکی پس از دیگری محبوب می‌شوند و بعد از مرکز توجه‌ها خارج می‌شوند. چند سال پیش پلونیکس یکی از محبوب‌ترین‌ها بود، ولی الان جزو لیست ۲۰ صرافی برتر هم نباشد.

اینکه یک صرافی محبوب را انتخاب کنید خیلی مهم است؛ چراکه فقط صرافی‌های محبوب می‌تواند امکان نقدشوندگی (Liquidity)‌ به شما ارائه دهد. به این معنی که حجم کافی از درخواست‌های خرید و فروش وجود در آن وجود دارد و در نتیجه یک درخواست به تنهایی نمی‌تواند تاثیر قابل توجهی روی قیمت بگذارد.

بهتر است فقط روی یک صرافی خاص نباشید. پلت‌فرم شما باید حداقل امکان اتصال به حداقل بیش از یک صرافی محبوب را داشته باشد. این موضوع وقتی بیشتر اهمیت پیدا می‌کند که بخواهید نقص‌های صرافی‌ها را متوجه شوید؛ مثلا بفهمید که یک صرافی خاص نسبت به سایر صرافی بیشترین میزان تغییرات قیمت را دارد.

معمولا صرافی‌ها API ارائه می‌کنند، که ممکن است در طول زمان توسعه پیدا کند یا تغییراتی داشته باشد. به همین خاطر نگه‌داشتن چندین اتصال به صرافی‌های مختلف، چالش‌های خودش را به همراه خواهد داشت.

پلت‌فرم شما باید بتواند مشکلات مربوط به اتصال به صرافی‌ها را مدیریت کند و یکپارچکی داده‌های استخراج شده از صرافی‌های مختلف و تراکنش‌ها را در تمام زمان‌ها تضمین کند.

وقتی دارید اپلیکیشنی می‌نویسید که پایه و اساس کار شما و شاید کسب‌وکار شما باشد، قابلیت اتصال یکی از مهم‌ترین مواردی است که باید در نظر بگیرید و شاید تا حدی هم چالش‌برانگیز باشد. مشکلات زیادی ممکن است به طور روزمره برای کانکشن‌های اپلیکیشن شما پیش بیاید که ممکن است تعامل شما با صرافی را قطع کند، به تاخیر بیندازد یا خراب کند. این اشکالات ممکن است در سطح اپلیکیشن، شبکه، API صرافی و هر جایی بین مسیر باشند. پس بهتر است قبل از هر چیزی تمام چالش‌ها را در نظر بگیرید.

۲. داده کاوی

هم برای تست کردن پیاده‌سازی ایده‌های تریدینگ و هم برای تصمیم‌گیری‌‌های ترید به داده‌های قابل اعتمادی از بازار نیاز دارید. به این معنی که باید هم داده‌های قبلی و هم داده‌های لایو را از صرافی‌ها داشته باشید.

صرافی‌ها معمولا تریدهای خام یا داده‌های کندل‌ها را در قسمت‌های کوچک در اختیار شما قرار می‌دهد. اما لازم است شما به تاریخچه کامل مارکت دسترسی داشته باشید تا بتوانید مطالعات آماری انجام دهید و از اندیکاتورهای بلندمدت مانند میانگین متحرک (moving average) استفاده کنید.

یک نقص کوچک در دیتاست می‌تواند به طرزی غیرقابل پیش‌بینی باعث ایجاد خطا در تحلیل داده شما شود؛ پس فرایند استخراج داده از صرافی‌ها و ساختن دیتاست خودتان باید کاملا بی‌نقص انجام شود.

داده خام بازار نقطه شروعی است برای تبدیلات زیادی که باید برای جستجوی الگوها، پیدا کردن همبستگی و فرصت‌های ترید باید داشته باشید.

پلت‌فرم شما باید مطالعات تحلیل تکنیکال متداول را انجام دهد، اما باید ابزاری در اختیارتان بگذارد که بتوانید تحیلیل خودتان را هم داشته باشید.

این چیزی است که هوشی که می‌توانید از داده استخراج کنید را با آنچه به طور معمول در اختیار تریدرها قرار دارد متفاوت می‌کند.

۳. مصورسازی داده

انسان‌ها موجوداتی بصری هستند. درحالی که مغر ما خودش جعبه سیاه است، اما سنسورهایی دارد که محیط اطرافش را درک کند و داده‌های باارزش را برای تفسیر به سیستم مرکزی عصبی بفرستد. بینایی اولین سنسور ما است.

مصورسازی داده - الگوریتمیک تریدینگ

الگوریتم‌ها به خوبی می‌توانند اعداد را به بخش‌های کوچک‌تری تقسیم کنند، اما انسان‌ها بیشترین بهره را از مصورسازی داده می‌برند. این شما هستید که با الهام گرفتن از داده باید ایده‌های تریدینگ را پیدا کنید.

پلت‌فرم شما باید یک سیستم ایجاد نمودار یکپارچه داشته باشد تا بتوانید بیشترین بهره را داده ببرید.

۴. تست کردن استراتژی

شما باید بتوانید بدون وقفه الگوریتم‌هایتان را با دیتاست‌های زمان‌های گذشته تست کنید. همچنین باید بتوانید استراتژی خود را با دیتاهای هم‌ اکنون و لایو تست کنید؛ هم با قرار دادن درخواست‌های واقعی در یک صرافی (ترید روی کاغذ) و هم تست واقعی با درخواست‌های خرید و فروش واقعی روز بخش کوچکی از سرمایه‌تان که به آن تست کردن روبه‌جلو (forward testing) هم می‌گویند.

هرچند باید این نکته را در ذهن داشته باشید که نه تست روی داده‌های قبلی و نه داده‌های بعدی، نمی‌تواند معیار کاملا دقیقی از عملکرد آتی مدل شما باشد، اما اگر استراتژی‌های شما از تست‌ها سربلند بیرون نیاید، اصلا منطقی نیست که به آنها اعتماد کنید و بخواهید روی سرمایه‌تان ریسک کنید.

ربات ترید شما باید قادر باشد شرایط ترید واقعی و لحظه‌ای را درست مانند تست با داده‌های قبلی و بعدی شبیه‌سازی کند. هرچه شبیه‌سازی به واقعیت نزدیک‌تر باشد، احتمال اینکه بتواند عملکرد ترید در زمان واقعی هم پیش‌بینی کند بیشتر می‌شود.

۵. مدیریت‌ درخواست‌ها (order management)

در نگاه اول ممکن است قرار دادن درخواست‌های مساله‌ی آسانی به نظر برسد. هرچند، بات شما باید هوش کافی برای دنبال کردن و مدیریت درخواست‌ها را داشته باشد.

درخواست‌ها ممکن است با سرعت‌های متفاوتی پر شوند، ممکن است به صورت تدریجی در یک بازه زمانی پر شوند، یا ممکن است هرگز پر نشوند. هر زمان که فقط بخشی از یک درخواست انجام شود، هزینه تراکنش صرافی هم به همان اندازه خواهد بود، که باید در محاسبات در نظر گرفته شود. به چندین دلیل ممکن است سرعت پر شدن درخواست‌ها با سرعتی که الگوریتم شما انتظار دارد یکسان نباشد؛ دلایلی از جمله slippage، گرد شدن اعشار و غیره. تمام اینها باید قابل هندل شدن توسط بات شما باشند، تا آن ترید (trading session) با چیزی که در واقعیت در صرافی اتفاق می‌افتد یکسان باشد.

از این گذشته، بات شما باید حداقل یک دفتر حساب‌داری ساده داشته باشد که بتواند رد تمام موجودی‌های شما را داشته باشد و بتواند در هر ترید به درستی بخشی از موجودیتان را به ترید اختصاص دهد.

۶. پیاده‌سازی مقیاس‌پذیر

یکی از مزایای اصلی تریدینگ اتوماتیک نسبت به تریدینگ دستی، قابلیت کار کردن با بی‌نهایت استراتژی ترید متفاوت است. در مرحله پیاده‌سازی، عملیاتی که انجام می‌دهید شامل چندین است استراتژی است که در چندین مارکت مختلف و چندین صرافی مختلف کار کند. برای اینکه چنین قابلیتی در برنامه شما وجود داشته باشد، باید زیرساخت‌های نرم‌افزاری کاملا در استفاده از منابع بهینه عمل کنند.

از کجا شروع کنیم؟

راه‌های مختلفی وجود دارد که راهتان را به سمت یادگیری و پیاده‌سازی الگوریتمیک تریدینگ باز کنید. اما بهتر است اول هدفتان را مشخص کنید؛ اگر فقط می‌خواهید فقط مهارت و دانش‌تان را به بوته آزمایش بگذارید، لازم نیست نگران تمام مواردی که در این مطلب خوانید باشید. وارد عمل شوید و آنچه می‌دانید را تست کنید و در همین حین بیشتر یاد بگیرید.

و البته خوشبختانه برای وارد وادی الگوریتمیک تریدینگ شوید، نیازی نیست تمام زیرساخت و همه چیز را خودتان بسازید. کدنویسی، تنظیم و پایدار سازی چنین زیرساختی ممکن است به سال‌ها کار نیاز داشته باشد. در عوض می‌توانید از ابزارهای متن باز استفاده کنید و در آنها مشارکت داشته باشید.

شاید بهترین کار این باشد که بیشترین تمرکزتان روی دیتا ماینینگ باشد که به ایده‌های جدید تریدینگ و خلق استراتژی‌های تریدینگ ختم می‌شود. شاید همین بخش کار، جالب‌ترین بخش آن باشد و همین کار است که تعیین می‌کند که آیا تلاش‌های شما نتیجه مثبتی داشته است یا خیر.

پس اولین قدم این است که سری به پلت‌فرم‌های متن باز بزنید و ببینید کدام یک از آنها برای شما مناسب‌تر است و تمرکزتان را روی آن بگذارید.

فکر می‌کنم دیتاساینس نیمه گمشده کاری و یادگیری من باشه!

ارسال یک پاسخ

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید