هزینههای معامله بسیار مهمتر از چیزی هستند که اغلب معاملهگران تصور میکنند، و نقش بسیار حیاتی در معاملات الگوریتمی دارند. نادیده گرفتن آنها در بکتست (Backtest) — فرایند شبیهسازی عملکرد یک استراتژی روی دادههای تاریخی — میتواند نتیجه را کاملاً تحریف کند، و یک الگوریتم ظاهراً سودده را پس از اعمال هزینههای واقعی، به یک الگوریتم زیانده تبدیل کند.
اسپرد #
اسپرد (Spread) اختلاف بین قیمت خرید (Ask) و قیمت فروش (Bid) یک دارایی است. این هزینه بیشتر در بروکرهای فارکس و کامودیتی دیده میشود — جاهایی که طرف معامله شما خودِ بروکر است، نه یک معاملهگر دیگر. در این بازارها، قیمت خرید همیشه به اندازه مقدار اسپرد از قیمت فروش بیشتر است.
اسپرد ثابت نیست — بهطور طبیعی نوسان میکند. ممکن است در ساعات کمفعالیت، مثلاً نزدیک به بستهشدن بازار یا حوالی نیمهشب به وقت UTC، بهطور محسوسی افزایش پیدا کند، و در زمانهای دیگر کاهش پیدا کند یا حتی صفر شود. این رفتار کاملاً تابعی از سیاست داخلی هر بروکر است و از بروکری به بروکر دیگر فرق دارد. تنها قاعدهای که همیشه برقرار است ساده است: قیمت فروش + اسپرد = قیمت خرید.
این هزینه دقیقاً یکبار روی هر معامله اثر میگذارد. در یک پوزیشن لانگ (خرید)، این اثر همان لحظهای که معامله را باز میکنید ظاهر میشود — بلافاصله به اندازه مقدار کمی، دقیقاً برابر با اسپرد، در ضرر هستید، چون قیمت فروش کمتر از قیمتی است که برای خرید پرداختهاید. در یک پوزیشن شورت، اسپرد در عوض هنگام بستن معامله اعمال میشود، چون بستن یک پوزیشن شورت یعنی بازخرید دارایی برای بازگرداندن آن به بروکر — و همان تراکنش بستن معامله خودش یک معامله خرید است، جایی که اسپرد اعمال میشود. تکتک این جزئیات باید در بکتست یک استراتژی مدلسازی شوند، وگرنه اعداد عملکردی که به دست میآید چیزی بیشتر از یک توهم نیست.
همچنین ارزش دارد بدانید که اسپرد معمولاً در صرافیهای ارز دیجیتال یا بورس سهام وجود ندارد، چون طرف معامله شما در آنجا یک معاملهگر دیگر است، نه خودِ پلتفرم — قیمت با تطبیق دو سفارش مخالف از شرکتکنندگان واقعی تعیین میشود. در این بازارها، یک هزینه دیگر جای اسپرد را میگیرد: کمیسیون.
کمیسیون #
برخلاف اسپرد، کمیسیون تقریباً در همه بازارها وجود دارد — نقدی، آتی، اختیار معامله، حتی باینری آپشن. مقدار دقیقش توسط سیاست داخلی هر کارگزاری، صرافی یا بروکر تعیین میشود، از پلتفرمی به پلتفرم دیگر فرق دارد، و گاهی میتواند صفر باشد. کمیسیون معمولاً بهعنوان درصد کوچکی از ارزش کل معامله محاسبه میشود.
در بازارهای نقدی (سهام، ارز دیجیتال)، کمیسیون دو بار اخذ میشود — یک بار در تراکنش خرید و یک بار در تراکنش فروش، چون هرکدام یک تراکنش رسمی و مستقل در نظر گرفته میشود. در بروکرهای فارکس و کامودیتی، در مقابل، کمیسیون معمولاً فقط یکبار اخذ میشود، هنگام باز کردن معامله، بدون هزینه اضافی هنگام بستن آن — هرچند این هم میتواند بین بروکرهای مختلف فرق داشته باشد.
مانند اسپرد، کمیسیون هم یکی از هزینههای حیاتی است که باید در هر بکتست الگوریتمی لحاظ شود تا تصویری قابلاعتماد از عملکرد واقعی استراتژی به دست بیاید.
اسلیپیج #
اسلیپیج (Slippage) به اختلاف بین قیمتی که قصد معامله در آن را داشتید و قیمتی که سفارش شما واقعاً در آن اجرا میشود اشاره دارد، که ناشی از حرکت قیمت در همان لحظه کوتاه اجرای سفارش است. برای مثال، اگر بخواهید ۵۰ سهم بخرید، قیمتی که سهم اول در آن پر میشود لزوماً همان قیمتی نیست که سهم پنجاهم در آن پر میشود.
اسلیپیج بیشتر در شرایط کمنقدینگی ظاهر میشود و بهطور خاص در بازارهای سهام و ارز دیجیتال رایجتر است؛ معاملهگران خرد در بازارهای فارکس یا کامودیتی معمولاً آن را بسیار کمتر تجربه میکنند. مدلسازی اسلیپیج در کد هم بهمراتب سختتر از اسپرد یا کمیسیون است، چون آن دو مقادیر مشخص و قابلپیشبینی دارند، در حالی که اسلیپیج کاملاً به شرایط زنده بازار در همان لحظه دقیق اجرا وابسته است — نمیتوان آن را بهطور قابلاعتماد از پیش در بکتست تعیین کرد.
به همین دلیل، اسلیپیج یکی از دلایلی است که هرگز نمیتوان به نتایج یک بکتست با اطمینان ۱۰۰ درصد اعتماد کرد. با این حال، لحاظکردن دقیق اسپرد و کمیسیون معمولاً میتواند قابلیتاعتماد یک بکتست را به بالای ۹۰ درصد برساند. یک رویه رایج (هرچند نه اثباتشده یا قطعی) این است که عمداً نرخ کمیسیون را کمی بالاتر از واقعیت در نظر بگیرید، بهعنوان یک حاشیه اطمینان که بخشی از عدمقطعیت ناشی از اسلیپیج را پوشش میدهد — هرچند این فقط یک روش تجربی است، نه یک قاعده اثباتشده.
چرا این موضوع برای معاملات الگوریتمی اینقدر مهم است؟ #
هرچقدر هزینههای معامله با دقت بیشتری در یک شبیهسازی لحاظ شوند، آن شبیهسازی قابلاعتمادتر میشود — و بدون آنها، نمیتوان اعتماد چندانی به عملکرد ظاهری یک استراتژی داشت. این موضوع قابلمقایسه است با نحوه سادهسازی مقاومت هوا و اصطکاک در مسائل مقدماتی فیزیک: حذف آنها چیزهای زیادی را درباره نتیجه واقعی تغییر میدهد. همین موضوع درباره هزینههای معامله در آزمایش استراتژیهای الگوریتمی هم صادق است — بهتنهایی کوچک هستند، اما اثر تجمعیشان میتواند تفاوت بین استراتژیای که روی کاغذ سودده بهنظر میرسد و استراتژیای که واقعاً سودده است را رقم بزند.
جمعبندی #
اسپرد، کمیسیون و اسلیپیج سه هزینه اصلی هستند که هر معاملهگری — بهخصوص هر استراتژی الگوریتمی — باید آنها را در نظر بگیرد. اسپرد عمدتاً در بازارهای مبتنیبر بروکر مثل فارکس و کامودیتی اعمال میشود، کمیسیون تقریباً در همهجا وجود دارد و بسته به بازار میتواند یک یا دو بار اخذ شود، و اسلیپیج کمترین قابلیتپیشبینی را در میان این سه دارد و مستقیماً به شرایط زنده بازار وابسته است. حذف هرکدام از اینها از بکتست، اعدادی تولید میکند که قابلاعتماد نیستند.
خلاصه #
هزینههای معامله — اسپرد، کمیسیون و اسلیپیج — بهتنهایی کوچک اما در مجموع حیاتی هستند، و اعتبار بکتست هر استراتژی الگوریتمی دقیقاً به این بستگی دارد که این هزینهها چقدر دقیق در آن مدلسازی شده باشند.