بکتست یعنی یک قاعدهٔ معاملاتی را روی دادهٔ گذشته اجرا کنید و ببینید چه میشد. ابزار بکتست آپشنباز این کار را برای قراردادهای اختیار معامله (آپشن) بورس ایران انجام میدهد: قاعدهای مثل «سی روز مانده به سررسید، اسپرد صعودی کال یک پله بالاتر از قیمت روز» را روی همهٔ سررسیدهایی که تمام شدهاند اجرا میکند و هر سررسید را به یک معاملهٔ کامل تبدیل میکند.
کاری که نمودار سود و زیان برای «اگر همین الان وارد شوم چه میشود» میکند، این صفحه برای «اگر هر بار وارد میشدم چه شده بود» میکند. این مقاله میگوید مدلش چطور کار میکند، هر قیمت از کجا میآید، نتیجه را چطور بخوانید که خودتان را گول نزنید، و ابزار دربارهٔ چه چیزهایی ادعای دانستن نمیکند.
برای دیدن خودِ ابزار به بکتست استراتژی بروید. استفادهاش رایگان است و فقط به ورود به حساب نیاز دارد، چون هر اجرا روی حساب خودتان ذخیره میشود.
باز کردن بکتست و اجرای اول
بکتست صفحهٔ مستقل خودش را دارد و از نشانی بکتست استراتژی باز میشود. بالای صفحه سه تب هست: اجرای بکتست که فرم ساخت قاعده است، بکتست فرمول برای اجرای فرمولهای خودتان روی گذشته، و اجراهای قبلی که هر بکتستی را که گرفتهاید نگه میدارد.
برای اولین اجرا سه چیز کافی است: یک نماد پایه انتخاب کنید، یک قالب استراتژی بردارید، و در «ورود: چند روز مانده به سررسید» عددی بگذارید. بعد دکمهٔ «اجرای بکتست» را بزنید. بقیهٔ تنظیمات پیشفرضهای محافظهکارانه دارند و میتوانید فعلاً دستشان نزنید.
راه دوم این است که از استراتژیای که همین حالا ساختهاید شروع کنید: در نمودار سود و زیان، از منوی عملیات گزینهٔ «بکتست این استراتژی» را بزنید. لگهای روی بوم به یک قاعده ترجمه میشوند — فاصلهٔ هر قیمت اعمال تا قیمت پایه به درصد در میآید — و فرم بکتست از قبل پر شده باز میشود.
چرا درصد و نه خودِ قرارداد؟ چون قراردادهای امروز مالِ سررسید امروزند؛ سررسیدهای گذشته نماد دیگری داشتند و بعضیشان اصلاً همان قیمت اعمال را نداشتند. قاعده باید چیزی باشد که در هر چرخه دوباره قابل ساختن است، نه یک فهرست نماد.
کدام سؤال را میپرسید
سه ابزار در آپشنباز به گذشته و آینده نگاه میکنند و هر کدام جواب سؤال متفاوتی هستند. قبل از اینکه وقت بگذارید، مطمئن شوید سراغ همانی رفتهاید که سؤال شما را جواب میدهد.
بکتست چرخهای — همین صفحه — یک قاعدهٔ ثابت را روی سررسیدهای تمامشده اجرا میکند. بکتست فرمول همان فیلتر یا ستونی را که در دیدهبان نوشتهاید روی روزهای گذشته دوباره اجرا میکند و میگوید چه روزهایی صدا میزد و بعدش چه شد. سبد آزمایشی در پرتفوی اصلاً به گذشته کار ندارد: از امروز به بعد را با پول خیالی و قیمت واقعی دنبال میکند.
چرخه چیست: یک قاعده روی هر سررسید
بکتستهای بازار سهام معمولاً زمان را روز به روز جلو میبرند و هر روز میپرسند «امروز سیگنالی هست؟». در بازار اختیار این مدل جواب نمیدهد، چون خودِ ابزار عمر دارد: هر زنجیره یک روز متولد میشود، چند هفته زندگی میکند و در سررسید تمام میشود. پس واحد طبیعی، روز نیست — چرخه است.
موتور برای هر زنجیرهٔ منقضیشده همین کار را میکند: از روز سررسید به عقب میشمارد تا به «چند روز مانده» برسد، آخرین جلسهای را که زنجیره در آن واقعاً درج شده بود پیدا میکند، لگها را همانجا باز میکند و تا خروج نگه میدارد. نتیجه، یک ردیف در جدول معاملههاست.
فایدهٔ این مدل مقایسهپذیری است: همهٔ معاملهها از فاصلهٔ یکسانی تا سررسید شروع شدهاند، پس ارزش زمانیشان با هم قابل مقایسه است و میانگین گرفتن از آنها معنا دارد. هزینهاش این است که تعداد نمونهها را خودِ بازار تعیین میکند، نه شما — و در بازار ما این تعداد کوچک است.
قیمت اجرا: چرا از صف، نه از آخرین معامله
مهمترین تصمیم هر بکتست اختیار این است که قیمت ورود و خروج را از کجا بردارد. در بازار ایران این تصمیم نتیجه را کاملاً عوض میکند، و دلیلش یک عدد است.
یعنی اگر بکتستی «آخرین قیمت معامله» را مبنا بگیرد، در دو روز از هر سه روز عددی را استفاده میکند که آن روز اصلاً معاملهای پشتش نبوده. بدتر: در سامانهٔ معاملات، قراردادی که معامله نشده باشد آخرین قیمتش را بهصورت یک مقدار نگهدارنده گزارش میکند، نه قیمت واقعی. بکتستی که این را نبیند، سودهایی نشان میدهد که هیچوقت قابل برداشت نبودند. (دربارهٔ سنجیدن نقدشوندگی یک قرارداد، چطور نقدشوندگی را بسنجیم را ببینید.)
پس پیشفرض ما صف سفارش پایان روز است — همان صفی که صفحهٔ زنجیره هم نشان میدهد — و سمتِ درست آن:
| گزینه | پیشفرض | چه میکند و کِی عوضش کنید |
|---|---|---|
| سرخط صف (قابل اجرا) | پیشفرض | خرید از سرخط عرضه و فروش از سرخط تقاضا — همان قیمتی که یک سفارش بازار واقعاً رویش میخورد. محافظهکارانهترین گزینه و تنها گزینهای که ادعای «قابل اجرا بودن» دارد. |
| میانهٔ صف | خاموش | میانگین بهترین خرید و فروش. از اجرای واقعی خوشبینانهتر است، چون فرض میکند سفارشتان وسط اسپرد پر میشود. برای مقایسهٔ دو قاعده با هم بد نیست؛ برای قضاوت دربارهٔ سود واقعی، نه. |
| آخرین معامله | خاموش | قیمت آخرین معاملهٔ همان روز. فقط وقتی معنا دارد که قرارداد پرمعامله باشد؛ روی قراردادهای کممعامله عددی را مبنا میگیرد که ممکن است ساعتها یا روزها قدیمی باشد. |
کنار این انتخاب یک تیک هست: «اگر این منبع خالی بود، سررسید را کنار بگذار (نه قیمت جایگزین)»، که بهصورت پیشفرض روشن است. روشن بودنش یعنی چرخهای که در روز ورودش صف نداشته اصلاً وارد نتیجه نمیشود و در فهرست کنارگذاشتهشدهها دلیلش نوشته میشود. اگر خاموشش کنید، موتور به ترتیب سراغ منبع بعدی میرود و آن معامله را «قیمت جایگزین» پرچم میزند.
وسوسهای که باید بشناسید: خاموش کردن این تیک تعداد معاملهها را بیشتر میکند و جدول را پرتر نشان میدهد. ولی چرخهای که صف نداشته، چرخهای است که واقعاً نمیشد در آن وارد شد. بیشتر شدن n با معاملههایی که در عمل ممکن نبودند، دقیقاً همان خودفریبی است که بکتست قرار بود جلویش را بگیرد.
سه قاعده برای انتخاب قیمت اعمال
قاعده باید در هر چرخه بتواند خودش قیمت اعمال را پیدا کند، چون نردبان قیمتهای اعمال در هر سررسید فرق میکند. سه راه برای گفتنِ «کدام اعمال» وجود دارد و هر سه در فرم هست:
- پله از ATM — روی نردبانِ همان روز میشمارد. صفر یعنی نزدیکترین اعمال به قیمت پایه، و هر واحد یک قیمت اعمال بالاتر یا پایینتر. این همان چیزی است که معاملهگر در ذهنش میگوید «یک پله بالاتر»، و نسبت به فاصلهٔ نامنظم اعمالها مقاوم است.
- درصد از قیمت — قیمت هدف را از قیمت پایهٔ روز ورود میسازد و نزدیکترین اعمال به آن را برمیدارد. وقتی میخواهید فاصله در همهٔ چرخهها به یک نسبت بماند، این درستتر از پله است.
- دلتا — قراردادی را برمیدارد که قدرمطلق دلتایش به عدد خواستهشده نزدیکتر است، با نوسان ضمنی همان روز و همان قرارداد. برای قاعدههایی که ذاتاً دربارهٔ احتمالاند مناسب است.
دو تنظیم دیگر هندسهٔ قالب را جابهجا میکنند: «فاصلهٔ بازوها (پله)» تعیین میکند دو پای یک اسپرد چند قیمت اعمال از هم دور باشند، و «جابهجایی نسبت به ATM (پله)» کل ساختار را با هم بالا یا پایین میبرد.
اگر قاعده به بیرون نردبان اشاره کند، آن چرخه کنار گذاشته میشود — نه اینکه نزدیکترین اعمال موجود جایش بنشیند. اگر «دو پله بالاتر» خواسته باشید و زنجیرهای فقط یک پله بالاتر داشته باشد، آن سررسید با دلیل «استرایک خواستهشده نبود» اجرا نمیشود. جایگزین کردنِ بیصدا یعنی نتیجهای که به دست میآورید مال قاعدهٔ دیگری است.
قالبهای آماده و لگهای سفارشی
هفده قالب آماده در فهرست «قالب استراتژی» هست و هر کدام یک توضیح یکخطی کنارش دارد: از تکپایهها (خرید و فروش اختیار خرید و اختیار فروش) تا کاوردکال و مریدپوت و کولار، چهار اسپرد عمودی، استرادل و استرانگل در هر دو جهت، آیرون کاندور و باترفلای کال. همان استراتژیهایی که در فهرست استراتژیهای اختیار معامله توضیح داده شدهاند.
اگر قالب آماده کافی نبود، دکمهٔ «ویرایش لگها» فهرست لگها را باز میکند و میتوانید سمت، تعداد، نوع و قاعدهٔ اعمال هر پا را جدا تنظیم کنید یا پای تازه اضافه کنید. با «بازگشت به قالب» به حالت اول برمیگردید.
یک قاعدهٔ بازار ایران که موتور اجازهٔ نقضش را نمیدهد: پای نماد پایه فقط خرید است. فروش استقراضی سهم در بورس تهران وجود ندارد، پس هر قاعدهای که پای پایه را بفروشد رد میشود — چیزی که در بکتستهای بازارهای دیگر آزاد است و نتیجهاش اینجا بیمعنی میشود.
ورود، خروج و مسیر روزانه
ورود همیشه یک روز است: آخرین جلسهٔ معاملاتی در فاصلهٔ خواستهشده تا سررسید که زنجیره در آن درج شده بود. از آن روز به بعد، موتور هر جلسه موقعیت را دوباره قیمتگذاری میکند و مسیر روزانهٔ سود و زیان را نگه میدارد.
علامتگذاری روزانه عمداً محافظهکارانه است: یک پای خریداریشده به قیمتی سنجیده میشود که یک خریدار حاضر است بدهد، و یک پای فروختهشده به قیمتی که یک فروشنده میخواهد. یعنی همان سمتی از صف که بستن موقعیت رویش انجام میشود، نه سمت خوشبینانه.
چهار راه خروج وجود دارد و هرکدام زودتر برسد معامله را میبندد:
- حد ضرر و حد سود — بر حسب درصدِ سرمایهٔ درگیر. هر دو روی علامتگذاری روزانه سنجیده میشوند، نه روی قیمت لحظهای، چون دادهٔ درونروزی برای گذشتهٔ دور در دسترس نیست.
- سقف روزهای نگهداری — بعد از این تعداد روز، موقعیت بسته میشود حتی اگر هیچ حدی نخورده باشد.
- سررسید — حالت پیشفرض. موقعیت تا آخر نگه داشته میشود و با قیمت پایانی نماد پایه در روز سررسید تسویه میشود؛ ارزش هر پا همان ارزش ذاتیاش میشود و کارمزد اعمال لگهای در سود هم کم میشود.
تفاوت این دو حالت در جدول نتیجه دیده میشود: در خروج زودهنگام، ستون «منبع» قیمت خروج را «سرخط صف» نشان میدهد؛ در نگهداری تا آخر، «تسویهٔ سررسید».
وجه تضمین: نقدی یا تهاتر راهبردی
در هر استراتژیای که پای فروش دارد، بخش بزرگی از «سرمایهٔ درگیر» پول بلوکهشده بابت وجه تضمین است — و چون همهٔ درصدهای جدول نسبت به همین سرمایه حساب میشوند، نحوهٔ محاسبهاش مستقیماً درصد بازده را جابهجا میکند. دو حالت هست:
| حالت | پیشفرض | چه میکند و کِی عوضش کنید |
|---|---|---|
| نقدی برای هر لگ فروش | پیشفرض | هر پای فروش وجه تضمین خودش را جدا بلوکه میکند، دقیقاً مثل چیزی که در نمودار سود و زیان میبینید. سرمایهٔ بیشتری نشان میدهد و در نتیجه درصدهای کوچکتر و محافظهکارانهتری میدهد. |
| تهاتر راهبردی | خاموش | وجه تضمین را طبق پیوست «ضوابط وجه تضمین» دستورالعمل معاملات اختیار حساب میکند: اسپرد بدهکار و پروانهٔ خرید بدون وجه تضمین، اسپرد بستانکار به اندازهٔ اختلاف قیمت اعمال، کاوردکال با پوشش سهم بدون وجه تضمین، و استرادل و استرانگل فروش به اندازهٔ بزرگترِ دو پا بهعلاوهٔ پریمیوم پای دیگر. |
کدام درست است؟ هر دو — بسته به کارگزار شما. تهاتر راهبردی در خودِ دستورالعمل به «فراهم آمدن امکانات فنی» مشروط شده و همهٔ سامانهها راهبرد را تشخیص نمیدهند. حالت نقدی جوابِ بدبینانه است و هیچوقت شما را غافلگیر نمیکند؛ تهاتر راهبردی سقفِ خوشبینانه است. اگر عددی بین این دو میخواهید، هر دو را اجرا کنید و فاصلهشان را ببینید.
هر دو حالت فقط داخل یک سررسید معنا دارند. اسپرد تقویمی — دو پا با دو سررسید — در هیچ سامانهای راهبرد شناخته نمیشود و پای فروشش وجه تضمین کامل میگیرد.
خواندن خلاصه: هر عدد کنار تعداد خودش
بالای نتیجه هشت کاشی هست. قبل از معنی هرکدام، یک قاعده: اول به «معاملهها» نگاه کنید، بعد به بقیه. نرخ بردِ 67 درصد روی سه معامله یعنی دو تا از سه تا — که هیچ چیزی دربارهٔ معاملهٔ چهارم نمیگوید.
| کاشی | چه میگوید |
|---|---|
| معاملهها | چند سررسید واقعاً اجرا شد، و از آنها چند تا برد و چند تا باخت. این عدد، اعتبار بقیهٔ جدول است. |
| نرخ برد | سهم معاملههای سودده. زیرش نوشته میشود روی چند معامله حساب شده — عمداً، چون نرخ برد بدون تعداد یک عدد بیمعنی است. |
| میانگین بازده | میانگین درصد بازده هر معامله نسبت به سرمایهٔ درگیر خودش. میانه و انحراف معیار هم کنارش میآید تا معلوم شود میانگین را یک معاملهٔ پرت ساخته یا نه. |
| سود کل | جمع سود و زیان همهٔ معاملهها به ریال، با کارمزد. زیرش میانگین ریالی هر معامله. |
| بدترین معامله | بدترین و بهترین بازده تکی. بدترین را جلوتر از بهترین گذاشتهایم چون چیزی است که باید تحملش را داشته باشید. |
| ضریب سود | جمع سودها تقسیم بر قدرمطلق جمع زیانها. اگر هیچ معاملهٔ زیاندهی نبوده، بهجای بینهایت خط تیره نشان داده میشود. |
| انتظار ریاضی | ارزش یک معاملهٔ بعدی بر حسب درصد: نرخ برد ضرب در میانگین برد، منهای نرخ باخت ضرب در میانگین باخت. |
| بیشترین افت | عمیقترین سقوط منحنی تجمعی از قلهٔ خودش تا دره — هم به درصد و هم به ریال. |
زیر کاشیها منحنی سرمایه است: هر نقطه یک معاملهٔ بستهشده، به ترتیب تاریخ خروج. منحنی فرض میکند سرمایهٔ هر معامله ثابت است و درصدها را جمع میزند، پس شیبش را باید بهعنوان «این قاعده در طول زمان چه کرد» خواند، نه بهعنوان رشد یک حساب واقعی. کنارش هیستوگرام توزیع بازده و دو جدول تفکیک — به تفکیک نماد و به تفکیک دلیل خروج — میگویند نتیجه از کجا آمده. اگر همهٔ سود از یک نماد است، همان را جدا بسنجید.
معنی دقیق شاخصهایی مثل انتظار ریاضی و ضریب سود در شاخصهای عملکرد معاملهگر آمده؛ همانها در ژورنال هم روی معاملات واقعی شما حساب میشوند.
پرچمها: کدام عدد با فرض ساخته شده
هر معاملهای که جایی از محاسبهاش به یک فرض تکیه کرده باشد، پرچم میگیرد. پرچمها معامله را از جدول حذف نمیکنند — این تصمیم شماست، نه ابزار — ولی زیر کاشیها شمرده میشوند و در جدول معاملهها کنار هر ردیف مینشینند. با تیک «فقط پرچمدارها» میتوانید فقط همانها را ببینید.
| پرچم | یعنی چه | با آن چه کنید |
|---|---|---|
| قیمت جایگزین | دستکم یکی از قیمتهای ورود یا خروج از منبع خواستهشده نیامده و از منبع بعدی گرفته شده. | فقط وقتی ممکن است که تیک «کنار بگذار» را برداشته باشید. اگر روی معاملههای زیادی نشسته، یعنی آن قاعده در عمل قابل اجرا نبوده. |
| قیمت کهنه | در یکی از روزهای نگهداری، نه صفی بوده و نه معاملهای؛ پس قیمت روز قبل جلو برده شده. | روی خودِ سود و زیان نهایی اثر ندارد، ولی حد ضرر و حد سود روی همان قیمت کهنه سنجیده شدهاند. |
| تعدیل مجمع | قیمت اعمال یا اندازهٔ قرارداد در فاصلهٔ ورود تا خروج عوض شده — یعنی نماد پایه مجمع داشته. | نتیجه با شرایط روز ورود حساب شده. برای فهمیدن اینکه تعدیل دقیقاً چه میکند، تعدیل قیمت اعمال پس از مجمع را ببینید. |
| استرایک فرضی | برای آن روز، تاریخچهٔ قیمت اعمال ثبت نشده بوده و از قیمت اعمالِ امروز فرض شده است. | روی قراردادهایی که هیچوقت تعدیل نشدهاند بیضرر است؛ روی یک قرارداد تعدیلشده یعنی عدد را باور نکنید. |
| صف یکطرفه | خروج زودهنگام روی صفی انجام شده که فقط یک طرف داشته. | یعنی خروج در آن قیمت لزوماً شدنی نبوده. هرچه این پرچم بیشتر باشد، حد ضرر و حد سود کمتر قابل اتکا هستند. |
خواندن درست پرچمها این است: اگر از بیست معامله، هجدهتا «قیمت کهنه» دارند، آن قاعده روی قراردادهایی اجرا شده که عملاً معامله نمیشدند و نتیجهاش بیشتر دربارهٔ نبودِ بازار است تا دربارهٔ خودِ قاعده.
سررسیدهایی که اجرا نشدند
پایین نتیجه یک بخش جمعشده هست به اسم «سررسیدهای کنارگذاشتهشده» که هر چرخهٔ اجرانشده را با دلیلش فهرست میکند. این بخش به اندازهٔ خودِ نتیجه مهم است: اگر از بیست سررسید فقط سهتا اجرا شده باشند، آن سهتا نمایندهٔ چیزی نیستند.
| دلیل | یعنی چه |
|---|---|
| روز ورود نداشت | زنجیره در آن روزِ خواستهشده هنوز درج نشده بود. روی زنجیرههای کوتاهعمر پرتکرارترین دلیل است: اگر «ورود» را 30 روز مانده گذاشته باشید، زنجیرهای که فقط 20 روز عمر داشته اصلاً چنین روزی ندارد. |
| صف خالی | در روز ورود، آن سمت از صف که سفارش شما رویش میخورد خالی بوده. با تنظیم پیشفرض این یعنی آن چرخه اجرا نمیشود. |
| استرایک خواستهشده نبود | قاعدهٔ انتخاب اعمال به بیرونِ نردبان آن روز اشاره کرده — مثلاً «دو پله بالاتر» روی زنجیرهای که فقط یک پله بالاتر داشته. |
| حجم کم | حجم معاملات قرارداد در روز ورود از کفی که در «کف حجم روز ورود» گذاشتهاید کمتر بوده. |
| قیمت پایه نبود | نماد پایه در روز ورود قیمتی ثبت نکرده بود. |
| قیمت تسویه نبود | در روز سررسید، قیمت پایانی نماد پایه در دسترس نبوده، پس تسویه قابل محاسبه نیست. |
| سرمایهٔ صفر | سرمایهٔ درگیر صفر درآمده — ترکیبی که نه پولی میخواهد و نه وجه تضمینی، پس درصد بازدهش تعریف ندارد. |
یک اجرای واقعی، با اعدادش
برای اینکه این حرف انتزاعی نماند، یک اجرای واقعی روی دادهٔ خودمان: اسپرد صعودی کال با فاصلهٔ یک پله، ورود 30 روز مانده به سررسید، روی یکی از صندوقهایی که بیشترین تعداد سررسید را در دادهٔ ما دارد. از 16 سررسید، تنها 3 تا اجرا شدند: 8 سررسید 30 روز قبل هنوز زنجیرهشان درج نشده بود و 5 سررسید در روز ورود صف نداشتند.
نتیجهاش «نرخ برد 67 درصد» بود — عددی که در هر گزارشی خوب به نظر میرسد و در واقع یعنی دو معامله از سه معامله. با یک معاملهٔ دیگر، همان عدد میشد 50 یا 75 درصد. این دقیقاً همان چیزی است که کاشی «معاملهها» را اول جدول گذاشته: نه برای تزئین، برای اینکه بقیهٔ اعداد را در همان اندازهای بخوانید که هستند.
راه درست بزرگ کردن نمونه، خاموش کردن گاردها نیست؛ چند نماد را با هم انتخاب کنید یا فاصلهٔ ورود را کمتر بگذارید تا زنجیرههای کوتاهعمر هم روز ورود داشته باشند. جدول «به تفکیک نماد» بعدش میگوید نتیجه در هر نماد چطور بوده.
از یک ردیف نتیجه به زنجیرهٔ امروز
کلیک روی هر ردیف جدول، جزئیات همان معامله را باز میکند: هر پا با قیمت ورود و منبعش، قیمت خروج و منبعش، وجه تضمین، و نمودار مسیر روزانهٔ سود و زیان از روز ورود تا خروج. همانجا بیشترین سود باز و بیشترین زیان بازِ آن معامله هم نوشته میشود — یعنی چقدر جلو بوده و چقدر عقب رفته پیش از آنکه بسته شود.
پایین همین پنجره دکمهٔ «ساخت روی زنجیرهٔ امروز» هست. همان قاعده را روی زنجیرهٔ فعلی همان نماد پیاده میکند — نزدیکترین سررسیدی که هنوز به اندازهٔ کافی روز دارد — و موقعیت را در نمودار سود و زیان باز میکند تا ببینید امروز چه شکلی میشود.
قراردادهای خودِ آن معاملهٔ گذشته قابل باز کردن نیستند و این عمدی است: آنها منقضی شدهاند و دیگر قیمتی ندارند. چیزی که قابل انتقال است، قاعده است نه نماد. یک نکته هم بدانید: اگر قاعدهٔ اعمالتان دلتایی باشد، روی زنجیرهٔ امروز به نزدیکترین اعمال به قیمت روز تبدیل میشود، چون نوسان ضمنی لحظهای در این صفحه در دسترس نیست.
بکتست فرمول دیدهبان
تب دوم برای کسانی است که در دیدهبان فرمول یا فیلتر نوشتهاند. سؤالی که جواب میدهد این است: «این فیلتری که نوشتهام، در ماههای گذشته چه روزهایی صدا میزد و بعدش چه شد؟»
کاری که میکند بازپخش است، نه گزارشسازی: برای هر روز معاملاتی در بازهای که انتخاب میکنید، زنجیرهٔ آن روز دوباره ساخته میشود — با همان قیمتها، همان صف، همان نوسان ضمنی و همان موقعیت باز — و فرمول شما با همان موتور و همان توابع کمکی دیدهبان رویش اجرا میشود. هیچ عددی حدس زده نمیشود؛ چیزهایی که برای گذشته نداریم، خالی میمانند.
برای فیلترها، «فعال شدن» یعنی فیلتر آن ردیف را نگه داشته. برای ستونها میتوانید یک «آستانهٔ فعالشدن ستون» بگذارید تا ردیفی فعال شمرده شود که مقدار عددی ستونش از آن آستانه کمتر نباشد؛ خالی گذاشتنش یعنی هر مقدار غیرخالی.
خروجی برای هر ردیف فعالشده، بازده «اگر همان روز میخریدید» است: خرید در سرخط عرضهٔ همان روز، و فروش در سرخط تقاضای یک، پنج و ده جلسهٔ بعد — بهعلاوهٔ ارزش ذاتی در سررسید. بالای جدول، برای هر افق، سهم موارد مثبت و میانگین و میانه نوشته میشود، همیشه کنار تعداد موردی که قابل قیمتگذاری بوده.
این تب فقط فرمولهای خودتان را میبیند. اگر هنوز فرمولی نساختهاید، از فرمولهای آمادهٔ دیدهبان یکی را به فرمولهای خودتان اضافه کنید؛ از آن لحظه در این فهرست هم پیدا میشود.
فورواردتست: سبد آزمایشی
بکتست جواب «در گذشته چه میشد» است. سؤال مکمل — «از امروز به بعد چه میشود» — جای دیگری جواب داده میشود: سبد آزمایشی در پرتفوی.
سبد آزمایشی همان پرتفوی است با پول خیالی: موقع ساختنش سرمایهٔ اولیهٔ فرضی میگذارید، بعد هر استراتژی را با «ثبت آزمایشی» و با قیمت لحظهای سرخط بازار در آن ثبت میکنید، و از آن لحظه ژورنال آن را مثل یک معاملهٔ واقعی دنبال میکند. سررسیدها هم خودکار تسویه میشوند. پول خیالی هیچوقت با پول واقعی جمع نمیشود: چیپ «همهٔ سبدهای واقعی» سبد آزمایشی را جمع نمیزند و هر جا نامش بیاید نشان «آزمایشی» کنارش هست.
چرا هر دو لازماند؟ چون هرکدام نقطهکور دیگری را میپوشاند. بکتست تعداد نمونه میدهد ولی با فرضهای صف پایان روز کار میکند. فورواردتست فرض ندارد — قیمتها همان چیزیاند که در لحظه دیدهاید — ولی برای جمع شدن نمونه باید صبر کنید. قاعدهای که در بکتست جواب داده و در سبد آزمایشی هم دوام آورده، چیز دیگری است.
محدودیتها
- دادهٔ اختیار از 1404/09/26 شروع میشود. هر بکتستی از همان روز به بعد است و ابزار این تاریخ را بالای فرم مینویسد. دورهٔ نهماهه یعنی برای هر نماد چند ده سررسید در بهترین حالت — نه چند صد. نتیجهای که روی این دوره گرفته میشود دربارهٔ همین دوره حرف میزند، نه دربارهٔ هر بازاری.
- صف، عکسِ پایان روز است. صفی که مبنای قیمت قرار میگیرد آخرین وضعیت دفتر سفارش در پایان جلسه است، نه لحظهای که شما احتمالاً سفارش میگذاشتید. برای اختیارهای کمعمق این تفاوت میتواند بزرگ باشد.
- بکتست درونروزی نداریم و نخواهیم داشت. دادهٔ درونروزی فقط سه ماه نگه داشته میشود، پس هر قاعدهای که به ساعت ورود یا خروج وابسته باشد در این ابزار قابل سنجش نیست. حد ضرر و حد سود روی قیمت روزانه سنجیده میشوند.
- تعدیل بعد از مجمع تاریخچه دارد، ولی نه از ابتدا. قیمت اعمال و اندازهٔ قرارداد از روزی که ثبتشان را شروع کردهایم تاریخدار هستند؛ برای روزهای قبل از آن، شرایطِ امروز فرض میشود و معامله پرچم «استرایک فرضی» میگیرد.
- اثر خودتان روی بازار حساب نمیشود. موتور فرض میکند حجم موردنیاز شما در سرخط موجود بوده. در قراردادی که سرخطش چند قرارداد عمق دارد، سفارش بزرگتر قیمت را جابهجا میکند و بکتست این را نمیبیند.
- بکتست پیشبینی نیست. این را هر متن جدی دربارهٔ بکتست میگوید و اینجا هم درست است: نتیجه میگوید یک قاعده در یک دورهٔ مشخص چه کرد. اگر روی همان داده آنقدر تنظیمات را عوض کنید تا عدد قشنگ شود، چیزی که ساختهاید یک قاعده نیست، یک توصیف از گذشته است.
جمعبندی
بکتست آپشنباز یک قاعده را روی سررسیدهای تمامشده اجرا میکند، قیمتها را از صف سفارش برمیدارد نه از آخرین معامله، کارمزد و وجه تضمین را حساب میکند، و هر جا مجبور شده فرضی بگذارد آن را پرچم میزند. سررسیدهایی که قابل اجرا نبودند حذف نمیشوند؛ با دلیلشان فهرست میشوند.
و یک قاعده که ارزش تکرار دارد: هر عدد را کنار تعداد معاملهاش بخوانید. ابزاری که فقط منحنی سبز نشان بدهد، دارد آرامش میفروشد؛ چیزی که واقعاً به کار میآید، دانستنِ این است که این نتیجه روی چند نمونه و با چه فرضهایی ساخته شده.
برای شروع، بکتست استراتژی را با یک نماد پرمعامله و یک قالب ساده باز کنید و اول به دو چیز نگاه کنید: تعداد معاملهها، و فهرست سررسیدهای کنارگذاشتهشده. بعد همان قاعده را با «سبد آزمایشی» از امروز به بعد هم دنبال کنید — و برای دیدن تاریخ سررسیدها و مجامعِ پیشرو، تقویم معاملاتی کنار دستتان باشد.