12 жовтня 2026 · дослідження

Ми розібрали бектест ринку прогнозів, який купив не той контракт

Ми розібрали бектест ринку прогнозів, який купив не той контракт

У бектесті ринку прогнозів можуть бути правильний на вигляд тикер і правильна історія цін, але не той контракт. Цю помилку легко не помітити: назви ринків короткі, сторінки подій оновлюються, а частка YES завжди має вигляд ціни від нуля до одиниці.

Уявімо ринок із назвою «Чи ухвалять Закон про чистий транспорт?» Стратегія купує YES за 0.42 після новинного сигналу. Згодом бектест оцінює позицію в 1.00. Перш ніж вважати це виграшем, я хочу точно знати, що обіцяв контракт: про який законопроєкт ідеться, що вважатиметься його ухваленням, який строк і яке джерело визначає результат.

Назва: «Чи ухвалять Закон про чистий транспорт?»

Назва — це текст для відображення, а не стабільний ідентифікатор інструмента. Два ринки можуть мати майже однакові назви, але стосуватися різних сесій законодавчого органу, змінених законопроєктів або строків. Майданчик також може змінити назву, щоб уточнити ринок, не змінюючи його умов.

Тому в бектесті позицію слід прив’язувати до незмінного ID ринку чи контракту на майданчику, а також зберігати повний текст правил і його версію. Якщо в історичних даних є лише назва й тикер, неможливо підтвердити, що ряд цін належить саме тому контракту, яким мала торгувати ваша стратегія.

Поле ідентифікаціїЩо воно визначаєЩо піде не так, якщо його пропустити
Майданчик та ID ринкуКонкретний зареєстрований ринокРинки зі схожими назвами об’єднаються
Версія правилУмови, з якими погодилися учасникиПізнішу редакцію застосовано до попередніх угод
ID токена результатуТокен YES або NO, яким торгуютьЦіни YES і NO переплутано або об’єднано
Джерело визначення результатуДокази, за якими визначають результатУ бектесті припускається інший уповноважений орган

Правила: що означає «ухвалять»?

Припустімо, за правилами законопроєкт має пройти Палату представників і Сенат до 30 червня, а потім отримати підпис президента. Якщо в бектесті успіхом вважається проходження лише однієї з палат, ставку вже змінено. Те саме стосується зарахування законопроєкту з такою самою назвою, внесеного в наступній сесії.

Читайте фактичні критерії визначення результату як умови, які можна виконати. Зафіксуйте строк і часовий пояс, подію, що відповідає умовам, винятки та назване джерело визначення результату. Не менш важлива й неоднозначність: якщо правила майданчика не визначають результат для правдоподібного сценарію, не обирайте нишком трактування, яке збігається з історичним підсумком.

У цій роботі є напрочуд непоказний, але важливий етап: зберегти сторінку з правилами до того, як станеться щось цікаве. Сторінка, збережена лише після визначення результату, може містити остаточне формулювання, хоча стратегія відкрила позицію за попередньою версією.

Часова шкала: коли стратегія могла дізнатися про це?

Тепер припустімо, що правила чіткі, а новинний сигнал спрацював о 14:05 UTC. В історичній стрічці зазначено угоду о 14:05 за ціною 0.42. Самої часової позначки недостатньо, щоб зрозуміти, чи була інформація доступною до угоди, чи можна було виконати ордер за зафіксованою ціною після цього, а також чи відображає бар котирування, угоду або зведення за інтервал.

Зберігайте час доступності сигналу окремо від часу ринкової події. Потім розміщуйте ордер після того, як стратегія могла його обчислити й надіслати. На малоліквідному ринку наступна зафіксована угода може відбутися за кілька хвилин; це не доказ того, що ваш ордер виконали б за тією ціною.

Ціна: котирування — це ще не виконання ордера

YES за 0.42 означає ціну 42 центи за частку, але ряд останніх угод приховує спред і доступний обсяг. Якщо найкраща ціна продавця — 0.45 для 20 часток, змодельована купівля 100 часток не може повністю виконатися за 0.42. Ордер може пройти за кількома рівнями книги заявок, залишитися в очікуванні або взагалі не виконатися.

Ціни на ринках прогнозів також спонукають до спрощеного обліку: можна сприйняти 0.42 як імовірність 42% і забути, що це ще й початкова грошова витрата. Позиція на 100 часток YES коштує $42 до комісій. Якщо розрахунок відбудеться за $1, валова виплата становитиме $100; якщо за $0 — нуль. Комісії, часткове виконання та особливі для майданчика механізми розрахунку мають бути в обліку.

$42валова вартість 100 часток YES за $0.42
$100валова сума розрахунку, якщо результат YES
$0валова сума розрахунку, якщо результат NO

Розрахунок: що закриває угоду?

Часто в бектесті позицію закривають за останньою ринковою ціною. Але контракт, утримуваний до визначення результату, виплачує суму згідно з правилами, а його останнє котирування може бути застарілим, із широким спредом або далеким від остаточної виплати. Моделюйте визначення результату як окрему подію: результат, час розрахунку й рух коштів мають походити із запису контракту.

Також врахуйте, що результат ринку може бути визнано недійсним або оскаржено, якщо правила майданчика передбачають такий випадок. Тоді ставку можуть повернути, виплатити іншу суму або затримати розрахунок. Припущення про бінарну виплату не охоплює всі можливі варіанти визначення результату.

Вердикт щодо бектесту

У цьому прикладі я визнав би заявлений виграш лише після звірки незмінного ID ринку, версії правил, чинної на момент входу, токена YES, часу доступності сигналу, доступних цін продавців і обсягів, комісій та зафіксованого розрахунку. Якщо архів цін не дає змоги провести ці перевірки, чесний результат — діапазон сценаріїв або неперевірений підсумок.

Для однієї невеликої угоди це може здатися надмірною прискіпливістю. Але якщо та сама помилка зіставлення повториться на тисячах ринків, бектест може перетворитися на ретельне вимірювання контрактів, якими ваша стратегія ніколи не торгувала.

ринки прогнозівбектестингринкові данівиконання ордерів
ПоділитисяXLinkedInFacebookRedditHacker NewsWhatsAppTelegramEmail
← Усі статті