متوسط کریپتو پدیا

بک تست کردن چیست و چگونه به استراتژی سرمایه‌گذاری شما کمک می‌کند؟

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

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

اما بک تست کردن یک استراتژی ساده سرمایه گذاری به چه صورت است؟ هنگام آزمایش کردن استراتژی‌های تریدینگ یا تبادل، باید چه چیزی را بیشتر مد نظر قرار دهیم؟ آیا بک تست کردن شبیه به تبادل کاغذی است؟ چگونه باید این فرایند را به صورت شخصی به انجام برسانیم؟ و چگونه باید نتایج به دست آمده را ارزیابی کنیم؟ هدف ما پاسخ دادن به تمامی این سوال‌ها در این مقاله است.

این مقاله در تاریخ ۲۹ فروردین ۱۴۰۰ بروزرسانی شده است

بک تست کردن چیست؟

بک تست کردن چیست؟

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

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

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

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

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

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

در سطحی حرفه‌ای‌تر، بک تست کردن استراتژی‌های تبادلات، امری بسیار مهم به حساب می‌آید؛ به ویژه هنگامی که صحبت از استراتژی‌های الگوریتمی تبادل (به عنوان مثال مبادلات اتوماسیون شده) در میان باشد.

پیش نیازهای بک تستینگ

پیش نیازهای بک تستینگ

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

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

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

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

  • هنگامی که A و B به صورت همزمان اتفاق افتادند، وارد معامله شوید
  • هنگامی که در ادامه، رویداد X اتفاق افتاد از معامله خارج شوید

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

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

نرم افزارهای Backtesting نیز امروزه موجود هستند که می‌توانید با خریداری کردن آنها به صورت خودکار فرایند بک تستینگ را به انجام برسانید. می‌توانید با وارد کردن داده‌های مورد نظر خود در این نرم افزارها، روند را آغاز کنید و خود برنامه فرایند بک تست کردن را برای شما انجام می‌دهد. با این وجود، در این مثال ما به استراتژی بک تستینگ دستی می‌پردازیم. این شیوه زمان بیشتری می‌برد اما کاملا رایگان است.

سیستم Backtesting چگونه عمل می‌کند؟

سیستم Backtesting چگونه عمل می‌کند؟

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

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

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

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

شما می‌توانید الگوی صفحه‌های Google Sheets را در اینجا بیابید. این یک الگو یا قالب (Template) ابتدایی است که می‌توانید از آن به عنوان یک نقطه شروع برای ایجاد قالب خود استفاده کنید، که ایده کلی اطلاعات مورد نیاز بک تست کردن در بر دارد. برخی از تریدرها ترجیح می‌دهند تا از Excel استفاده کنند و یا داده‌های خود را در Python کدنویسی کنند. شما می‌توانید به میزانی که می‌خواهید، داده وارد این برگه‌ها کنید و یا هر چیزی که به نظرتان کاربرد دارد را مورد استفاده قرار دهید.

اکنون بیایید یک استراتژی ساده معاملاتی را بک تست کنیم. در ادامه نمونه‌ای از ایده ما را می‌بینید:

  • ما در اولین روند بسته شدن نمودار و پس از تشکیل الگوی تقاطع طلایی (Golden Cross)، یک بیت کوین خریداری می‌کنیم. ما در شرایطی یک الگوی تقاطع طلایی را در نظر می‌گیریم، که روند میانگین متحرک (Moving Average) ۵۰ روزه از روند متوسط حرکتی ۲۰۰ روزه عبور کرده و در مکان بالاتری در نمودار قرار بگیرد.
  • ما در اولین روز بسته شدن کندل و پس از این که الگوی صلیب مرگ شکل گرفت، یک بیت کوین را به فروش می‌رسانیم. هنگامی الگوی تقاطع مرگ را تعریف می‌کنیم که روند متوسط حرکتی ۲۰۰ روزه در جایگاه پایین‌تری نسبت به روند متوسط حرکتی ۵۰ روزه در نمودار قرار بگیرد.

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

در رابطه با این مثال، ما تنها به بازه زمانی گذشته و تا آغاز سال ۲۰۱۹ می‌نگریم. با این وجود، اگر می‌خواهید نتایج دقیق‌تر و قابل اعتمادتری را به دست بیاورید، می‌توانید گذشته‌های دورتر را در زمان تحرک قیمتی بیتکوین مورد بررسی قرار دهید.

