Минулої ночі виявив, що мій автоматичний торговий скрипт Polymarket таємно купив 37 ордерів, витративши $110.


Журнал програми показує "Кількість позицій: 0". Але відкривши Polymarket, побачив, що всі шість ринків погоди — це мої позиції.
Що трапилось?
Після розміщення ордеру API повідомив програмі "не вдалося купити", тож програма не записала це. Але насправді гроші вже були витрачені.
Потім програма через інший баг зламалася, менеджер процесів автоматично перезапустив її. Після перезапуску програма побачила — "Гей, немає позицій, купимо ще раз".
Злам → Перезапуск → Ще купити → Знову злам. Цикл тривав 34 рази.
Найсмішніше те, що в іншій моїй стратегії вже був правильно реалізований логік підтвердження виконання угоди. Коли я писав цей код, я не повертався, щоб подивитися на свій код.
Три уроки:
• Не довіряйте миттєвим відповідям будь-якого API як остаточному результату, потрібно двічі підтверджувати
• Механізм автоматичного перезапуску не має захисту від дублювання — перетворює маленький баг у ланцюгову реакцію вибухів
• Правильні рішення, вже реалізовані у власній кодовій базі, набагато дешевші, ніж знову наступати на граблі
На щастя, я подивився прогноз погоди, і більшість позицій, ймовірно, зможуть повернутися. Але це — вдача, а не навички.
Переглянути оригінал
post-image
post-image
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • Прокоментувати
  • Репост
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити