Перейти к содержимому
Все стратегии

Стратегии

LINK Spot: участие в тренде — покупка или вне позиции, без плеча. Удерживай спотовый актив, пока медленный режим тренда DAILY UP, переходи в CASH при сломе тренда. Непрерывное участие в режиме (NOT, а не покупка на редких глубоких просадках); захват восходящих трендов альткоинов с обходом медвежьих просадок (LINKUSDT.BINANCE_SPOT, дневные бары, 3 параметров)

Итог: Отменено

LinkSpotTrendParticipation

avg_trade_return_pct 6.12% с большим запасом покрывает минимальный уровень спотовых комиссий (проблемы с комиссиями нет)

Гипотеза

Стратегия участия в тренде SPOT с покупкой только длинной позиции, без плеча и одним инструментом LONG-ONLY: удерживает LINK, пока медленный дневной трендовый режим UP, и переходит в CASH, когда тренд ломается. Её намеренно направили на BINANCE_SPOT — площадку с наибольшей долей недопредставленности среди площадок с высокой выживаемостью (11.1% против квоты ≥15%); по правилу маршрутизации фабрики это подходящая площадка для стратегий только с длинными позициями и без плеча. Это SPOT, аналог фьючерсных стратегий……Показать большеСвернуть

Стратегия участия в тренде SPOT с покупкой только длинной позиции, без плеча и одним инструментом LONG-ONLY: удерживает LINK, пока медленный дневной трендовый режим UP, и переходит в CASH, когда тренд ломается. Её намеренно направили на BINANCE_SPOT — площадку с наибольшей долей недопредставленности среди площадок с высокой выживаемостью (11.1% против квоты ≥15%); по правилу маршрутизации фабрики это подходящая площадка для стратегий только с длинными позициями и без плеча. Это SPOT, аналог фьючерсных стратегий из нашего конвейера с позициями «покупка или вне позиции» (все они используют длинные позиции SHORT с плечом). Важно: это NOT не стратегия накопления на Binance Spot в периоды глубоких просадок. Та стратегия срабатывала только при глубоких просадках RARE и совершила ZERO сделок после 2023 (пустые окна walk-forward и отложенной выборки). Эта стратегия обеспечивает CONTINUOUS участие в режимах: она открывает длинную позицию при каждом восходящем тренде и выходит из рынка при каждом нисходящем на протяжении всех лет, поэтому торгует в каждом цикле режима и не может простаивать в последующем окне. Экономическая цель — улучшить доходность с поправкой на риск относительно стратегии «купи и держи»: поймать крупные восходящие тренды альткоинов (они намного сильнее затрат на полный спотовый цикл 0.20%) и избежать глубоких медвежьих просадок, ухудшающих коэффициент Шарпа стратегии «купи и держи». LINK — ликвидный актив с большой капитализацией и надёжной многолетней дневной историей SPOT, поэтому окна walk-forward и отложенная выборка за 15 дней будут заполнены. Параметры 3: длина тренда-SMA для входа, длина SMA для выхода и трейлинг-множитель ATR.

ITERATION 2 — точечное исправление сбоя Layer-2. Все шесть синтетических сценариев завершились ошибкой «TypeError: _roll() принимает 3 позиционных аргументов, получено 4»: прокси верификации повторно связывает функции класса стратегии, из-за чего снимается обёртка @staticmethod и общий вспомогательный метод скользящей суммы получал `self` как первый аргумент уже на первом баре. Этот вспомогательный метод был нужен только для удобства, поэтому я удалил его, а не преобразовал в метод экземпляра: без метода такой……Показать большеСвернуть

