در این مجموعه پستها، خلاصهای از فصلهای ویرایش دوم کتاب "یادگیری ماشینی برای معاملات الگوریتمی" استیفان جانسن را مینویسم. کتاب جالبیه. کلی کد و روش باحال برای پردازش اطلاعات مالی و اخبار و چیزای دیگه را بررسی کرده و سعی میکنه تاثیرشون روی قیمت سهام شرکتا را تحلیل کنه.
😁راستی یه مدته دارم رو یه نرمافزار خفن برای بک تستینگ کار میکنم که به زودی آماده میشه. با اون نرمافزار میتونی بدون دانش برنامه نویسی و بلد بودن زبان و این چیزا، استراتژی معاملاتیت را راحت تعریف کنی و ببینی که با دادههای چند سال گذشته چقدر سود میده. اگه یکم از بورس سردرمیاری و دوست داری از اولین افرادی باشی که نرمافزار را تست میکنند، دنبالم کن.
معاملات الگوریتمی را خیلی ساده اگر تعریفش کنیم، یعنی یه کدی داشته باشیم که اطلاعات را از چند جا بگیره و بهمون بگه کی و چقدر بخریم یا بفروشیم. ممکنه کدمون خودش خرید و فروش را هم انجام بده. اطلاعاتی هم که میگم میتونه تراکنشهای بورس باشه، یا اطلاعیههای و صورتهای مالی شرکتا و یا حتی اخبار و توییتها!
اوایل اینطوری بود که (و هنوز هم هست) یه مشت فرمول داشتیم که بهمون میگفتن کی بخریم کی بفروشیم. مثلا با یه فرمول ساده بررسی میکردیم فلان شرکت چند روزه قیمت سهامش اومده پایین نسبت به دو هفته قبل، پس سهامشو بخریم و اگه رفته بالا بفروشیم. فقط چون کلی شرکت توی بورس بودن و خیلی سریع قیمتا بالا و پایین میشد، یه کد ریز میزدیم که قیمت سهام شرکتا را بگیره و فرمولمون را روشون اجرا کنه. در واقع معاملات الگوریتمی صرفا هدفش این بود که فرمولمون را سریع اجرا کنه و تمام. معاملات پرفرکانس (High Frequency Trading یا مخفف اون HFT) هم به همین کار اشاره داره.
توابع و مدلهایی برای اندازهگیری ریسک و ارزش سرمایهگذاری در شرکتا از قبل وجود دارند ولی ما مشکلمون اینه که حجم داده بالاست.
شرکتای بزرگی مثل رنسانس تکنولوژیز و دی. ای. شاو، با این روش کلی پول پارو کردن. مزایای این مدل معامله کردن اینه که:
یکم که سختافزار قوی شد و پای یادگیری ماشین اومد وسط، روشهای شبکه عصبی و پردازش زبان طبیعی و این جور چیزا هم به معاملات الگوریتمی اضافه شد. یعنی قبلا خودمون باید میشستیم فرمول و رابطه دربیاریم و تست کنیم چی جواب میده و چی جواب نمیده، الان یه مشت کارت گرافیک میذاریم بالا، یه عالمه جمع و ضرب اون پشت انجام میشه تا یه مدل برای پیشبینی رفتار بازار برامون بسازه. به جز اون، میشه دادههای متنی (مثل اخبار و توییت و چیزای دیگه) را هم تحلیل کرد و حدس زد که فرضا فلانی یه کامنتی گذاشته یا فلان لایحه اومده، سهام کدوم شرکت میره هوا.
با یادگیری ماشین میشه خودکار، یکسری مدل برای پیشبینی ارزش سهام شرکتا ساخت و میتونیم دادههای متنوعی را بررسی کنیم.
خب، حالا فرضا تا اینجا را خونده باشی و به سرت زد که ما هم شاید بتوانیم....
کلی به موضوع نگاه کنیم، کاری که قراره انجام بدیم چند تا مرحله داره:
اگه معالات الگوریتمی انقدر خوبه، چرا همه ازش استفاده نمیکنند؟ بدیهتا جمعآوری داده و ایجاد مدل و درک اینکه داره چه اتفاقی میوفته کار هر کسی نیست. طرف هم باید برنامهنویسی و تحلیل داده بلد باشه، هم با بدبختی یا کلی هزینه (به خصوص در مورد بورس ایران) داده جمع کنه و هم از بورس یه چیزی بارش باشه تا تازه بتونه به معاملات الگوریتمی فکر کنه. بدیهتا کمتر جاندارانی تا این مرحله پیش میرن.
کیفیت داده و پردازش اون به صورتی که بشه روش کد اجرا کرد هم مهمه. دادههای مربوط به قیمت یک سهام تازه کوچیکشونه. شما اگه بخوای داده اطلاعیهها و کانالای خبری و کشتیهای تجاری و تفاهمهای سیاسی و اینا را هم وارد مدلت کنی به چوخ عظما میری.
از طرف دیگه، همینطوری داده را بذاری جلوی مدلهای یادگیری ماشین یه چیز هچل هفت چند گیگی تحویل میگری که کسی نمیدونه کجاش داره چیکار میکنه. اصطلاحا میگیم، مدل تفسیرپذیر نیست. یه فرمول ریز و داغون که معلومه چیکار میکنه را میشه بهترش کرد و بررسی کرد چقدر قابل اعتماده ولی یه شبکه عصبی چند گیگی که عشقی یه مشت داده به خوردش دادیم تا آموزش ببینه را هیچ جوره نمیشه تست کرد. حاضری سرمایه یه عمر خودتو و بقیه رو بسپاری به این؟
با همه این حرفا، یادگیری ماشین خیلی پیشرفت کرده و توی پیشبینی بازار خیلی عملکرد خفنی داره. برای همین توی این کتاب (پستای بعدی) آروم زمینه را برای معامله با این روش و آموزش مدل قابل تفسیر آماده میکنه.
معاملات الگوریتمی یک روش منطقی برای حضور در بازارهای معاملاتیه و باید تلاشمون را بکنیم که بجای تکیه بر احساس و غریزه و اینجور چیزا، ازش استفاده کنیم. یادگیری ماشین هم به شدت در این زمینه کمکمون میکنه. تو این کتاب (پستهای پیش رو) قراره با معاملات الگوریتمی آشنا بشیم.