Розробка алгоритму Martingale/Anti-Martingale для криптотрейдингу

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

Чому martingale алгоритм ламається на живому ринку

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

Обсяг наступної угоди зростає як 2ⁿ, і на восьмому-десятому кроці потрібна маржа в десятки разів перевищує стартову — усереднення позиції проти тренду впирається не у ймовірність розвороту, а в розмір рахунку й плече, яке брокер дасть саме сьогодні.

Аргумент, який сформулював Насім Талеб, працює тут буквально: збиток, що обнуляє рахунок, наступним кроком не компенсується — розорення незворотне.

Друга точка відмови — відсутність стоп-умови: в алгоритмі не закладено ні ліміту на кількість кроків, ні стелі просідання стратегії, ні паузи після низки невдалих входів.

Тому на питання «чому зливається мартингейл» відповідає не ринок, а серія угод без ліміту, у якої немає умови виходу.

Третя причина — виконання.

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

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

Що дає керована логіка усереднення позиції

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

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

Жорсткі ліміти замість надії на розворот

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

Ліміт на серію угод обриває усереднення на заданому кроці — замість очікування розвороту робот фіксує збиток серії й починає новий розрахунок.

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

Робот повертається до роботи за секунди й продовжує серію зі збереженого кроку, а не відкриває її заново.

Прозора звітність по кожній серії

По кожній серії ведеться запис: номер кроку, обсяг, ціна входу, накопичений результат і причина виходу — ліміт, ціль або ручна зупинка.

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

Порівняння режимів: мартингейл, антимартингейл, комбінований

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

Режим Коли підходить Обмеження
Класичний мартингейл Боковик, спокійна волатильність, інструмент із чіткими рівнями Обсяг доливання зростає за подвоєнням: потрібен запас коштів і жорсткий ліміт кількості кроків
Антимартингейл Тренд, пробій діапазону, стійкий імпульс На розворотах накопичуються короткі серії збитків, прибуток зрізають фільтри входу
Гібрид із перемиканням Зміна ринкових станів усередині сесії Складніше тестувати: потрібна модель зміни стану й перевірка на шві переходу
Ручний режим Налагодження, нестандартний інструмент, перевірка ідеї Автоматики немає — вхід і усереднення повністю на операторі

Як вибрати режим під ваш інструмент

Питання «мартингейл чи антимартингейл» ми вирішуємо не за смаком, а за історичним рядом інструмента. Рахуємо розподіл серій збиткових угод, їхню максимальну довжину й глибину просідання за різних параметрів, а сигнали беремо із зовнішнього джерела (TradingView або потік біржі).

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

Гібридна стратегія усереднення виправдана там, де стан ринку змінюється всередині торгового дня і жоден із крайніх підходів не тримає просідання.

Перемикання режимів без пересилання коду

Режим — це набір параметрів: крок усереднення, множник обсягу, максимальна кількість доливань, поріг волатильності для зміни.

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

Логіка усереднення залишається незмінною, змінюється лише її налаштування — так виключаються помилки ручного копіювання коду.

Як ми збираємо martingale алгоритм: етапи роботи

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

Тому етапи впровадження торгового робота вибудовуємо так, щоб кожне правило було зафіксовано до реалізації й перевірялося окремо.

Формалізація правил до першого рядка коду

  1. Аудит поточної логіки. За журналами угод відновлюємо, де ручні рішення розходилися із задуманим і на яких ділянках серія усереднення йшла в глибоке просідання.
  2. Правила входу й виходу. Умови старту серії, інтервал свічок, розмір першої позиції, крок доливання й коефіцієнт зростання обсягу, закриття — за ціллю, за часом або за сигналом.
  3. Схема керування ризиком. Граничне просідання серії у відсотках від робочого капіталу, максимум кроків, пауза після смуги збитків і умова повної зупинки алгоритму.

Перевірка на даних і в тестовому режимі

  • Реалізація. Стратегія, ризик-модуль і шар виконання ордерів розведені за модулями, параметри винесені в конфігурацію — поведінка змінюється без правок коду.
  • Тестування стратегії на історії. Прогін з урахуванням комісій, затримок виконання й прослизання, окремо на тренді та в боковику, зі ковзною перевіркою на послідовних відрізках.
  • Перевірка в тестовому режимі. Запуск на живому потоці котирувань без виставлення ордерів: звіряємо сигнали й обсяги з історичним прогоном і ловимо розбіжності до виходу на реальний рахунок.
  • Передача алгоритму замовнику. Репозиторій, конфігурації, опис логіки, інструкція із запуску й відкату на попередню версію, далі — супровід за узгодженим регламентом.

