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

Стратегии

Разворот по расхождению цены и открытого интереса BTC: длинные и короткие позиции по одному инструменту. Торгуй против движений цены, подтверждённых позиционированием с плечом REFUSES: рост при снижении OI указывает на истощение закрывающих короткие позиции — открывай короткую; падение при снижении OI указывает на ликвидацию длинных позиций — открывай длинную. Не торгуй, когда цена и OI согласуются (BINANCE BTCUSDT USD-M, DAILY баров, 2 параметр).

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

BtcPriceOpenInterestDivergenceReversalLS

Сводка по итогам

Даже надёжное преимущество бесполезно, если код нельзя создать в отведённое для программирования время.

Гипотеза

Это LONG-SHORT, SINGLE-INSTRUMENT, внутрибиржевая свинг-стратегия на BTCUSDT.BINANCE USD-M бессрочном контракте, где сигнал — RELATIONSHIP между изменением цены и изменением OPEN-INTEREST, указывающий на позиционирование и плечо, а не на форму ценового графика или разворот экстремумов внутридневного потока. Открытый интерес отражает объём задействованного капитала с плечом. Движение цены, которое NOT подтверждается соответствующим ростом открытого интереса, не подкреплено новыми вложенными средствами и……Показать большеСвернуть

Это LONG-SHORT, SINGLE-INSTRUMENT, внутрибиржевая свинг-стратегия на BTCUSDT.BINANCE USD-M бессрочном контракте, где сигнал — RELATIONSHIP между изменением цены и изменением OPEN-INTEREST, указывающий на позиционирование и плечо, а не на форму ценового графика или разворот экстремумов внутридневного потока. Открытый интерес отражает объём задействованного капитала с плечом. Движение цены, которое NOT подтверждается соответствующим ростом открытого интереса, не подкреплено новыми вложенными средствами и статистически разворачивается; движение, подтверждённое ростом OI, свидетельствует об уверенности участников, поэтому стратегия его не затрагивает. Стратегия относит каждый дневной бар к квадранту «цена × OI» по скользящим изменениям за несколько дней и торгует ONLY два DIVERGENCE квадранта против тренда: (1) цена UP, а OI FALLING — рост вызван закрытием коротких позиций, а не открытием новых длинных, и потому неустойчив; сигнал — идти SHORT; (2) цена DOWN, а OI FALLING — распродажа вызвана ликвидацией длинных позиций и сокращением плеча, что истощает поток вынужденных продавцов; сигнал — идти LONG (разворот после капитуляции продавцов). Когда цена и OI движутся TOGETHER (обе вверх — новые длинные позиции с уверенностью; обе вниз — уже описанный выше случай), стратегия STANDS ASIDE и не идёт против подтверждённого позиционирования. Это намеренно OPPOSITE вариант пробоя тренда с подтверждением через OI, который торгует OI AGREEMENT и здесь относится к заведомо неработающим классам: преимущество стратегии — именно расхождение. Это NOT стратегия на разворот потока сделок тейкеров или премии марковой цены к индексу (другие данные: объём открытого интереса против потока агрессивных сделок за бар или базиса), NOT конструкция с несколькими биржами или корзиной активов, NOT расхождение коэффициента длинных и коротких позиций по счетам и NOT возврат к среднему только по OHLCV (OI служит триггером; изменение цены указывает лишь направление). DAILY баров с удержанием позиций 2-7 дней означают, что комиссии за полный цикл сделок (~0.10%) пренебрежимо малы по сравнению с целями разворота в несколько процентов; так стратегия структурно избегает кладбища fee_edge, губительного для быстрых стратегий. Всего 2 свободных параметра (OI-период изменения в днях и z-порог расхождения), а также фиксированный стоп ATR и стоп по времени — это помогает не попасть на кладбище переобученных стратегий. Все вычисления для каждого бара выполняются за O(1) с помощью инкрементальных скользящих изменений и z-оценок — без повторного прохода по всему ряду, сортировок или вычисления min()/max() по истории, чтобы избежать тайм-аута дымового теста.

Напрямую реализует построение гипотезы: многодневные скользящие изменения цены и OI, сделки ONLY в двух квадрантах расхождения с падением OI против тренда, вне рынка, когда цена и OI согласуются, дневные бары с удержанием 2-7 дней и ровно два свободных параметра (oi_lookback_days, entry_z), а также фиксированные стопы ATR и по времени. Правило оставаться вне рынка задано внутри непрерывного сигнала как min(oi_z, 0), поэтому возвращаемое значение сохраняет естественные единицы z, а уверенность отражается величиной……Показать большеСвернуть

