فعال حوزه معاملات الگوریتمی
بک تست چیست؟
بکتست چیست؟ یا چگونه بدون ضرر از استراتژی معاملاتی خود مطمئن شویم؟
بکتست، میزان موفقیت و سودآوری یک استراتژی معاملاتی یا یک مدل قیمتگذاری را بر روی دادههای گذشته تست میکند. در صورتی که نتایج بکتست قابل قبول باشد، معاملهگر میتواند به نتایج خوب استراتژی در آینده امیدوار باشد.
پیشفرض اوليه بکتست این است که استراتژی که در گذشته عملکرد خوبی داشته است، در آینده هم به احتمال زیاد عملکرد خوبی دارد و بالعکس.
چگونه بک تست بنویسیم؟
مادامی که یک ایده معاملاتی را بتوان به صورت کمیتی و عددی تعریف کرد، قابلیت پیاده سازی و بکتست آن ایده وجود دارد.
برای بکتست گرفتن ایدههای ساده میتوانید از پلتفرمهای آماده مانند آسان بورس TradingView, MetaTrader استفاده کنید. در صورتی که ایده شما دارای پیچیدگیهای هست که در پلتفرمهای آماده قابل پیادهسازی نیست باید از متخصصان حوزه معاملات الگوریتمی استفاده کنید.
زبان پایتون برای پیادهسازی معاملات الگوریتمی و بکتست استراتژیها، کتابخانههای مفیدی دارد.
پس از موفقیت بکتست، بهتر است استراتژی در زمان فعلی هم تست شود. به تست در زمان حال Forward testing یا Paper trading میگویند. در Paper trading حتما تمامی قوانین استراتژی معاملاتی را پیادهسازی کنید و احساسات و تصمیمات ناگهانی را وارد تست نکنید تا نتایج قابل استناد باشد.
ممکن است Paper trading زمان زیادی از شما بگیرد اما ضرر زمانی بهتر از ضرر مالی است که در بازار به شما تحمیل میشود.
عواملی که روی اعتبار بک تست تاثیر گذار است کدام است؟
- بهتر است استراتژی را روی بازههای مختلف و شرایط مختلف بازار تست کنید و از دادههایی که برای ساخت و یادگیری مدل استفاده کردهاید برای بکتست استفاده نکنید.
- در بکتست باید دقت کنید که تست بر روی سهام شرکتهای مختلف و کوینهای متنوع انجام شود. (حتی آنها که ورشکست شدهاند و یا ریزش شدید داشتهاند). در واقع باید برای انتخاب سهم یا کوین هم استراتژی داشته باشید و با دید امروز داراییهای موفق را انتخاب نکنید.
- از دادههای حال و آینده در بک تست استفاده نکنید. برخی اندیکاتورها از دادههای آینده در خود استفاده میکنند. حتما قبل از استفاده از آنها دقت لازم را داشته باشید.
- در صورتی که با توجه به نتایج تست استراتژی خود را بهینه میکنید مراقب خطای اورفیت یا بیش برازش باشید. این خطا زمانی به وجود میآید که شما متغیرهای زیادی را وارد مدل میکنید و سعی میکنید با تغییرات پارامترها بهترین نتایج را کسب کنید. در واقع مدل شما عمومیت خود را از دست میدهد و تنها بر روی دادههای تست پاسخ خوبی میگیرید.
- معمولا قیمتی که می توانید سفارش خود را در بازار واقعی اجرا کنید بدتر از قیمت مجاسباتی شماست بهتر است در بک تست خود این تفاوت قیمتی را لحاظ کنید(میتوانید کارمزد را بالاتر از مقدار واقعی در نظر بگیرید) این خطا هنگامی که ارزش دارایی شما به نسبت ارزش معاملات بازار زیاد است،بیشتر محتمل است.
ورودی و خروجی یک مدل بک تست چیست؟
ورودی این مدل استراتژیهای ورود و خروج از سهم است. استراتژیها باید به صورت شرطهایی عددی و دقيق نوشته شود که برای کامپیوتر قابل فهم باشد. علاوه بر این بازهای به عنوان بازه تست باید به مدل داده شود. دارایی هایی که تست مدل روی آن انجام می شود هم باید مشخص شود.در نهايت خروجی مدل شامل معاملاتی است که در بازه مورد نظر با استراتژی گفته شده شده است. مهمترین پارامتر میزان سود و ضرر این معاملات است و سایر پارامترها مانند نرخ موفقیت، شاخصهای ریسک و … توسط نتایج همين معاملات قابل اندازهگیری است.
مثال بکتست استراتژی بر روی بیتکوین و اتریوم:
ما در مهدا برای بکتست استراتژیهای خود از برنامه اختصاصی که توسط پایتون پیادهسازی شده است، استفاده میکنیم. در ادامه یک استراتژی ساده و نتایج بک تست آن برای فهم بهتر اجزای ورودی و حروجی بک تست ارائه شده است:
ورودی بکتست
استراتژی ورود:
در صورتی که میانگین متحرک ۵۰ ساعته (SMA50) میانگین متحرک ۲۰۰ ساعته (SMA200) به
سمت بالا قطع کند خرید انجام شود.
استراتژی خروج:
در صورتی که به حد سود ۴٪ یا ۳٪- از نقطه ورود برسیم معامله بسته میشود. (فعال شدن حد سود
یا ضرر)
دارایی منتخب برای تست : BTCUSDT , ETHUSDT
منبع تاریخچه قیمت: اکسچنج بایننس
کارمزد لحاظ شده در بکتست: 0.2%-
بازه تست: ۱ ژانویه ۲۰۲۱- ۸ می ۲۰۲۲
خروجی بکتست
بخشی از نتایج خرید و فروش های انجام شده با استراتژی بالا به صورت زیر است:
در نهايت میزان بازدهی و خرید های انجام شده توسط این استراتژی در بازه تعیین شده به شرح زیر است:
همانطور که مشاهده می کنید این استراتژی بر روی اتریوم سود ۱۴.۶ ٪ داشته است اما روی بیت کوین ضررده بوده است. با مشاهده بکتست و خرید و فروش های انجام شده میتوانید نقاط ضعف و قوت استراتژی خود را شناسایی کنید . استراتژی خود را تغییر دهید و در نهایت پس از پیدا کردن استراتژی قابل قبول با اطمینان بيشتر در بازار واقعی معامله کنید.
مطلبی دیگر از این انتشارات
تتر ارزان را از کدام صرافی بخریم؟ ارزان ترین قیمت تتر را کدام اکسچنج دارد؟
مطلبی دیگر از این انتشارات
بازارگردانی چیست؟ الگوریتمهای رایج بازارگردانی و بکتست آن
مطلبی دیگر از این انتشارات
چرخه احساسات سرمایه گذاران چیست؟