Стратегии
Carry-стратегия с нейтральной дельтой на разнице ставок финансирования бессрочных контрактов между площадками (SHORT площадка с более высокой ставкой финансирования / LONG площадка с более низкой ставкой для 5 HYPERLIQUID<->BINANCE USD-M пар бессрочных контрактов на альткоины: AVAX, SOL, DOGE, SUI, INJ; дневные бары, минимальное удержание 5 дней, стоп при резком расширении базиса, 3 параметров)
Итог: Отменено
CrossVenueFundingDifferentialCarryNeutralBasket
Проверка бэктеста: - метрики ненадёжны: несогласованность: знак Sharpe 0.01 расходится со знаком total_return -1.77% — коэффициент Sharpe рассчитан по ряду mtm_equity_curve, а доходность — по кривой капитала. Оценивай…
Гипотеза
coding_stuck_3_timeouts
Реализация
Результаты верификации
sandbox_timeout: проверка не пройдена (Layer 3 — бэктест в песочнице): smoke test превысил лимит времени 300с на окне примерно в 20000 баров (2400 дней по AVAXUSDT.BINANCE-1-DAY-LAST-EXTERNAL). Почти всегда причина — работа на каждом баре, объём которой растёт вместе с историей, например повторное сканирование всего ряда ставок финансирования/дополнительных данных или создание списка с вызовом min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Предварительно вычисли отсортированные массивы временных меток ONCE в __init__ и используй bisect или кэшируй запросы по временной метке, чтобы стоимость обработки бара была O(log n), а не O(n).
Укажи срок в гипотезе или добавь min_hold_days в _param_bounds.
В предварительно зарегистрированной гипотезе указано минимальное удержание 5 дней; код использует FROZEN min_hold_days = 14.0 (увеличено с 10 до 14 в итерации 3), вне настраиваемого набора параметров.
Применяй резервный вариант только при наличии маркера верификации; иначе оставь пару FLAT, как обещает docstring.
Резервный переход к ряду ставок финансирования, привязанному к основной площадке, если funding_rates_by_instrument отсутствует, приводит к тому, что все пять монет используют одни и те же два ряда, искусственно создавая разницу = 21x одной ставки. Предназначено только для Layer-2, но не ограничено этим случаем.
Раздели на capital_frac * плечо.
_max_pairs = max_gross_frac / capital_frac не учитывает плечо: фактический валовой объём на каждой площадке составляет 1.0x капитала при настройках по умолчанию (1.5x на границе 0.15), а не заявленные 0.85x. Дельта нейтральна, поэтому важна точность, а не риск резкого убытка.
Добавь для каждой пары защиту closing_ts, по аналогии с _entry_order_inflight.
Ордеры на выход выставляются повторно на каждом баре, пока закрытие reduce-only ещё исполняется (entry_ts очищен, затем привязан заново к ts_opened).
Обрабатывай стопы в on_extra_bar() или сузь набор синхронизации.
Все десять дневных ног входят в барьер синхронизации, поэтому один пропущенный бар отменяет вызов _manage() для корзины WHOLE в этот день, включая стоп при резком расширении базиса 1.5%.
Анализ
Проверка бэктеста: - метрики ненадёжны: несогласованность: знак Sharpe 0.01 расходится со знаком total_return -1.77% — коэффициент Sharpe рассчитан по ряду mtm_equity_curve, а доходность — по кривой капитала. Оценивай по кривой капитала.
Обзор бэктеста
- Шарп
- 0,01
- Общая доходность
- -1,77%
- Максимальная просадка
- 5,60%
- Всего сделок
- 186
- Доля прибыльных
- 52,2%
- Профит-фактор
- 1,17
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.