Всі вам казали, що для торгового бота потрібен хитромудрий ШІ та дата-центр.
Це брехня, яка заважає новачкам навіть почати.
Ось правда: прибутковий погодний бот для Polymarket — це проєкт на ВИХІДНІ, і до кінця цієї статті ви матимете готовий пайплайн.
Погода — протилежність 5-хвилинному BTC.
Вікна BTC — це підкидання монетки, яке неможливо передбачити, а перегони швидкості виграють боти, розташовані в одному дата-центрі.
Температура справді передбачувана, вирішується годинами, тому швидкість не має значення, а дані безкоштовні.
Це останній ринок, де самотній розробник на дешевому VPS все ще виграє за рахунок інтелекту, а не обладнання.
Вся машина — це шість кроків.
Знайди ринки, отримай прогнози, виправ зсув, перетвори на ймовірності, знайди 8% перевагу, визнач розмір і зроби ставку.
Ось і все.
Дозвольте мені дати вам кожен елемент.
Я створив сотні ботів, і ті, що приносять гроші, завжди такі прості, а не переускладнені, як люди думають, що вам потрібно.
Ось мій публічний приклад погодного бота: [[https://polymarket.com/profile/0xca75fbadcc238afd23c317e253a8b5c47b390a64?via=surferhttps://polymarket.com/profile/0xca75fbadcc238afd23c317e253a8b5c47b390a64?via=surfer)]
Все ще розвиваю його і переживаю смугу невдач, яку намагаюся виправити.
Але він не зливає гроші постійно, як попередні версії.

Тепер давайте створимо для вас грошовий принтер.
1. Концепція та ідея
Перед кодом чітко уявіть картину, бо це зробить кожен крок очевидним.
Polymarket розміщує щоденні ринки температури для міст по всьому світу.
Кожен з них — це набір кошиків.
Один кошик вирішується як YES за долар, решта обнуляються.
Ринок вирішується на ОДНІЙ точній станції аеропорту, а не на місті, яке ви бачите у своєму додатку погоди.

Робота вашого бота проста для опису.
Обчислити реальну ймовірність кожного кошика краще, ніж натовп, а потім купити кошики, які ринок недооцінив.
Ви НЕ прогнозуєте погоду самостійно.
Мільярдні моделі вже зробили це години тому.
Ви читаєте їхній прогноз, очищаєте його та порівнюєте з ринковою ціною.
Там, де ваша чесна ймовірність значно вища за ціну, у вас є перевага.
Все, що нижче, — це просто обчислення цього розриву та дії на його основі, не обманюючи себе.
Зберігайте всі налаштування в конфігураційному файлі, а не захардкодженими, щоб ви могли налаштувати без зміни логіки.
Початковий баланс, максимальна ставка, мінімальна перевага, цінові обмеження, частка Келлі.
Все це в одному місці, яке можна відредагувати за секунди.
2. Знайдіть ринки
Бот починає зі сканування Polymarket на предмет активних ринків температури, вартих торгівлі.
Не варто торгувати всіма.
Вам потрібен фільтр, який відкине сміття, перш ніж ви витратите виклик прогнозу або долар.
Три фільтри роблять більшу частину роботи:
> Обсяг
Пропускайте тонкі ринки з обсягом менше кількох тисяч.
Тонкі книги мають широкі спреди та ціни, яким не можна довіряти.

> Часовий проміжок
Торгуйте лише ринки, що вирішуються в проміжку від 2 до 72 годин.
Менше 2 годин — перевага вже врахована.
Більше 72 годин — прогноз надто невизначений, щоб на нього покладатися.
> Цінове обмеження
Пропускайте кошики, які вже торгуються вище приблизно 45 центів.
За такої ціни ринок уже врахував більшу частину переваги, і ваш потенціал зростання тонкий.

Кожен ринок, що вижив, вказує на місто, дату та станцію вирішення.
Ця станція — все, тому ви зберігаєте точні координати її аеропорту та код ICAO, ніколи не центр міста.
Використання координат центру міста може призвести до помилки в 3-8 градусів, перш ніж ваш бот взагалі почне думати.
Тепер у вас є чистий список ринків, придатних для торгівлі, кожен прив'язаний до точного місця, яке має цілити прогноз.
3. Завантажте прогноз (код)
Тепер ви отримуєте прогнози для точної станції кожного ринку з більш ніж одного джерела.
Одна модель — це думка.
Три моделі дозволяють побачити згоду та розбіжність, що саме по собі є інформацією.
Ваш якір — ECMWF, світовий золотий стандарт, безкоштовно через Open-Meteo, без ключа.
Для міст США на коротких горизонтах ви додаєте модель вищої роздільної здатності, яка читає реальні спостереження.
Ось отримання ECMWF:
1def get_ecmwf(lat, lon, unit):2url = (3"https://api.open-meteo.com/v1/forecast"4f"?latitude={lat}&longitude={lon}"5f"&daily=temperature_2m_max&temperature_unit={unit}"6"&forecast_days=7&models=ecmwf_ifs025"7"&bias_correction=true"8)9data = requests.get(url, timeout=(5, 8)).json()10return data["daily"]["temperature_2m_max"]
Прапорець \bias_correction=true\ важливий — він безкоштовно застосовує перший прохід корекції помилок на основі місцезнаходження.
Для міст США в межах приблизно 48 годин використовуйте модель вищої роздільної здатності:
1def get_hrrr(lat, lon):2url = (3"https://api.open-meteo.com/v1/forecast"4f"?latitude={lat}&longitude={lon}"5"&daily=temperature_2m_max&temperature_unit=fahrenheit"6"&forecast_days=3&models=gfs_seamless"7)8return requests.get(url, timeout=(5, 8)).json()["daily"]["temperature_2m_max"]
Просте правило: висока роздільна здатність для США на короткий термін, ECMWF для всього іншого.
Запитуйте кожне місто в його власній одиниці: США — за Фаренгейтом, решта — за Цельсієм, і тримайте всі порівняння в одній шкалі.
4. Виправте зсув (ось де гроші)
Тут переможці відділяються від усіх інших.
Кожна модель систематично помиляється в одному напрямку.
GFS має холодний зсув, він занижує температуру, і розмір цієї помилки залежить від міста, часу доби та віддаленості прогнозу.

Якщо ви пропустите це, ваша перевага часто буде просто моделлю, яка помиляється звичним чином.
Це не перевага.
Це шум у костюмі переваги.
Тому, перш ніж обчислити жодну ймовірність, ви виправляєте модель, використовуючи її власні минулі помилки.
Зсув визначається дуже просто.
> зсув = прогноз мінус фактичне значення
Ви вимірюєте його окремо для кожного міста, горизонту, часу доби, а потім зміщуєте нові прогнози на цю відому помилку.
Найпростіша версія, яка працює, — це затухаюче середнє останніх помилок, щоб новіші промахи мали більшу вагу.
Вам НЕ потрібна нейронна мережа для цього.
Базове затухаюче середнє або невелика регресія дають вам 60-80% усіх можливих покращень.
Запушіть це спочатку.
Хитромудра ML-корекція зсуву реальна, але це останні 20%, і вона має значення лише тоді, коли проста версія вже приносить гроші.
Спочатку виправте вхідні дані.
Нудна безкоштовна модель, виправлена, перевершує хитромудру модель, яка живиться сирими даними.
5. Перетворіть прогнози на ймовірності кошиків
Тепер ви перетворюєте одне виправлене значення прогнозу на ймовірність для кожного кошика.
Ось помилка, яку роблять новачки.
Вони беруть прогноз, кидають його в будь-який кошик, куди він потрапляє, і називають цей кошик 100%.
Але прогноз не є точним.
Це центральна точка з відомим розкидом помилок навколо неї.
Цей розкид — вся гра.
Скажімо, ваш виправлений прогноз — 41°F, а типова помилка моделі для цього міста становить близько 2 градусів.
Справжній максимум може легко потрапити на кошик вище або нижче.
Тому ви не ставите на один кошик 100%.
Ви розподіляєте ймовірність між кошиком прогнозу ТА його сусідами, зважуючи на те, наскільки ймовірний кожен з них, враховуючи розмір вашої помилки.
Тісніша історична помилка означає більше ймовірності, зосередженої на центральному кошику.
Ширша помилка розподіляє її по сусідах.
Саме тому знання вашої реальної помилки, вашої сигми, має таке велике значення.
Без неї ви вгадуєте власну впевненість.
З нею ви перетворюєте прогноз на чесний розподіл ймовірностей, з яким можна порівнювати ринок.
Саме цей розподіл ви насправді торгуєте, кошик за кошиком.
6. Знайдіть перевагу та визначте розмір за Келлі
Тепер ви порівнюєте свою ймовірність з ринковою ціною і дієте лише тоді, коли розрив реальний.
Спочатку очікувана вартість, ваша перевага на долар:
1def calc_ev(p, price):2if price <= 0 or price >= 1:3return 0.04return round(p * (1.0 / price - 1.0) - (1.0 - p), 4)
Якщо ваша модель каже, що кошик має 80% ймовірності, а він торгується по 14 центів:
\0.80 * (1/0.14 - 1) - 0.20 = +4.94\
Це величезна перевага.
Але ви не дієте на кожне позитивне число — ви встановлюєте мінімум, торгуєте лише тоді, коли EV перевищує приблизно 8%, щоб пропустити слабкі сигнали.
Потім Келлі каже вам, яку частину вашого банкролу ставити:
1def calc_kelly(p, price, kelly_fraction=0.25):2b = 1.0 / price - 1.03f = (p * b - (1.0 - p)) / b4return min(max(0.0, f) * kelly_fraction, 1.0)
Два обмежувачі, які тримають вас у грі.
> Використовуйте дробовий Келлі, чверть від того, що каже повний Келлі
Повний Келлі — це американські гірки, дріб різко знижує волатильність.
> Жорстко обмежуйте кожну ставку максимальним розміром з вашого конфігу
Навіть якщо Келлі кричить ставити багато, обмеження рятує вас від одного поганого ринку.
Входьте за ASK, реальною ціною, яку ви платите, і розглядайте bid як ваш вихід, інакше ваш бектест вас обдурить.
7. Виконуйте, зупиняйтеся та логуйте все
Тепер бот діє, і, що не менш важливо, записує.
Основний цикл працює за розкладом, наприклад, щогодини, і робить те саме по порядку для кожного ринку.
Отримайте свіжі прогнози з усіх джерел
Знайдіть відповідний ринок Polymarket та завантажте його запис
Збережіть поточний прогноз як знімок, бо ця історія — ваша майбутня перевага
Перевірте стопи за будь-якою відкритою позицією
Відкрийте нову позицію, лише якщо EV перевищує ваш мінімум і ціна підходить
https://x.com/0xSurferX/status/2078620667272896555
Ваші стопи прості та механічні.
Закрийте, якщо ціна впала на встановлений відсоток від входу.
Закрийте, якщо прогноз відійшов досить далеко від вашого кошика, що теза мертва.
Між повними скануваннями запускайте легкий прохід кожні кілька хвилин лише для моніторингу стопів, без повторного сканування кожного міста.
І логуйте абсолютно все.
Кожен знімок прогнозу, кожну ринкову ціну, яку ви бачили, кожну угоду, кожне вирішення.
Один файл на ринок, що доповнюється з часом.
Цей лог — не марна робота.
Це сировина для останнього кроку, який перетворює статичного бота на того, хто стає розумнішим щотижня.
8. Дайте йому відкалібруватися та стати розумнішим
Ось що відрізняє бота, який вгадує, від того, хто ЗНАЄ.
У перший день ваш бот не має реального уявлення про точність своїх прогнозів для кожного міста.
Тому він ще не повинен повністю довіряти собі.
Він повинен торгувати мало, логувати кожне вирішення і чекати.
Коли він набере достатньо вирішених ринків для міста, приблизно 30, він зможе виміряти свою справжню помилку.
Ви берете кожен прогноз, який зробили для цього міста, порівнюєте з тим, що сталося насправді, і обчислюєте середнє відхилення.
Ця середня помилка стає вашою сигмою, вашою реальною впевненістю для цього конкретного міста та джерела.
І ця сигма живить безпосередньо крок четвертий.
Краща сигма означає більш чесний розподіл ймовірностей по кошиках, що означає краще виявлення переваги, що означає кращий розмір ставки.
Бот буквально вдосконалює себе, збираючи більше вирішених ринків.
Це та сама дисципліна, яку я проповідую для кожного бота, якого будую:
Логуйте все, спочатку ризикуйте мало
Дозвольте реальним вирішеним результатам виміряти вашу справжню точність
Збільшуйте розмір лише тоді, коли дані довели перевагу
Погодний бот, який довіряє собі на 90% у перший день, — це та сама катастрофа, що й крипто-бот, запущений на 10 000% бектесті.
Обидва довірилися числу, яке ніколи не заслужили.
Ви не хочете бачити щось подібне, повірте мені:

Рухаємося далі.
9. Збираємо все разом
Тепер давайте підіб'ємо підсумки.
**
Крок назад і подивіться на те, що ви створили:**
Знайдіть чисті ринки, прив'язані до точної станції вирішення
Отримайте три джерела прогнозів для цієї станції
Виправте відомий зсув кожної моделі
Перетворіть виправлений прогноз на ймовірності кошиків, використовуючи вашу реальну помилку
Торгуйте лише тоді, коли перевага перевищує 8%
Визначайте розмір за допомогою дробового Келлі та жорсткого обмеження
Виконуйте, зупиняйтеся, логуйте та калібруйте, поки він не відшліфує себе сам
Для початку не потрібна нейронна мережа, дата-центр або спільні сервери.
Лише безкоштовні прогнози, чесна математика та терпіння дозволити йому довести себе на реальних вирішеннях.
Залиште його працювати на два-три тижні, перш ніж судити, бо ринки погоди вирішуються щодня, і вам потрібно 50-100 вирішених угод, щоб зрозуміти, що ви маєте.
Я створив 200+ ботів, і саме ця форма насправді приносить гроші, поки хитромудрі речі залишаються незавершеними.
Простий пайплайн, чесне калібрування, нудна дисципліна.
Це насправді все, що вам потрібно.
Погода — останній чесний ринок на Polymarket.
Побудуйте шість кроків цими вихідними, дайте йому відкалібруватися та увійдіть, поки натовп не прокинувся.
Повний розбір кроку корекції зсуву вийде наступним, не пропустіть.
Частина 2 вийде в середу.
Також приєднуйтесь до мого маленького телеграм-каналу, якщо хочете зв'язатися.
Приєднатися тут: https://t.me/+jCBHygDAJa9hMTJk

Тут ми будуємо разом, обговорюємо та виправляємо проблеми.
Сподіваюся, ви знайшли цю статтю корисною, бо в цьому вся суть.
Бажаю удачі!