Що входить у постачання: код, конфігурації, регламенти

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

  • Вихідний код торгового робота з коментарями: розрахунок обсягу наступної позиції в серії, виставлення й зняття заявок, обробка часткових виконань і обривів зв'язку.
  • Конфігурація параметрів ризику окремим файлом: базовий розмір позиції, множник і межа кількості ступенів, стоп на серію, ліміт сумарної експозиції, торгові вікна.
  • Політики доступу до API: ключі розділені за правами, виведення коштів закрито на боці біржі, налаштовані ротація ключів та обмеження за адресами й частотою запитів.
  • Схема взаємодії модулів: шлях даних від книги заявок до рішення про вхід і вихід, точки журналювання й метрики для спостереження.
  • Документація на алгоритм: логіка серій і умови скидання, поведінка за низької ліквідності, розширення спреду й прослизання.
  • Регламент аварійної зупинки: ознаки спрацювання, порядок зняття заявок і закриття позицій, фіксація інциденту й розбір причин.
  • Чек-лист приймання: прогін на історичних даних і на тестовому контурі біржі до виведення на робочий рахунок.

Документація, за якою зможе працювати інший інженер

Окремий розділ — інструкція з розгортання, лист параметрів із допустимими діапазонами й описом наслідків виходу за них, порядок відкату на попередню версію конфігурації.

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

Кейс: як переробка логіки змінила поведінку стратегії

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

Параметри кроку й множника правилися вручну через інтерфейс — кожна правка вимагала зупинки торгівлі, а обрив зв'язку залишав відкриту серію без супроводу.

Ціна такої логіки проявлялася рідко, але тяжко: просідання в трендових епізодах сягало 60–70% від піку рахунку, а простій після втрати зв'язку займав від 15 до 40 хвилин.

Робот працював із парами до долара на Binance, де розрив з'єднання — штатна ситуація, і кожна пауза означала некеровану позицію.

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

Стан робота пишеться в журнал, тому після обриву зв'язку він піднімає позиції за фактом виконаних угод — без закриття й перевідкриття. Підсумок — зниження просідання з 60–70% до 25–30% від піку рахунку й відновлення супроводу в межах хвилини.

Як ми рахували результат

Щоб результати впровадження робота не виглядали підгонкою, дві версії прогоняли на одному історичному відрізку в трьох режимах ринку: зростання, падіння, боковик. Обрив зв'язку імітували примусовим розривом на 10, 20 і 40 хвилин, виконання угод підставляли з реальними затримками.

Рахували просідання від піку рахунку, час відновлення супроводу й кількість ручних втручань на сотню угод.

Чим відрізняється мартингейл від антимартингейла на практиці

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

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

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

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

Антимартингейл дає часті дрібні збитки й рідкісні великі прибутки, і підсумок вирішує амплітуда спійманого руху.

У тренді антимартингейл нарощує позицію за напрямком руху й підтягує стоп за ціною — тренд стає джерелом основного результату.

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

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

Технічні сумніви: про що запитують перед стартом

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

Що робить алгоритм під час різкого руху ціни проти позиції?

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

Як обмежується ризик, крім розміру позиції?

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

Що відбувається при обриві зв'язку з біржею?

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

Чи можна перенести алгоритм на іншу біржу або інструмент?

Логіка виконання прив'язана до правил майданчика: типи заявок, крок ціни, ліміти, комісії. Змінюється шар адаптації, після чого стратегія прогоняється на історії нового інструмента.

Як перевіряється алгоритм до запуску на реальному капіталі?

Три кроки: прогін на історії з рідкісними різкими рухами, тестовий контур біржі, обмежений обсяг. Перехід далі — після збігу розрахункових і фактичних результатів.

Обговоримо задачу: з чого почати й що підготувати

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

Мінімальний набір для підготовки до обговорення:

  • Логіка входів і виходів — як рахується перший вхід, крок усереднення, множник, гранична кількість колін і правило виходу із серії.
  • Статистика угод — вивантаження за період: час входу й виходу, результат, максимальне просідання за серією.
  • Біржі та інструменти — де торгуємо, спот чи строковий ринок, робочі пари, обмеження за розміром позиції.
  • Чинні обмеження за ризиком — граничне просідання на день і на серію, ліміт на позицію, умови автоматичної зупинки.
  • Вимоги до звітності — що потрібно бачити: журнал угод, зведення за днями, оповіщення про збої та відхилення від плану.
  • Доступи й перевірочний контур — права на торговий рахунок, тестовий контур біржі, хто ухвалює рішення під час збою.

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

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142