حالا بیایید سیگنال‌های معاملاتی که این سیستم در این بازه زمانی تولید می‌کند را ببینیم:

  • در قیمت ۵۴۰۰ دلار خرید کنید
  • در قیمت ۹۲۰۰ دلار بفروشید
  • در قیمت ۹۶۰۰ دلار خرید کنید
  • در قیمت ۶۷۰۰ بفروشید
  • در قیمت ۹۰۰۰ دلار خرید کنید

در این نمودار می‌توانید سیگنال‌های ما را به صورت مشهود ببینید:

سیستم Backtesting چگونه عمل می‌کند؟
استراتژی تقاطع طلایی – تقاطع مرگ. منبع: TradingView

اولین ترید ما می‌توانست حدود ۳۸۰۰ دلار سود داشته باشد و این در حالیست که دومین ترید ما می‌توانست منجر به از دست رفتن ۲۹۰۰ دلار شود. این بدان معناست که نسبت اختلاف سود و زیان (P&L) ما در این شرایط به میزان ۹۰۰ دلار بوده است.

ارزیابی نتایج بک تست کردن

ارزیابی نتایج بک تست کردن

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

با وجود این که این مثالی از یک استراتژی سیستماتیک است، اما باید به آن توجه داشته باشیم. معامله زیان‌دهی که از ۹۶۰۰ دلار تا ۶۷۰۰ دلار اتفاق افتاد، در طول ماه مارس سال ۲۰۲۰ و در نتیجه شیوع COVID-19 شکل گرفت. این نمونه‌ای از رویدادهای ناگواری است که می‌تواند اثرات بسیار بزرگی بر روی هر یک از سیستم‌های معاملاتی داشته باشد؛ این یکی دیگر از دلایلی است که ارزش نگاه کردن به گذشته و تحقیق دقیق‌تر برای بررسی ضررهای احتمالی را نشان می‌دهد تا ببینیم زیان مورد بحث ما یک رویداد مستقل جانبی بوده و یا از استراتژی ما حاصل شده است.

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

با وجود تمام این تفاسیر، نتایج حاصل از بک تستینگ چه چیزهای دیگری را می‌تواند به شما نشان دهد؟

  • ابعاد نوسان‌ها : حداکثر نزول و صعود معامله شما
  • آشکارسازی : میزان سرمایه مورد نیاز برای استراتژی مورد نظر از سبد سهام کلی شما
  • بازدهی سالانه : درصد بازده سالانه استراتژی مورد آزمایش در طول یک سال
  • نرخ و یا نسبت برد-باخت : چه تعدادی از تریدها یا معاملات به برد شما ختم می‌شوند و چه تعدادی از آنها به باخت شما
  • قیمت میانگین ورودی : میانگین قیمتی ورودی و خروجی شما در طول استراتژی مورد آزمایش

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

بک تستینگ در مقابل تبادلات روی کاغذ

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

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

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

این بسیار عالی است؛ اما از کجا باید شروع کرد؟ شبکه آزمایشی فیوچرز بایننس (Binance Futures) بستری بی‌نظیر برای شماست تا بتوانید بدون در معرض خطر قرار دادن منابع مالی خود، استراتژی‌های متفاوتی را آزمایش کنید. شما می‌توانید در این بستر تنها در مدت زمان چند دقیقه حساب کاربری خود را بسازید و در محیطی شبیه به بازار حال حاضر، استراتژی‌های گوناگونی را مورد آزمایش قرار دهید.

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

بک تست کردن دستی در تقابل با بک تستینگ اتوماسیون شده

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

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

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

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

جمع بندی

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

به صورت همزمان، تفسیر نتایج بک تستینگ می‌تواند دشوار باشد. این امری آسان است که نقطه نظرهای خود را وارد روش Backtesting کنید. احتمالا شما نمی‌توانید به صورت انفرادی از بک تستینگ استراتژی‌های تبادل قابل اجرایی را به دست بیاورید؛ اما به شما کمک می‌کند تا برخی ایده‌ها را آزمایش کنید و نبض بازار را در مشت خود داشته باشید. محیط‌های بازار مدام تغییر می‌کنند و اگر می‌خواهید تبادلات خود را بهبود ببخشید باید خودتان را با آن محیط وفق بدهید. به صورت کلی این امری مفید به حساب می‌آید که کورکورانه به داده‌ها اعتماد نکنیم. عقل سلیم می‌تواند ابزار مفید و شگفت‌آوری برای ارزیابی نتایج به دست آمده از بک تست کردن باشد.

منبع
binance

نوشته های مشابه

0 دیدگاه
Inline Feedbacks
View all comments
دکمه بازگشت به بالا