بکتست بازار پیشبینی ممکن است از نمادی استفاده کند که درست به نظر میرسد، از سابقه قیمت درست بهره ببرد و با این حال روی قرارداد اشتباهی معامله کند. تشخیص این اشتباه آسان نیست، چون نام بازارها کوتاه است، صفحههای رویداد بهروزرسانی میشوند و سهم YES همیشه قیمتی بین صفر و یک دارد.
بازاری فرضی با عنوان «آیا قانون حملونقل پاک تصویب میشود؟» را در نظر بگیرید. یک استراتژی پس از دریافت سیگنال خبری، YES را با قیمت 0.42 میخرد. بکتست بعدتر موقعیت را با قیمت 1.00 ارزشگذاری میکند. پیش از اعتماد به این برد، میخواهم بدانم قرارداد دقیقاً چه چیزی را وعده داده بود: کدام لایحه، منظور از «تصویب» چه بود، مهلت چه زمانی بود و چه منبعی نتیجه را تعیین کرد.
عنوان: «آیا قانون حملونقل پاک تصویب میشود؟»
عنوان یک رشته نمایشی است، نه شناسهای پایدار برای ابزار معاملاتی. ممکن است 2 بازار عباراتی تقریباً یکسان داشته باشند، اما به دورههای قانونگذاری، لوایح اصلاحشده یا مهلتهای متفاوت اشاره کنند. همچنین ممکن است یک پلتفرم عنوان را برای روشنتر شدن بازار تغییر دهد، بیآنکه شرایط زیربنایی آن عوض شود.
بنابراین بکتست باید موقعیت را با شناسه تغییرناپذیر بازار یا قرارداد در پلتفرم مشخص کند و متن کامل قوانین و نسخه آن را نگه دارد. اگر دادههای تاریخی فقط عنوان و نماد معاملاتی را داشته باشند، نمیتوان اثبات کرد که سری قیمت به همان قراردادی تعلق دارد که استراتژی قصد معاملهاش را داشته است.
| فیلد هویت | چه چیزی را مشخص میکند | پیامد حذف آن |
|---|---|---|
| پلتفرم و شناسه بازار | بازار فهرستشده مشخص | عنوانهای مشابه به هم پیوند میخورند |
| نسخه قوانین | شرایطی که شرکتکنندگان پذیرفتهاند | ویرایش بعدی برای معاملات قبلی اعمال میشود |
| شناسه توکن نتیجه | ادعای YES یا NO که معامله میشود | قیمتهای YES و NO جابهجا یا با هم ترکیب میشوند |
| منبع تعیین نتیجه | مدرکی که برای تعیین نتیجه به کار میرود | بکتست مرجع دیگری را مبنا میگیرد |
قوانین: منظور از «تصویب» چیست؟
فرض کنید طبق قوانین، لایحه باید تا 30 ژوئن در مجلس نمایندگان و سنا تصویب و سپس به امضای رئیسجمهور برسد. بکتستی که تصویب در هر یک از دو مجلس را موفقیت تلقی کند، شرط را عوض کرده است. همینطور اگر لایحهای با همان نام در دوره بعدی قانونگذاری را ملاک بگیرد.
معیارهای واقعی تعیین نتیجه را بهصورت شروط قابل اجرا بخوانید. مهلت و منطقه زمانی، رویداد واجد شرایط، هرگونه استثنا و منبع تعیین نتیجه را ثبت کنید. ابهام هم اهمیت دارد: اگر قوانین پلتفرم سناریوی معقولی را بینتیجه بگذارند، بیسروصدا تفسیری را انتخاب نکنید که با نتیجه تاریخی جور درمیآید.
بخش کمزرقوبرق اما بسیار مهمی از این کار، ذخیره صفحه قوانین پیش از رخ دادن هر اتفاق جالب است. صفحهای که فقط پس از تعیین نتیجه ثبت شده باشد ممکن است متن نهایی را نشان دهد، در حالی که استراتژی شما با نسخه قبلی وارد معامله شده است.
خط زمانی: استراتژی از چه زمانی میتوانست بداند؟
حالا فرض کنید قوانین روشناند و سیگنال خبری در 14:05 UTC فعال شده است. فید تاریخی میگوید معاملهای در 14:05 با قیمت 0.42 انجام شد. این زمان بهتنهایی نمیگوید که اطلاعات پیش از معامله در دسترس بودهاند یا نه، قیمت ثبتشده پس از آن قابل اجرا بوده یا نه، و کندل نشاندهنده مظنه، معامله یا خلاصهای از یک بازه زمانی است.
زمان در دسترس قرار گرفتن سیگنال را از زمان رویداد بازار جدا نگه دارید. سپس سفارش را پس از زمانی ثبت کنید که استراتژی توانسته آن را محاسبه و ارسال کند. در بازاری کمعمق، ممکن است چند دقیقه تا معامله ثبتشده بعدی فاصله باشد؛ این شاهدی نیست که سفارش شما با همان قیمت پر میشد.
قیمت: مظنه بهمعنای پرشدن سفارش نیست
قیمت 0.42 برای YES یعنی هر سهم 42 سنت است، اما سری آخرین معامله فاصله قیمت خرید و فروش و حجم در دسترس را پنهان میکند. اگر بهترین قیمت فروش 0.45 برای 20 سهم باشد، خرید شبیهسازیشده 100 سهم نمیتواند تماماً با قیمت 0.42 پر شود. سفارش ممکن است در دفتر سفارش پیش برود، منتظر بماند یا اصلاً پر نشود.
قیمتهای بازار پیشبینی وسوسه یک میانبُر حسابداری را هم ایجاد میکنند: 0.42 را احتمال 42٪ تلقی کردن و فراموش کردن اینکه این مبلغ، وجه نقد پرداختی برای ورود هم هست. موقعیت 100 سهمی YES پیش از کارمزدها $42 هزینه دارد. اگر با $1 تسویه شود، عایدی ناخالص $100 است؛ اگر با $0 تسویه شود، عایدی صفر است. کارمزدها، پرشدنهای جزئی و هر سازوکار خاص تسویه در پلتفرم باید در دفتر ثبت شوند.
تسویه: چه چیزی معامله را میبندد؟
بکتست اغلب موقعیت را با قیمت نهایی بازار میبندد. اما قراردادی که تا زمان تعیین نتیجه نگه داشته شود، طبق قوانین پرداخت میکند و آخرین قیمت مظنهشده آن ممکن است کهنه، با فاصله زیاد از قیمت خرید یا فروش، یا بسیار دور از پرداخت نهایی باشد. تعیین نتیجه را بهعنوان رویدادی مستقل مدل کنید: نتیجه، زمان تسویه و جابهجایی وجه نقد باید از سابقه قرارداد بیایند.
اگر قوانین پلتفرم نتیجه نامعتبر یا مورد اختلافی را تعریف میکنند، آن را هم لحاظ کنید. ممکن است مبلغ اولیه بازگردانده شود، مبلغ دیگری پرداخت شود یا تسویه به تأخیر بیفتد. فرض پرداخت دودویی نمیتواند همه مسیرهای تعیین نتیجه را بازنمایی کند.
حکم نهایی درباره بکتست
در این مثال، گزارش برد را فقط پس از تطبیق شناسه تغییرناپذیر بازار، نسخه قوانینِ زمان ورود، توکن YES، زمان در دسترس قرار گرفتن سیگنال، قیمتهای فروش قابل اجرا و حجم، کارمزدها و سابقه تسویه میپذیرم. اگر آرشیو قیمت نتواند این بررسیها را پشتیبانی کند، خروجی صادقانه دامنهای از سناریوها یا نتیجهای تأییدنشده است.
این سختگیری برای یک معامله کوچک شاید زیاد به نظر برسد. اما اگر همین خطای پیونددهی را در هزاران بازار تکرار کنید، بکتست میتواند به اندازهگیری دقیقی از قراردادهایی تبدیل شود که استراتژی شما هرگز معامله نکرده است.
← همهٔ مطالب