ITERATION 2 — точечное исправление сбоя Layer-2. Все шесть синтетических сценариев завершились ошибкой «TypeError: _roll() принимает 3 позиционных аргументов, получено 4»: прокси верификации повторно связывает функции класса стратегии, из-за чего снимается обёртка @staticmethod и общий вспомогательный метод скользящей суммы получал `self` как первый аргумент уже на первом баре. Этот вспомогательный метод был нужен только для удобства, поэтому я удалил его, а не преобразовал в метод экземпляра: без метода такой сбой больше не повторится. Его четыре строки теперь встроены в три места вызова (дек очереди истинного диапазона в _push_true_range, дек входа-SMA и выхода-SMA в calculate_signal); такой же подход используется в остальном коде. NOTHING ELSE CHANGED: импорты, сигнал, логика входа, выхода и размера позиции, конфигурация и границы параметров не изменились, поэтому статическая проверка Layer-1 по-прежнему проходит. Я повторно воспроизвёл работу отредактированного класса на реальной дневной истории LINKUSDT.BINANCE_SPOT длиной 2761 баров (0.10% на исполнение, выполнение на открытии следующего дня); стратегия полностью идентична версии итерации 1: 109 сделок, +4.73% в среднем за полный цикл, фактор прибыли 2.20, итог +786%, коэффициент Шарпа 0.44, максимальная просадка 88.2%; за последние 545 дней +0.09% на сделку (-2.8% всего) против стратегии «купи и держи» -55.6%; за последние 365 дней 18 сделок. Я также прогнал 200 полностью плоских баров (структура сценариев flat_ranging и zero_volume) через calculate_signal/should_enter/should_exit/position_size: исключений нет, ATR получает значение 0, сигнал возвращает 0.0, путь для вырожденного сценария работает штатно. Оговорки итерации -1 остаются без изменений и требуют решения аналитика: песочница Layer-3 охватывает последние 365 дней, за которые LINK упал на 55.7%, поэтому стратегия только с длинными позициями покажет там примерно -19% (треть потерь актива), несмотря на высокую положительную доходность полного бэктеста. Коэффициент Шарпа 0.44 при просадке >60% не позволяет пройти минимальные требования для продвижения: коэффициент Шарпа 1.5 и просадка 10%. Поэтому гипотезу следует оценивать относительно стратегии «купи и держи» (коэффициент Шарпа 0.21, просадка 90%) или отклонить при рассмотрении результатов бэктеста.

Окончательный отказ из-за просадки: max_drawdown 94.09% (с CI до 100%) намного превышает лимит 50% (L19) и не может пройти минимальный порог просадки для продвижения. Показатель +1901% обусловлен криптобетой (бета 0.73, benchmark_correlation 0.80), а не активным преимуществом: information_ratio отрицателен (-0.17), то есть результат с поправкой на риск хуже, чем у стратегии «купи и держи», а profit_factor 1.18 ниже порога 1.2 существенного преимущества. Коэффициент Шарпа — артефакт нескольких аномальных дней роста (эксцесс 184.9, асимметрия 11.3) и подбора размера позиции под кривую капитала (avg_position_pct 131%). Сама гипотеза признаёт, что стратегия следует за медвежьим движением 2022 вниз (2022 -78.4%) с заявленной просадкой 88%; оптимизация параметров 3 не исправит механизм, который структурно удерживает позицию в периоды глубокого падения. Это схема спотовой торговли только с длинными позициями, несущая просадку беты (L49); оптимизация в течение 2 часов нецелесообразна.

Реализация

Покупка или вне позиции, спотовая торговля по тренду без плеча на дневных барах LINKUSDT.BINANCE_SPOT. Сигнал — непрерывная оценка тренда: (close - SMA(entry_sma)) / ATR(14) — расстояние выше или ниже базового тренда в единицах дневной волатильности, рассчитываемое на каждом баре. Стратегия покупает актив на 98% остатка денежных средств, когда оценка становится положительной (close выше SMA(entry_sma)), и возвращается в 100% CASH, когда цена опускается ниже SMA(exit_sma) или отступает на atr_trail_mult x ATR от максимума после входа (трейлинг-стоп по методу «люстра»). Позиция открыта примерно в половине дней каждого года выборки — участие в режиме непрерывное, это не покупка на редких обвалах. Стратегия не открывает коротких позиций и не занимает средства, удерживая только актив или денежные средства; поэтому её направили на BINANCE_SPOT (счёт CASH, плечо 1.0). Сигнал формируется по дневному закрытию, исполнение — на открытии следующего дня. Три настраиваемых параметра: entry_sma, exit_sma, atr_trail_mult.

Результаты верификации

