Разработка алгоритма Martingale/Anti-Martingale

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Разработка алгоритма Martingale/Anti-Martingale
Средний
~3-5 дней
Часто задаваемые вопросы

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

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    902
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1122
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    859

Разработка алгоритма Martingale/Anti-Martingale

Martingale и Anti-Martingale — две противоположные системы управления размером позиции на основе предыдущего результата. Martingale удваивает ставку после убытка. Anti-Martingale — после прибыли. Оба имеют математические обоснования и серьёзные практические ограничения.

Классический Martingale

Логика: после убытка удваиваем размер следующей позиции. При первом выигрыше возмещаем все предыдущие убытки плюс получаем базовую прибыль.

Сделка 1: $100 → убыток -$100
Сделка 2: $200 → убыток -$200
Сделка 3: $400 → убыток -$400
Сделка 4: $800 → прибыль +$800
Итого: -100 -200 -400 + 800 = +$100

Математическая проблема: серия убытков растёт экспоненциально. После 10 убытков подряд: $100 × 2^10 = $102,400. Это либо превышает депозит, либо достигает лимита биржи.

Реализация в крипто-торговле:

class MartingaleStrategy:
    def __init__(self, base_qty, multiplier=2.0, max_orders=6):
        self.base_qty = base_qty
        self.multiplier = multiplier
        self.max_orders = max_orders
        self.current_level = 0
        self.total_invested = 0
    
    def get_next_qty(self, last_result):
        if last_result == 'loss':
            self.current_level = min(self.current_level + 1, self.max_orders)
        else:
            self.current_level = 0
        
        return self.base_qty * (self.multiplier ** self.current_level)
    
    def get_break_even_price(self, entries):
        """Цена безубытка для текущей накопленной позиции"""
        total_value = sum(qty * price for qty, price in entries)
        total_qty = sum(qty for qty, price in entries)
        return total_value / total_qty if total_qty > 0 else 0

Ограниченный Martingale: максимальное количество удвоений = 4–6. После достижения лимита — фиксируем убыток и начинаем заново с базового размера. Это превращает математически опасную систему в управляемую.

Anti-Martingale (Reverse Martingale)

Логика: увеличиваем размер после прибыли, уменьшаем после убытка. Позволяет агрессивно использовать «полосы удачи» при удержании риска.

Применение в тренде: при серии прибыльных сделок в тренде — pyramid в направлении тренда. Логика turtle traders.

class AntiMartingaleStrategy:
    def __init__(self, base_qty, multiplier=1.5, win_streak_limit=4):
        self.base_qty = base_qty
        self.multiplier = multiplier
        self.win_streak = 0
        self.win_streak_limit = win_streak_limit
    
    def get_next_qty(self, last_result):
        if last_result == 'win':
            self.win_streak = min(self.win_streak + 1, self.win_streak_limit)
        else:
            self.win_streak = 0
        
        return self.base_qty * (self.multiplier ** self.win_streak)

Profit lock: при достижении streak limit N — фиксируем прибыль и возвращаемся к базовому размеру. Не даём «отдать» накопленное.

Где применяется в крипто-торговле

DCA-Martingale боты (популярный паттерн): при падении цены увеличиваем размер следующей покупки. Цель — снизить среднюю цену входа. Практически все «3Commas DCA боты» работают на этом принципе.

Ключевые параметры DCA-Martingale бота:

  • Base order size: $100
  • Safety orders: 6 (максимум уровней)
  • Price deviation: 2% (шаг вниз для следующей покупки)
  • Safety order multiplier: 1.5× (Anti-Martingale по объёму)
  • Take profit: 1.5%

Risk/Reward analysis

Параметр Martingale Anti-Martingale
Риск при серии убытков Экспоненциальный Линейный
Максимальный убыток Может уничтожить депозит Ограничен base_qty × N
Прибыль при тренде Низкая Высокая
Подходит для Боковой рынок Трендовый рынок

Железное правило Martingale: никогда без ограничения количества уровней. Неограниченный Martingale — это не стратегия, это рулетка на кредитные деньги.

Разрабатываем обе стратегии с configurable параметрами, risk limits, визуализацией позиций и P&L, backtesting модулем для оценки на исторических данных.