۶۲۴ درصد سود دلاری سالانه با معاملات الگوریتمی کاملا درست میبینید؛ در نظر داشته باشید که ایشن محتوا برای غیرفنیها هم نوشته شده و کمی غیردقیق و عام است.
در این بخش کمی توضیح دادم، در بکتست و غیره تقلبی نیست، معاملات الگوریتم هم پارامترهای زیادی ندارد، حتی روی یک سهم هم نیست، روی ۸ نماد همزمان با یک استراتژی ثابت (ترکیب فیبو و میانگینمتحرکها و بهینهسازی پورتفولیو) دراوْداون و ریسک هم شدیدا کم است.
در زیر جواب برخی از سوالاتی که ممکن است برای شما پیش بیاد را آوردهایم:
- معاملات الگوریتمی توی MT5، تستش هم همونجاست
- روی ۸ نماد همزمان معامله شده (6 جفتارز، طلا و نقره)
- قابلیت افزایش درصد تا هزار درصد سالیانه هم است!
- مدل ساده و صرفا با یک ترکیب میانگین متحرک و فیبو است
- تکرار شونده است و روی چند سال کار میکند
- هیچ تقلبی در بکتست نیست.
- بیشتر کارکرد آموزشی دارد!
میدانید مشکل چی است؟ این الگوریتم بیشتر جنبه آموزشی برای عموم دارد، برای تفهیم افرادی که با موضوع آشنا نیستند هم استفاده میکنم!
دلیل اینکه چنین اتفاقی میافتد بیشبرازش یا OverFitting است.
در نمودار، اگر بخواهید نقطهها را مدل کنید پیشنهاد شما چیست؟
در نمودار زیر مشاهده میکنید که میشود یک معادله بینقص رو استفاده کرد (خط آبی) با خطای صفر یا یک معادله درجه یک (خط سبز) با خطای بیشتر.
با دقت به نمودار زیر نگاه کنید، به نظر شما نقطه قرمز بعدی بهاحتمال بیشتر در مستطیل آبی قرار میگیرد یا مستطیل سبز؟
یک حقیقت جالب وجود دارد و آن این است که شما برای هر اِن نقطه، یک معادله درجه اِن+۱ وجود دارد، که از همهی آن نقاط بالا میگذرد.
در واقع کاهش خطای شما اینجا باعث آسیب به مدل شما شده! چیزی که برای شما رویایی بوده است .
سوال اینکه: اینجا از پیچیدهتر شدن مدل آسیب دیدید یا از ساده بودن مدل؟
اگر الگوریتم روی بازههای مختلف به خوبی آموزش ندیده باشد (مثلا فقط در بازار صعودی یا نزولی آموزش داده باشید) میزان داده کم باشد، یا آموزش و تست در دو فضای متفاوت باشد دچارش خواهید شد.
موارد مشابه
- الگوریتم پیچیدگی زیادی داشته باشد، تعداد متغیرهای زیادی برای فیت داشته باشد.
- روی بازههایی با ویژگی خاص آموزش دیده باشد (مثلا کلاً روی صعودی یا نزولی آموزش دیده باشد).
- میزان دادهای که روی آن آموزش دیدایم کم باشد.
- وقتی روی یک سایز کوچک معامله میکنید و میخواهید الگوریتم را (مشکوکه)
- به حجم معاملاتی بیشتری برسانید.
- حتی سیستم دارد با دادههای جدید هم یادمیگیرد اما اصطلاحا نرخ یادگیری پایین باشد (decay).
مثلا شما اکانت صدهزار دلاری میچرخانید و در آن قوی هستید، الان میروید روی ۱ میلیون دلار، اینجا هم به نوعی بیشبرازش یا OverFitting رخ داده. شاید یک آدم ضعیفتر که توی آن بازار کار میکرد از شما که سالهاست در ۱۰۰هزاردلاری خفن هستید عملکرد بهتری داشته باشد.
نمونه های غیر فنی برای درک بهتر مفهوم بیشبَرازش یا OVERFIT
- وارن بافت که در مُفتخریها در بحرانهای اقتصادی استاد بود و کلی به کرونا دل بسته بود، بعد از حمایت دولت، همه برنامههایش نقش برآب شد! و عملکردش را از دست داد.
- بریجواتر، در ابتدای کار در یک دوره سهامی که اشتباه تشخیص داده بود، با کمک دولت توانست سود خوبی به دست بیاورد! اما بعدش نتوانست تکرار کند!
- خیلی از صندوقها و سبدگردانیهای ایران، که کلا در نگهداشتن سهم یا تمرکز روی پروژه کردن سهم فعالاند.
- الگوهایی که پیدا میکنید و افراد زیادی از آن استفاده میکنند یا حجم زیادی در آن فعال میکنید.
- بورس که صعود میکند، همه وارد بورس میشوند (دنبال تکرار هستند) وقتی هم سقوط میکند، خارج میشوند باز هم دنبال تکرار هستند.
در کتاب روانشناسی پول، در فصل »هیچ کس احمق نیست «نشون میدهد که اگر (۱۹۵۰) خط کمرنگ) یا ۱۹۷۰ (خط پررنگ به دنیا میآمدید، تورم رو بین سنین ۱۳ تا ۲۸ سالگی مثل تصویر میدیدید، و نگاه شما به دنیا عوض میشد. به همین خاطر روش سرمایهگذاری، زندگی و … عوض میشد.
برای همین دو نسل، تصور آنها این است که طرف مقابل احمق است.
در مقاله روبرو، برای S&P500 خیلی جالب به موضوع پرداخته است.
- در نمودار زیر هم خط قرمز و هم خط سبز، عملکرد بازار را با صددرصد دقت برازش کردن! و کلا میگوید که چرا دادهکاوها یا دنبالهروهاشون فریب میخورند.
- نسیمطالب توی کتاب «قوی سیاه» حکایت بوغلمون خوشخیال رو مطرح میکند.
- کل سال دارند از آن پذیرایی میکنند، غذا میدهند و مراقبت میکنند. بوقلمون، پیش خودش فکر میکند، این انسانها چقدر خوبند!
- اما روز عید پاک که سرش رو میبرند، همه چیز عوض میشود!
- نمودار روبرو، اعتماد بوغلمون به انسان را روایت میکند، تا روزی که سرش بریده بشود.
- اصل مثال از راسل مربوط به مرغ بوده، نسیم طالب آمریکاییش کرده! وگرنه ما همون مثال جوجه را راحتتر درک میکنیم. اما نسیمطالب از راسل معروفتره!!!
- وقتی بر اساس کتابهایی که برای شرکتهای بالغ و بزرگ است و در یک کشور با پول ارزان، برای ایران برنامهریزی یا ارزیابی میکنی (به عنوان مشاور، سرمایهگذار یا ارزیاب).
- وقتی فکر میکنی اگه یک نفر در شرکت بزرگ کار کرده، مناسب مدیریت شرکتهای کوچک است.
- بدتر از آن کارگر حملونقل برج خلیفه امارات را به عنوان مدیر طراحی یک آپارتمان ۴ طبقه استفاده میکنی (یه جورایی کوچک شدن رو با جایگاه تاخت میزنی)، یا فلانی که در فلان شرکت آمریکایی/اروپایی کار کرده را میآید فکر میکنید چه مدیر ماهری میشود نه این که آدم خفنی نباشد، تجربه آن با جایگاه مدیریتی تناسب ندارد، حتی ممکن است در آینده مدیر خوبی بشود ولی فرایندش فرق میکند.
چند تا نکته:
۱- شما خودتان یا الگوریتمتان ممکن است به اندازه کافی یادگیری نداشته باشید، این با بیشبرازش یا OverFitting تفاوت دارد. در واقع بیشبرازش یک نوع سوگیری برای شما ایجاد میکند، معمولا زمانی رخ میدهد که در یک حوزه نتیجه خوبی گرفته میشود اما در حوزه دیگر، اوضاع خراب میشود. انسان باز بهتر از الگوریتم است، اما باز هم دچارش میشود.
۲- مفهوم کاهش نرخ یادگیری هم داریم که نسبتا تکنیکی است، و عدم سازگاری سریع با دادههای جدید دارد.
۳- سه کتابی که در زیر نعرفی کرده ایم کمک میکند درک بهتر غیرفنی به دست بیاورید
برگردیم به الگوریتم صفحه اول! به نظر شما در سال ۲۰۲۴ چقدر سود داد؟
حالا به نگاهی به نمودار اول که در ابتدای مقاله قرار دادیم بیندازیم، بازده ۶۲۴ درصدی صفحه اول در سال ۲۰۲۳ رو دیدید؟ در نمودار زیر میبینیم که دو ماه نگذشته وارد ۸۰ درصد ضرر شداست! راههایی وجود داره که میشود همان استراتژی رو بهبود داد (البته دیگه سود ممکنه ده برابر کمتر بشود)
روشهای جلوگیری از بیشبَرازش یا OVERFIT
- دقت در جداسازی داده آموزشی و تست
- آزمون در دورههای مختلف و بازی با بازهها
- اعتبارسنجی متقابل دادهها Cross Validation
- توضیح به غیرمتخصصین
- بررسی نرخ یادگیری الگوریتم و بهبود آن.
- افزایش دادهها یا Data Augmentation
- انتخاب ویژگیهای مناسب و بهبود آن Feature Selection
- ساده کردن مدل
- مطالعه تاریخ و درک اقتصادی، روانی، سیاسی، اجتماعی رخدادها (تاحد ممکن
نتایج غیر فنی بیشبَرازش یا OVERFIT
- عملکرد هر کسی رو دیدید، طمع نکنید و بدانید برای حرفهایها، ساختن هر درصد سودی سادهاست. مهم اینکه هدفش چی است؟
- حتی در یکی از قسمتهای بعد میگم که این کار را توی دنیای واقعی هم میشود انجام داد و سود واقعی نشان داد. اما همش فریب باشد! (مستند ENRON, smartest guys in the room رو ببینید)
- اگر در هر حوزهای معامله میکنید (دلار، مسکن، بورس، طلا و …) پیش خودتون فکر کنید، آیا استراتژی ذهنی من بیشبَرازش یا OVERFIT شده یا نه؟
- اگر یک بازاری سود زیادی به اطرافیان داد، یا ضرر داشت، قرار نیست اون بازی تکرار بشود!
عملکرد هر کسی رو دیدید، طمع نکنید و بدانید برای حرفهایها، ساختن هر درصد سود یا نتیجه در بورس یا جای دیگه سادهاست. حتی توی اکانت واقعی!… بهش اشاره خواهم کرد.