CLEAN RESTART 2026-09-04 — историю вердиктов и записи обучения этого запуска удалили, его перезапустили с этапа верификации. Прежний отказ был вызван конвейером, а не рынком: тестовая среда Layer-2 неверно связывала вспомогательные методы @staticmethod (исправлено), QA выносил окончательные вердикты о доходности по неоптимизированному дымовому тесту (удалено — теперь QA оценивает только корректность), а тайм-ауты песочницы были вызваны нехваткой слотов для бэктеста (исправлено). Гипотеза и код стратегии не изменились. Оцени код по существу; доходность будет определена позже полным бэктестом и оптимизатором.

Код не меняли; проверьте, что знаменатели капитала и стоимости позиции фиксируются одновременно.

Песочница avg_position_pct 108.8% на спотовом счёте CASH, где нельзя брать средства в долг, но position_size() ограничен величиной equity*invest_frac (<=0.99). Код не запрашивает плечо, поэтому это артефакт расчёта метрик по рыночной стоимости, а не превышение доступных средств. Отмечено для подтверждения аналитиком.

Устанавливайте _in_trade только после ненулевого размера позиции или сверяйте его с кэшем через positions_open() на каждом баре.

should_enter() устанавливает _in_trade=True до подтверждения исполнения заявки; если position_size() возвращает 0, флаг остаётся установленным. Базовые проверки входа и выхода опираются на фактическую позицию в кэше, поэтому затрагивается только отслеживание пика для трейлинг-стопа «люстра», которое самовосстанавливается. Не критично.

Обзор бэктеста

Шарп
1,29
Общая доходность
1901,23%
Максимальная просадка
94,09%
Всего сделок
120
Доля прибыльных
27,5%
Профит-фактор
1,18

avg_trade_return_pct 6.12% с большим запасом покрывает минимальный уровень спотовых комиссий (проблемы с комиссиями нет)

120 сделки проходят во все годы (механизм непрерывно срабатывает, как задумано; пустых окон нет)

Положительные альфа (0.085) и коэффициент Сортино, диагностика входов без замечаний (120 сигналов, 120 заявок, пропусков нет)

max_drawdown 94.09% с CI [99.68%, 100.0%] — основание для окончательного отказа (L19); пройти минимальный порог просадки для продвижения невозможно

profit_factor 1.18 ниже порога 1.2, при котором преимущество считается существенным

information_ratio -0.17: отрицательная доходность с поправкой на риск относительно стратегии «купи и держи»; бета 0.73 / корреляция 0.80 означают, что +1901% — это криптобета, а не мастерство (L49)

Коэффициент Шарпа зависит от выбросов — эксцесс 184.9, асимметрия 11.3, несколько аномальных дневных доходностей >100% и avg_position_pct 131% указывают на подбор размера позиции под кривую капитала, а не на устойчивое преимущество

2022 -78.4%, 2025 -13.5% — стратегия проходит медвежьи фазы вниз из-за неудачных повторных входов, как и признаёт гипотеза (88% заявленная самой стратегией DD)

История итераций

Верификация не пройдена (Layer 2 — синтетические сценарии): Использованы параметры: ['exit_sma', 'entry_sma', 'atr_period', 'invest_frac', 'min_notional', '_param_bounds', 'atr_trail_mult'] Проверьте, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: LinkSpotTrendParticipation._roll() принимает 3 позиционных аргументов, получено 4 (время бара: 1735692060000) - steady_downtrend: TypeError: LinkSpotTrendParticipation._roll() принимает 3 позиционных аргументов, получено 4 (время бара: 1735692060000) - flat_ranging: TypeError: LinkSpotTrendParticipation._roll() принимает 3 позиционных аргументов, получено 4 (время бара: 1735692060000) - volatility_spike: TypeError: LinkSpotTrendParticipation._roll() принимает 3 позиционных аргументов, получено 4 (время бара: 1735692060000) - zero_volume: TypeError: LinkSpotTrendParticipation._roll() принимает 3 позиционных аргументов, получено 4 (время бара: 1735692060000) - price_gap: TypeError: LinkSpotTrendParticipation._roll() принимает 3 позиционных аргументов, получено 4 (время бара: 1735692060000)

Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.