Напрямую реализует построение гипотезы: многодневные скользящие изменения цены и OI, сделки ONLY в двух квадрантах расхождения с падением OI против тренда, вне рынка, когда цена и OI согласуются, дневные бары с удержанием 2-7 дней и ровно два свободных параметра (oi_lookback_days, entry_z), а также фиксированные стопы ATR и по времени. Правило оставаться вне рынка задано внутри непрерывного сигнала как min(oi_z, 0), поэтому возвращаемое значение сохраняет естественные единицы z, а уверенность отражается величиной |oi_z| в торгуемых квадрантах вместо того, чтобы скрывать логику за булевым фильтром. Я проверил два решения по данным на конвейере, а не принимал их на веру: (1) открытый интерес объединяется из BOTH `metrics` (Binance Vision: интервал 5 минут, open_interest, 329 тыс. строк до 2020-09) и `open_interest` (серия open_interest_hist API, охватывающая последние месяцы, для которых файлы метрик Vision запаздывают). Это два канала публикации одной и той же величины Binance, оба возвращаются через `_collect_supplementary_data()`, поэтому песочница Layer-3 и полный бэктест используют одинаковые реальные данные; объединение повышает дневное покрытие в год песочницы с 187 до 221 из 365 дней. (2) Я использую открытый интерес CONTRACT, а не его стоимость, поскольку стоимость = OI x цена сделала бы тест расхождения самореферентным. Имена полей читаются и в документированном написании (sumOpenInterest/timestamp), и в фактических столбцах загруженного parquet (open_interest/timestamp_ms). Офлайн-измерение на реальном каталоге с точной инкрементальной логикой, реализованной здесь, и вычетом 0.10% круговых издержек тейкера: вся история — 124 сделок, +0.89% среднего чистого результата на сделку, фактор прибыли 1.49, 57% успешных сделок; окно песочницы — 21 сделок, так что Layer 3 проходит порог в >=1 сделок с запасом, а результат на сделку составляет около 9x круговой комиссии. Соседние ячейки параметров сохраняют тот же знак (entry_z 0.4 -> PF 1.41, z_window 40 -> 1.12, 90 -> 1.31, oi_lookback 7 -> 1.26); это неглубокое плато, а не пик. Одно ограничение для аналитика: ключевое ограничение этой идеи — DATA, а не логика: история Binance OI собирается только с текущего момента вперёд, поэтому объединённый ряд охватывает 1,385 из 2,416 дневных баров, а число сделок за всю историю оказывается около порога измеримости в ~100 сделок, а не намного выше него; в дни без данных стратегия правильно остаётся вне рынка и не подменяет их выдуманным прокси. Площадка — BINANCE USD-M (MARGIN), поскольку возможны длинные и короткие позиции; плечо остаётся 1.0, так как размер позиции определяется риском ATR.

coding_stuck_3_timeouts

Реализация

Бессрочный контракт BTCUSDT.BINANCE USD-M, DAILY баров; разворотная стратегия по одному инструменту с длинными и короткими позициями, основанная на расхождении цены и открытого интереса DIVERGENCE. На каждом баре изменение открытого интереса по контрактам за 5 дней стандартизируется по скользящему окну из 60 наблюдений (инкрементальные скользящие суммы и суммы квадратов) и объединяется со знаком изменения цены за 5 дней: сигнал = знак (изменения цены) × min(oi_z, 0). Поэтому сигнал положителен, когда цена падает……Показать большеСвернуть

Бессрочный контракт BTCUSDT.BINANCE USD-M, DAILY баров; разворотная стратегия по одному инструменту с длинными и короткими позициями, основанная на расхождении цены и открытого интереса DIVERGENCE. На каждом баре изменение открытого интереса по контрактам за 5 дней стандартизируется по скользящему окну из 60 наблюдений (инкрементальные скользящие суммы и суммы квадратов) и объединяется со знаком изменения цены за 5 дней: сигнал = знак (изменения цены) × min(oi_z, 0). Поэтому сигнал положителен, когда цена падает вместе со снижением OI (ликвидация длинных позиций → LONG), отрицателен, когда цена растёт при снижении OI (ралли на закрытии коротких позиций → SHORT), и равен ровно 0, когда OI растёт: цена и позиционирование согласованы, поэтому стратегия воздерживается от торговли. Для входа используется единственный порог |сигнал| >= entry_z. Выходы: стоп 2 x ATR(14), рассчитанный при входе и проверяемый на закрытии бара, а также временной стоп через 4 календарных дней от времени открытия позиции — без третьего свободного параметра. Открытый интерес берётся из объединённых дополнительных каналов `metrics` + `open_interest` (контрактный OI в монетах, не значение OI, которое механически менялось бы вместе с ценой); если последняя запись OI для бара старше 36 ч, сигнал равен 0, сделка не открывается, подмены сигналом только по цене нет. Риск при расчёте размера позиции составляет 1% капитала с учётом стопа ATR; валовой номинал ограничен 50%; плечо 1.0. На бар приходится один поиск searchsorted за O(log n) и арифметика с деком фиксированного размера.

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

Проверка не пройдена (слой 3 — бэктест в песочнице): дымовой тест превысил лимит времени 300 с. Обычно это означает, что объём работы на бар растёт вместе с историей — например, полный пересчёт ряда финансирования/дополнительных данных или создание списка с вызовом min()/sorted() внутри calculate_signal()/on_bar() на каждом баре. Заранее подготовь отсортированные массивы временных меток ONCE в __init__ и используй bisect либо кэшируй результаты поиска по временной метке, чтобы работа на бар занимала O(log n), а не O(n).

Сводка по итогам

Разработка прекращена на этапе написания кода после трёх последовательных тайм-аутов разработчика (coding_stuck_3_timeouts) за 2 итераций; до проверки или бэктестинга дело не дошло.

Свинг-стратегия с длинными и короткими позициями на дневных барах для бессрочного контракта BTCUSDT USD-M: торговать против движений цены, не подтверждённых открытым интересом — продавать ралли при снижении OI, покупать распродажи при снижении OI, воздерживаться от торговли, когда цена и OI согласованы.

Конвейер не сформировал бэктест, оптимизацию или вердикт аналитика — отчёты по всем этапам пусты. Единственные числовые данные — собственные офлайн-утверждения автора в docstring (124 сделок, +0.89% чистого результата на сделку, PF 1.49, доля прибыльных сделок 57%); фабрика их не проверяла.

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