SOL USD-M Разворот при расхождении потока агрессивных ордеров тейкеров, лонг-шорт (бессрочный контракт BINANCE на одном инструменте, бары 1 ч + многолетний поток метрик объёма покупок/продаж тейкеров; торговля против ценовых экстремумов, не подтверждённых потоком ордеров REFUSES; 3 параметров)
Итог: Отменено
SolTakerFlowDivergenceReversalLS
Сводка по итогам
SolTakerFlowDivergenceReversalLS возродила идею торговли против движения на основе потока ордеров на более волатильном SOL, используя поток метрик объёма покупок и продаж тейкерскими ордерами, чтобы торговать против ценовых экстремумов на 1-часовом интервале, которые CVD не подтверждали. Фильтры намеренно смягчили, чтобы избежать провала из-за 16 сделок, погубившего родственную стратегию BtcSmartMoneyCrowdDivergence. Числа сделок хватило: с реальным потоком данных, не выводимых из цены, сработали 2,304 сигналов,……Показать большеСвернуть
SolTakerFlowDivergenceReversalLS возродила идею торговли против движения на основе потока ордеров на более волатильном SOL, используя поток метрик объёма покупок и продаж тейкерскими ордерами, чтобы торговать против ценовых экстремумов на 1-часовом интервале, которые CVD не подтверждали. Фильтры намеренно смягчили, чтобы избежать провала из-за 16 сделок, погубившего родственную стратегию BtcSmartMoneyCrowdDivergence. Числа сделок хватило: с реальным потоком данных, не выводимых из цены, сработали 2,304 сигналов, но подтвердилось лишь отсутствие преимущества у этой стратегии возврата к среднему: профит-фактор 0.769, -0.10% на сделку и отрицательный результат каждый год. Ситуацию усугубило то, что номинальный объём стратегии составлял около 2.4x при плече position_frac 0.5 ×: за месяц -1638% в 2023-05 (асимметрия доходности -11, эксцесс 487) счёт полностью ликвидировали на 2023-03-31. Рецензент отказался от неё как от фундаментально несостоятельной — убыточного представителя семейства мёртвых стратегий возврата к среднему для одного актива на потоке ордеров. Избыточное плечо гарантировало крах, и настройка могла лишь перенести его на другой срок.
LONG-SHORT, одноинструментальная, нативная для крипторынка ORDER-FLOW-стратегия на SOLUSDT.BINANCE (USD-M бессрочный контракт, бары по 1 ч), основанная на реальной зависимости от NON-PRICE данных, которую не использует ни одна действующая стратегия: поток метрик объёма покупок и продаж тейкеров Binance Futures VOLUME (собранный за несколько лет через BinanceVisionCollector «metrics» CSV). При закрытии каждого 1-часового бара я поддерживаю скользящую кумулятивную тейкерскую дельту CVD = сумма за последние L баров……Показать большеСвернуть
LONG-SHORT, одноинструментальная, нативная для крипторынка ORDER-FLOW-стратегия на SOLUSDT.BINANCE (USD-M бессрочный контракт, бары по 1 ч), основанная на реальной зависимости от NON-PRICE данных, которую не использует ни одна действующая стратегия: поток метрик объёма покупок и продаж тейкеров Binance Futures VOLUME (собранный за несколько лет через BinanceVisionCollector «metrics» CSV). При закрытии каждого 1-часового бара я поддерживаю скользящую кумулятивную тейкерскую дельту CVD = сумма за последние L баров (taker_buy_volume - taker_sell_volume). Торговая идея основана на потоке агрессивных ордеров DIVERGENCE: когда цена достигает локального экстремума, но поток агрессивных ордеров, который должен сопровождать настоящее движение, отсутствует или разворачивается, экстремум неустойчив, и цена возвращается. Это именно NOT чистая OHLCV (L30) — CVD представляет собой отдельный ряд, который нельзя вывести из цены; здесь нет NOT направления финансирования (L13), NOT кэрри (L28), NOT опционов (L29), NOT ликвидаций (L3), NOT корзины активов для кросс-секционного анализа (L12), NOT арбитража между площадками (L1) или NOT Hyperliquid (L11). Число параметров намеренно ограничено 3, чтобы избежать кладбища переобученных стратегий. Стратегия рассчитана примерно на 150-350 срабатываний за SOL истории, чтобы число сделок превысило минимальный уровень, необходимый для измеримости, и избежать провала из-за 16 сделок, который погубил недавнюю родственную стратегию BtcSmartMoneyCrowdDivergence с двухчастным условием на основе POSITIONING топ-трейдеров; здесь условия для потока агрессивных ордеров VOLUME мягче, а инструмент волатильнее.
ITERATION 2 — минимальное изменение, устраняющее зарегистрированный сбой Layer-2; логика сигнала не затронута. Сбой вызвал TypeError: прокси верификации вызвала статический метод класса `_bar_ts` BOUND (передав self), поэтому он получил 2 позиционных аргументов. Исправление: помощник временных меток OUT класса перенесён в функцию уровня модуля `_bar_ts_of(bar)` (которую прокси не может связать с экземпляром), обновлено единственное место вызова; `@staticmethod _bar_ts` устранена. Другой код, импорты, параметры и……Показать большеСвернуть
ITERATION 2 — минимальное изменение, устраняющее зарегистрированный сбой Layer-2; логика сигнала не затронута. Сбой вызвал TypeError: прокси верификации вызвала статический метод класса `_bar_ts` BOUND (передав self), поэтому он получил 2 позиционных аргументов. Исправление: помощник временных меток OUT класса перенесён в функцию уровня модуля `_bar_ts_of(bar)` (которую прокси не может связать с экземпляром), обновлено единственное место вызова; `@staticmethod _bar_ts` устранена. Другой код, импорты, параметры и логика сигнала не менялись, поэтому Layer 1 остаётся успешным, а остальная часть Layer 2 теперь выполняется. (Это известная проблема привязки прокси для статических методов, затеняющих методы базового класса.) Всё остальное осталось как задумано: настоящая криптонативная стратегия ORDER-FLOW на зависимости NON-PRICE (соотношение объёмов покупок/продаж тейкеров Binance, «metrics»), для одного инструмента (SOL основной), поэтому поток загружается без ошибок как основная доп. серия; для каждого 1-часового бара соотношение тейкеров на момент закрытия (поиск searchsorted O(log n), с защитой от тайм-аута) даёт дисбаланс агрессоров, масштабируемый объёмом бара в чистую дельту тейкеров за бар; её сумма за cvd_window стандартизируется в z-оценку потока; расхождение price_z - flow_z (непрерывное) торгует против ценовых экстремумов, которые поток агрессоров не подтверждает. NOT чисто OHLCV / финансирование / керри / опционы / ликвидации / поперечный анализ / арбитраж между площадками / Hyperliquid. 3 основных параметров — для защиты от переобучения; entry_z 1.5 и единственный порог расхождения на высоковолатильном инструменте с многолетней историей 1ч SOL рассчитаны на превышение минимального порога измеримости. USD-M фьючерсы (лонг-шорт и поток тейкеров доступны только на бессрочных контрактах); плечо 2.0 встроено в расчёт размера позиции (equity*position_frac*leverage/price, position_frac 0.5 → номинал ~1x) со стопом 3%, ограничивающим риск на сделку примерно до 3% капитала. Если поток metrics недоступен, flow_z нельзя рассчитать, и стратегия просто не торгует (резерва на основе одних цен нет — преимущество в расхождении потоков). SOLUSDT имеет глубокую историю и высокую ликвидность, а также многолетний поток metrics (без data_unavailable).
Полная ликвидация счёта на 2023-03-31: total_return -100%, max_drawdown 100%, после этого активности нет. На большой выборке преимущество определённо отрицательное — profit_factor 0.769, avg_trade_return_pct -0.10%, математическое ожидание -$52 за 2,304 сделок, коэффициент Шарпа -0.59, PSR 0.026, результат отрицательный в каждом году (2021 -23%, 2022 -75%, 2023 -184%). Два усугубляющих провала: (1) сигнал — игра против ценовых экстремумов за SOL 1ч, которым поток сделок тейкеров CVD не даёт подтверждения, —……Показать большеСвернуть
Полная ликвидация счёта на 2023-03-31: total_return -100%, max_drawdown 100%, после этого активности нет. На большой выборке преимущество определённо отрицательное — profit_factor 0.769, avg_trade_return_pct -0.10%, математическое ожидание -$52 за 2,304 сделок, коэффициент Шарпа -0.59, PSR 0.026, результат отрицательный в каждом году (2021 -23%, 2022 -75%, 2023 -184%). Два усугубляющих провала: (1) сигнал — игра против ценовых экстремумов за SOL 1ч, которым поток сделок тейкеров CVD не даёт подтверждения, — относится к потоку ордеров по одному инструменту REVERSION, к семейству контртрендовых стратегий, которое в этой сессии однозначно показало себя несостоятельным (родственная стратегия на потоке тейкеров провалилась на -0.025%, а в собственной директиве руководителя исследований все горизонты потока ордеров названы убыточными после комиссий); (2) размер позиции опасно велик из-за чрезмерного плеча — avg_position_pct 236% (position_frac 0.5, умноженные на плечо) запустили контртрендовую стратегию по одному инструменту с номиналом около 2.4x, что привело к катастрофическому краху (2023-05 -1638% за месяц, отдельные дни -684%/-242%, return_skew -11, эксцесс 487) и ликвидации счёта. Поток метрик тейкеров доступен (сработало 2,304 сигналов), поэтому это настоящий вердикт по стратегии, а не артефакт данных: гипотеза устранила проблему невозможности измерений на 16 сделках у родственной стратегии BtcSmartMoneyCrowdDivergence, но лишь подтвердила отсутствие преимущества у контртрендовой стратегии, которая затем обанкротилась и ликвидировала счёт. Оптимизация cvd_window/entry_z/div_thresh не исправит стратегию, приведшую к ликвидации счёта, с PF-0.77 и отрицательным математическим ожиданием, а плечо и дальше будет приводить к краху; настройка параметров лишь сдвинет дату ликвидации. Стратегия фундаментально несостоятельна; не стоит тратить на оптимизацию 2 часов.
Реализация
Разворотная торговая стратегия лонг-шорт по потоку ордеров на одном инструменте SOLUSDT.BINANCE (USD-M бессрочный контракт, бары по 1 ч). Используя соотношение объёмов покупок и продаж тейкеров на фьючерсах Binance VOLUME (поток «metrics», неценовые данные), на каждом баре 1 ч стратегия рассчитывает дисбаланс агрессивных ордеров (R-1)/(R+1), умножает его на торговый объём бара, получая прокси чистой дельты тейкеров, и ведёт скользящую кумулятивную дельту тейкеров (CVD) за последние cvd_window баров,……Показать большеСвернуть
Разворотная торговая стратегия лонг-шорт по потоку ордеров на одном инструменте SOLUSDT.BINANCE (USD-M бессрочный контракт, бары по 1 ч). Используя соотношение объёмов покупок и продаж тейкеров на фьючерсах Binance VOLUME (поток «metrics», неценовые данные), на каждом баре 1 ч стратегия рассчитывает дисбаланс агрессивных ордеров (R-1)/(R+1), умножает его на торговый объём бара, получая прокси чистой дельты тейкеров, и ведёт скользящую кумулятивную дельту тейкеров (CVD) за последние cvd_window баров, стандартизируя её в z-подобную оценку потока. Также она рассчитывает z-оценку цены за то же окно. Дивергенция = price_z - flow_z измеряет, насколько цена отклонилась дальше уровня, подтверждаемого потоком агрессивных ордеров. Стратегия FADES неподтверждённые экстремумы: SHORT, когда цена у высокого z-экстремума, но поток её не подтверждает (дивергенция >= div_thresh), и LONG при обратной ситуации. Выход — при возврате к среднему (|price_z| <= exit_z), противоположном экстремуме, достижении тейк-профита или стопа либо по временному стопу. 3 основные параметры: cvd_window, entry_z, div_thresh.
Результаты верификации
Верификация не пройдена (Layer 2 — синтетические сценарии): Использованные параметры: ['exit_z', 'entry_z', 'stop_pct', 'hold_bars', 'cvd_window', 'div_thresh', 'norm_window', 'min_notional', 'position_frac', 'take_profit_pct'] Убедись, что __init__ задаёт все атрибуты из self.parameters.get(). - steady_uptrend: TypeError: SolTakerFlowDivergenceReversalLS._bar_ts() принимает 1 позиционный аргумент, но передано 2 (временная метка бара: 1735691520000) - steady_downtrend: TypeError:……Показать большеСвернуть
Верификация не пройдена (Layer 2 — синтетические сценарии):
Использованные параметры: ['exit_z', 'entry_z', 'stop_pct', 'hold_bars', 'cvd_window', 'div_thresh', 'norm_window', 'min_notional', 'position_frac', 'take_profit_pct']
Убедись, что __init__ задаёт все атрибуты из self.parameters.get().
- steady_uptrend: TypeError: SolTakerFlowDivergenceReversalLS._bar_ts() принимает 1 позиционный аргумент, но передано 2 (временная метка бара: 1735691520000)
- steady_downtrend: TypeError: SolTakerFlowDivergenceReversalLS._bar_ts() принимает 1 позиционный аргумент, но передано 2 (временная метка бара: 1735691520000)
- flat_ranging: TypeError: SolTakerFlowDivergenceReversalLS._bar_ts() принимает 1 позиционный аргумент, но передано 2 (временная метка бара: 1735691520000)
- volatility_spike: TypeError: SolTakerFlowDivergenceReversalLS._bar_ts() принимает 1 позиционный аргумент, но передано 2 (временная метка бара: 1735691520000)
- zero_volume: TypeError: SolTakerFlowDivergenceReversalLS._bar_ts() принимает 1 позиционный аргумент, но передано 2 (временная метка бара: 1735691520000)
- price_gap: TypeError: SolTakerFlowDivergenceReversalLS._bar_ts() принимает 1 позиционный аргумент, но передано 2 (временная метка бара: 1735691520000)
Аналитик: откажись от стратегии при отрицательном матожидании и >50% DD; инверсия RR заложена в структурную асимметрию выхода по возврату к среднему и фиксированного стопа, её нельзя устранить повторной настройкой.
Достаточно большая выборка (458 сделок, metrics_reliable=true), результат однозначно отрицательный: total_return -73.03%, max_drawdown 78.76% (значительно выше порога безусловного отказа >50% L19), profit_factor 0.72, avg_trade_return_pct -0.077% (отрицательное математическое ожидание). NOT признаков дефекта кода L17 (win_rate 0.64, Sharpe +0.70, PF 0.72 — ни одно условие win=0 / |Sharpe|>5 / PF=0 не выполнено), значит, для аналитика это настоящий результат отсутствия преимущества, а не ошибка QA. Механизм убытков — классическая инверсия RR: win_rate 0.64, но avg_loss $1591 ≈ 2.5× avg_win $647 — тейк-профит возврата к среднему с exit_z=0.5 фиксирует крошечную прибыль, а стоп 3% позволяет убыткам расти. Та же картина у стратегий возврата к среднему на Keltner с LINK и ADA-RSI2, от которых отказались в этой сессии.
Риск/аналитик: считай хвост распределения на сделку существенно выше 3%; защитный стоп-маркет ордер или меньшее плечо сократят его.
Стопы проверялись только на закрытии 1-часового бара (get_position_pnl_pct); выход исполнялся на следующем баре, поэтому фактический убыток превысил стоп 3% на волатильном SOL (largest_loss -$4799 ≈ 4.8% от номинала ~1x капитала, больше лимита 3%). Вместе с ограничением прибыли через exit_z примерно на уровне 0.65% это создаёт асимметрию avg_loss >> avg_win, усиленную плечом 2.0 (CVaR_95 35.4%). Это не ошибка кода (стопы на закрытии бара — неотъемлемая часть механики), но утверждение «стоп 3% ≈ риск 3% капитала» занижает фактический хвостовой убыток.
Аналитик: учитывай издержки на комиссии и влияние на рынок при решении отказаться от стратегии.
Очень высокий оборот (370.7) и total_impact_usd $12,890 за 458 сделок — издержки на комиссии и влияние на рынок составляют большую часть убытка. Число сделок выше минимального порога для измеримости (хорошо), но при такой частоте требуется валовое преимущество на сделку, которого сигнал расхождения потоков не даёт.
Обзор бэктеста
Шарп
-0,59
Общая доходность
-100,00%
Максимальная просадка
100,00%
Всего сделок
2304
Доля прибыльных
61,3%
Профит-фактор
0,77
Использует настоящий поток данных, не основанный на цене (метрики покупок/продаж тейкеров), который дал 2,304 сигналов — превысил минимальный порог измеримости, не пройденный родственной стратегией с 16 сделками; проблемы с доступом к данным нет
Конструкция с 3 параметрами для ограничения риска переобучения
ACCOUNT LIQUIDATED на 2023-03-31: total_return -100%, max_drawdown 100%; последние ~3 лет активности не было
Однозначный чистый убыток: profit_factor 0.769, avg_trade_return_pct -0.10%, матожидание -$52/сделку, Sharpe -0.59, PSR 0.026 — отрицательный результат в каждом году (2021 -23%, 2022 -75%, 2023 -184%)
Чрезмерное плечо: avg_position_pct 236% (position_frac 0.5 × плеча) вела позицию на одном инструменте против движения с номиналом ~2.4x → катастрофический крах (2023-05 -1638% месяц, return_skew -11, эксцесс 487)
Разворотные стратегии по потоку ордеров на одном активе REVERSION — заведомо нежизнеспособное семейство в этой сессии (родственная стратегия на потоке тейкеров -0.025%; согласно указанию руководителя исследований, все горизонты потока ордеров не покрывают комиссии)
Сводка по итогам
Устранение проблемы с числом сделок в предыдущем варианте не создаёт преимущества: превышение минимального порога измеримости лишь доказало, что торговля против движения по потоку ордеров одного инструмента даёт отрицательный результат; торговля против движения с отрицательным матожиданием при номинале ~2.4x гарантирует ликвидацию, а не просто отставание от рынка. Размер позиции нужно ограничивать независимо от того, работает ли сигнал.
От стратегии отказались на этапе проверки бэктеста (вердикт: отказаться) из-за двух усугубляющих друг друга проблем: сигнал торговли против движения — возврат потока ордеров одного инструмента, безусловно провалившееся семейство в этой сессии, — и опасное чрезмерное плечо (avg_position_pct 236%, номинал ~2.4x), превратившее отрицательное преимущество в полную ликвидацию счёта.
Это была лонг-шорт стратегия потока ордеров для одного инструмента на бессрочных контрактах SOLUSDT USD-M (бары по 1 ч). Она использовала поток метрик объёма покупок и продаж тейкеров Binance Futures для расчёта скользящей кумулятивной тейкерской дельты (CVD) и торговли против ценовых экстремумов, которые поток агрессивных ордеров не подтверждал: открывала короткие позиции на максимумах, не подтверждённых потоком, и длинные позиции на минимумах, не подтверждённых потоком.
Стратегия совершила 2,304 сделок (выше минимального порога измеримости), но принесла катастрофический чистый убыток: счёт ликвидирован 2023-03-31 при total_return -100% и max_drawdown 100%; profit factor 0.769, avg_trade_return_pct -0.10%, матожидание -$52/сделку, Sharpe -0.59, PSR 0.026, результат отрицательный в каждом году (2021 -23%, 2022 -75%, 2023 -184%).
Stratmill — это инструмент для исследований и бумажной торговли, а не финансовая консультация или брокер. Результаты бэктестов и бумажной торговли являются гипотетическими. Торговля сопряжена с риском убытков.