Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Конструктор торговых стратегий и сигналов
Translation pending
FinanceTypeScript · CSSGitHub @mkrtchke01OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Конструктор торговых «трейдеров»: правила входа по RSI / MACD / EMA на любых таймфреймах, стоп/тейк по проценту цены или значению RSI, бэктест за неделю и месяц, сигналы в Telegram-каналы с карточками-скринами. Работает полностью бесплатно: Vercel (Hobby) + Supabase Postgres + cron-job.org.Read the full README ↗
Конструктор торговых «трейдеров»: правила входа по RSI / MACD / EMA на любых таймфреймах, стоп/тейк по проценту цены или значению RSI, бэктест за неделю и месяц, сигналы в Telegram-каналы с карточками-скринами. Работает полностью бесплатно: Vercel (Hobby) + Supabase Postgres + cron-job.org.
/api/cron/tick: проверяются открытые сигналы
(стоп/тейк) и правила входа у запущенных трейдеров.api.bybit.com, категория
linear) с фолбэком на зеркало api.bytick.com. Это та же биржа, под которую
посчитаны комиссии и плечо, поэтому цена в сигнале совпадает с ценой в терминале.
Регион функций Vercel — fra1 (Bybit блокирует US-IP).open-api.bingx.com. Биржа бота задаётся
в реестре (botRegistry.ts), сопровождение позиции ходит за минутными
свечами уже на неё./newbot → задай имя и username.123456:ABC-...).npx vercel из папки проекта).TELEGRAM_BOT_TOKEN — токен из BotFatherCRON_SECRET — любая случайная строка (например сгенерируй пароль)APP_PASSWORD — (необязательно) пароль на веб-интерфейсPOSTGRES_URL (и другие).Таблицы создадутся сами при первом открытии сайта.
Почему Supabase, а не Neon: у Neon Free лимит 100 compute-часов в месяц, а наш крон будит базу каждую минуту — лимит сгорит примерно за две трети месяца. У Supabase счётчика compute-часов нет. Neon при этом тоже поддерживается (переменная
DATABASE_URL) — код работает с любым Postgres.
Открой в браузере (подставь свой домен и секрет):
https://ТВОЙ-ПРОЕКТ.vercel.app/api/telegram/setup?secret=ТВОЙ_CRON_SECRET
Должно вернуть ok: true и имя бота. После этого добавь бота в свой канал/группу
администратором — канал зарегистрируется автоматически (смотри страницу «Каналы»).
Vercel Hobby умеет запускать кроны только раз в день, поэтому берём внешний:
https://ТВОЙ-ПРОЕКТ.vercel.app/api/cron/tick?secret=ТВОЙ_CRON_SECRETСтратегии в разделе Кастомные боты ищут точки входа сами, конструктор не нужен. Бот включается отдельно, ведёт свою историю и сигналит в те же Telegram-каналы.
🚀 Пробой по тренду — трендследящая модель на 4h:
Бэктест 2022-08…2026-08 на данных Bybit: динамическая вселенная (топ-30 по обороту
за сутки, пересчёт каждый день), максимум 3 позиции, комиссии Bybit + проскальзывание
5 б.п. + реальные ставки фандинга, риск $3 на сделку, сопровождение по 15m.
Позицию ведёт боевой track.ts:
368 сделок, +$245, профит-фактор 1.42, максимальная просадка $85. До TP1 доходят
46.2%, в плюс закрываются 47.3%, худшая серия убытков подряд — 17 сделок.
Средняя сделка живёт 10.7 дней, около 7.7 сделок в месяц.
По годам все в плюсе: 2022 +$16, 2023 +$111, 2024 +$34, 2025 +$44, 2026 +$41. Вторая половина периода сильнее первой (+$172 против +$73). Прибыльны 35 монет из 53, без лучшей монеты (SOL) итог остаётся +$199. Издержки съедают $51 из $296 движения цены.
Проверки, которые модель прошла: подавляющее большинство соседних комбинаций параметров прибыльны (преимущество на плато, а не в одной точке), результат держится при вчетверо больших издержках. Пять фильтров качества пробоя (сила закрытия, объём, запас пробоя, близость к EMA50, сжатие диапазона) проверены и отвергнуты — каждый снижал результат. Перенос стопа в безубыток после TP1 тоже проверен и отвергнут: он ничего не добавляет по деньгам и не улучшает просадку.
Оговорка по методике: пул кандидатов берётся из сегодняшнего топа по обороту, поэтому делистнутые монеты в истории отсутствуют, а состав пула слегка плавает между прогонами — разброс итога от этого около 7%.
⚡ Сила против BTC — импульсная модель на 15m, для сделок покороче. Преимущество не подтверждено, бот выключен по умолчанию — см. итог ниже.
Стратегия отобрана перебором 4160 комбинаций: из семи семейств входа выжили два, остальные (откат по RSI, возврат к средней, выход из сжатия, импульсная свеча, пробой диапазона сессии) убыточны при любых правилах выхода. Поисковый прогон показывал +$438 и профит-фактор 1.14 за четыре года.
Прогон этого же кода на истории эти цифры не подтвердил. Текущая конфигурация даёт за четыре года +$120 при профит-факторе 1.03 и просадке $175 — то есть по дороге бот проваливался глубже, чем заработал за весь период (итог/просадка 0.68 против 2.90 у пробойного). Средняя сделка +0.019R при том, что одни только издержки съедают 0.03–0.05R.
И главное: результат целиком определяется одним порогом — максимальной шириной стопа, — причём немонотонно. 8% → −$10, 10% → +$98, 15% → +$48, 20% → +$309, 22% → +$171, 25% → +$120, 30% → +$198, без порога → +$282. Параметр, который так качает четырёхлетний результат без всякого порядка, означает, что итог делают несколько удачных сделок, а не преимущество. Поисковый прогон измерял особенности своей обвязки (векторные индикаторы по всей истории, другая вселенная), а не свойство стратегии.
Дополнительные признаки хрупкости: портфель забит на 89–93% сканов и до 4700 сигналов отбрасывается из-за нехватки слотов, поэтому исход зависит от случайного порядка прихода сигналов; в поисковом прогоне прибыль давали лонги, в боевом — шорты. Независимой форвард-проверки не было.
Вывод: бота запускать не стоит, пока не найдено объяснение расхождения. Код оставлен в репозитории как результат исследования и выключен по умолчанию.
Пачки сделок (октябрь 2026). Без лимита на число позиций (так бот работал в
проде) одно движение BTC давало обгон сразу у многих альтов: до 24 сделок в одну
сторону, худший день −$56 при риске $3, просадка $639 за четыре года при итоге
+$222. Четыре правки и все их сочетания проверены в relstrength-batch-test.ts:
| вариант | итог | PF | просадка | худший день | макс. в одну сторону |
|---|---|---|---|---|---|
| без лимита (было) | +$222 | 1.01 | $639 | −$56 | 24 |
| обгон сверх беты | +$199 | 1.01 | $558 | −$62 | 24 |
| фильтр ширины рынка (≥3 сигнала в сторону — пропуск) | +$2 | 1.00 | $383 | −$30 | 13 |
| 1 новая за скан, ≤2 в одну сторону | +$251 | 1.07 | $138 | −$13 | 2 |
| хедж встречной позицией BTC на β | −$1611 | 0.87 | $1734 | −$137 | 24 |
| бета + лимиты (принято, боевой код) | +$238 | 1.06 | $120 | −$12 | 2 |
Хедж убыточен во всех сочетаниях: небольшой плюс стратегии шёл от того, что пачка угадывала сторону BTC, а не от силы отдельных монет, и вторая нога ещё платит комиссию. Лимиты не создают преимущества (около +0.04R на сделку), они убирают риск, когда исход решает одна пачка.
₿ Bitcoin intraday — разворот от уровня на BTCUSDT 15m. Преимущества на истории не показывает, бот выключен по умолчанию — см. итог ниже.
Пороги 68/32 вместо хрестоматийных 70/30 и допуск уровня 1×ATR — не подгонка, а результат разбора живых сделок трейдера: на этих значениях правило воспроизводит 9 из 10 подтверждённых им входов, на 70/30 и допуске 0.5 — только 6.
Прогон боевого кода за год (2025-08…2026-08, комиссии Bybit, риск $3, одна позиция): 708 сделок (58 в месяц), 34% по тейку, итог −$483, профит-фактор 0.65, просадка $493. Сделка живёт 1.3 часа, медианный стоп 0.32% от цены.
Итог раскладывается однозначно: движение цены +$84, комиссия −$567. То есть до издержек стратегия ровно в нуле (+0.040R на сделку), а весь минус — оплата биржи. Комиссия съедает 27% риска, потому что объём позиции = риск ÷ ширина стопа, и узкий стоп даёт большую позицию. Безубыточная комиссия здесь 0.0082% за сторону — в 6.7 раза ниже тейкерских 0.055%.
Что проверено и отвергнуто: трейлинг вместо тейка (12 схем — лучшая даёт ПФ 0.67, но выигрывает не заработком, а тем, что реже платит комиссию); фильтры по тренду EMA200, направлению, часу входа, глубине прокола и объёму — ни один не прибылен на обеих половинах истории. Устойчиво работают только ширина стопа и сила разворотной свечи, но их комбинация даёт ПФ 0.97/0.87 — безубыток, не прибыль.
Что помогает и подтверждается на обеих половинах: дальняя цель. Движение цены растёт +$47 на 1.5R → +$84 на 2R → +$155 на 3R (на 4R падает) — у сетапа тяжёлый правый хвост, и близкая цель его срезает. И старший таймфрейм: на 1h стоп шире (0.57%), комиссия съедает 19% риска вместо 27%, итог −$51 при ПФ 0.83 и 153 сделках. Но движение цены меняет знак между соседними ТФ (15m +0.040R, 30m −0.048R, 1h +0.076R, 2h −0.172R) — преимущество не на плато, а в одной точке, и это признак шума. Монотонна только доля комиссии, и это чистая механика: выше ТФ → шире стоп → меньше позиция.
📐 Пробой наклонки — пробой наклонного уровня на BingX, ТФ 5m / 15m / 1h. Единственный бот не на Bybit; исторической проверки нет, выключен по умолчанию.
Правила описаны трейдером и переложены в код один в один.
Почему вход именно в моменте, хотя остальные боты входят по закрытию свечи: цель здесь фиксированная — основание наклонки, — поэтому каждый процент, пройденный до входа, одновременно увеличивает стоп и уменьшает цель. На живом примере ARB 15m вход по границе даёт 3.7R, а по закрытию той же свечи — 1.4R, и правило «минимум 1:3» такой сигнал обязано пропустить. То есть вход по закрытию отрезал бы как раз сильные пробои. Плата за это — сигнал живёт недолго: если цена уже вернулась за границу, вход пропущен.
Разметку из разбора код воспроизводит: на ARB 15m (2026-09-02) он находит ту же линию с основанием 0.1198, вход у границы 0.1098, стоп 0.10734 — стоп совпал с ручной разметкой до пятого знака.
⚠️ Проверки на истории нет, и быстро её не сделать: BingX отдаёт около 1000 свечей
на запрос — это 3 дня на 5m и 10 дней на 15m. Разведочный прогон verify-trendline.ts
по 40 монетам за 8 дней: 19 сделок (3 по тейку, 16 по стопу), итог +$12, ПФ 1.22,
медианный стоп 1.1%, медианная цель 5.3R, сделка живёт 1.3 часа. Верить этому нельзя:
соседние значения порогов дают тот же счёт сделок и противоположный знак итога
(на 15m цель ≤14×ATR даёт +$20 и ПФ 1.61, а ≤12×ATR — −$3 и ПФ 0.90). Пороги поэтому
выбраны по смыслу правил, а не по этому прогону. Живой путь сканера проверяется
скриптом smoke-trendline.ts — он печатает, что бот увидел бы прямо сейчас.
Издержки BingX: тейкер 0.05%, мейкер 0.02% (в 1.4 раза дешевле Bybit по рынку). Круговая комиссия 0.1% объёма входит в риск $3, поэтому после издержек 1:3 превращается в (3·d − f)/(d + f): при стопе 1% это 2.6, при 0.5% — 2.3, при 0.3% — 2.0. Стопы уже 0.3% бот не берёт вовсе, а тейк стоит ставить лимиткой.
Деньги считаются как в реальной торговле на Bybit:
cp .env.example .env.local # заполни DATABASE_URL (можно взять из Neon) и остальное
npm install
npm run dev # http://localhost:3777
Тик руками: http://localhost:3777/api/cron/tick?secret=...