Plugin-based pump/dump trading framework для окна 09:30 → 11:00 ET. Развитие существующего moo_1100_asym/.
Это торговый движок, который каждое утро в 09:25 ET сканирует ~2,500 ликвидных тикеров (ADV ≥1M акций), ищет пампы (резкие гэпы вверх) и дампы (резкие гэпы вниз) на пре-маркете, и выставляет MOO ордера на открытие в 09:30. Каждая позиция держится максимум до 11:00 ET с тремя возможными выходами: −1% стоп-лосс, +7% тейк-профит, или force-exit в 11:00 по MOC.
Ключевое отличие от старой v1 версии — plugin-архитектура: старый монолитный сканер заменён на 4 независимых "плагина", каждый из которых ищет свой тип сетапа (пампы с новостями vs органические; SHORT-фейды vs LONG-баунсы). Каждый плагин можно включать/выключать независимо, проводить research отдельно, и масштабировать BP по-разному. Сейчас 1 плагин в production (organic_pump = миграция Tier 1 SHORT с PF 2.17), остальные 3 в paper-режиме до прохождения аудита.
Математика: при ratio 7:1 безубыток на WR ≥ 12.5%. С учётом time-exit (большинство сделок выходят в 11:00 со средним результатом близким к 0), реалистичный целевой WR = 35-40% "победы" (TP-hit + favorable time-exits) → ожидаемый daily Sharpe 2.5-4.0.
Ищем акции до $10, которые на пре-маркете без новостей прыгнули +10% и выше на аномальном объёме (≥3σ от 60-дневной нормы). Это классический pump-and-dump паттерн — мелкая капитализация, retail FOMO. Шортим на открытии в надежде что памп выдохнется и цена откатится к среднему.
Это миграция v1 Tier 1 стратегии — единственный сетап который прошёл 3-летний pre-period audit с Profit Factor 2.17.
Зеркало предыдущего: акция падает ≥10% на открытии без новостей, на огромном PM объёме — это часто принудительная распродажа (margin call, fund liquidation), а не реальная переоценка. Лонгуем на открытии ожидая отскок к 11:00.
Гипотеза не проверена на 3y данных — в paper-режиме до audit pass.
Ищем компании с earnings AMC накануне или свежими новостями (06:00-09:25 ET), которые прыгнули вверх ≥+5%. Гипотеза: после новостей наступает IV crush (опционная волатильность падает), retail FOMO peaks at open, дальше mean-reversion.
Skip если short interest >30% (squeeze risk) или float <10M (illiquid).
Earnings miss / guidance cut → акция падает ≥5%. Если уже oversold (RSI <30) или серия из ≥3 down-дней — это часто capitulation, дальше отскок. Лонгуем на открытии до 11:00.
Skip если есть fraud-флаги или Chapter 11 risk — там бизнес реально умер.
Universe ADV ≥1M acquisitions, price ≥$2, исключение leveraged ETFs (TQQQ/SOXL/etc.), сплитов за 5d, IPO <30d.
FOMC/CPI/NFP — skip всё. PPI — skip только SHORT (LONG OK). OPEX Friday — max 1 позиция. Праздники ±1d — размер ×0.5.
Один тикер — одна сделка в день. Если 2 плагина дали сигнал — берём с высшим score. Earnings ±1d — organic плагины skip (передают reports плагинам).
Max concurrent = 3 позиции. Max $2,000 на позицию (20% от $10K BP). Sector concentration ≤2 позиции одного сектора. Side balance ≤70% gross на одной стороне.
Daily DD ≤−5% от BP → engine halt до next day. Weekly DD ≤−8% → halt до понедельника. Shared с M14 (один счёт).
Shared $10K BP с MOO_955 (приоритет M14). Manual kill switches: engine.enabled: false или per-plugin. Auto-halt: 5 убыточных дней подряд → плагин отключается до ручного re-enable.
.shift(1) safe| Sharpe daily | ≥ 1.5 |
| $/yr | ≥ $2,000 |
| WF positive folds | ≥ 4 / 5 |
| t-statistic | ≥ 3 |
| Permutation p | < 0.05 |
| DIRTY features | 0 |
READY_FOR_PAPER.md
Halt condition на любой фазе: просадка −3% от старта фазы → плагин halted, root-cause review обязателен.
| Модуль | Назначение | Tests |
|---|---|---|
| core/signal.py | PumpSignal dataclass — основной тип данных | 3 |
| core/plugin_base.py | PumpPlugin ABC — контракт для плагинов | 2 |
| core/plugin_registry.py | Discovery + filter по enabled | 3 |
| core/blacklists.py | Leveraged ETFs, IPO/split filters | 3 |
| core/universe.py | ADV 1M+ universe builder | 2 |
| core/exit_manager.py | 1%SL / 7%TP / 11:00 — bar-level + tick-level | 8 |
| core/risk_gates.py | 6 слоёв фильтров (calendar/portfolio/sector/etc.) | 6 |
| core/sizer.py | Score-proportional sizer с BP budget | 4 |
| core/pump_engine.py | Orchestrator: plugins → dedup → gates → sizer | 3 |
| core/factory.py | build_engine() из strategy.yaml | 1 |
| core/config.py | YAML loader | 2 |
| plugins/organic_pump.py | SHORT pump fade (LIVE) | 9 |
| plugins/organic_dump.py | LONG capitulation bounce (paper) | 4 |
| plugins/reports_pump.py | SHORT earnings/news fade (paper) | 6 |
| plugins/reports_dump.py | LONG earnings miss bounce (paper) | 4 |
| research/backtest.py | Plugin-aware historical replay | 2 |
| research/audit_5checks.py | WF + bootstrap + permutation | 4 |
| research/slippage_stress.py | Rerun на 15/30/50 bps SL slip | 1 |
| research/run_audit_organic_pump.py | Driver script (нужен pm_history parquet) | — |
| dry_run.py | Pre-market 09:25 dump candidates → JSON | — |
Audit driver run_audit_organic_pump.py готов, но требует
enrichment_data/pm_history_2022_2026.parquet. Этот файл нужно собрать через
существующий pipeline (_build_features.py, _collect_*.py) до того
как можно будет запустить audit на реальных данных.
Hook в moc_moo.py сейчас только логирует кандидатов (orders НЕ сабмитятся).
Full wiring требует M14 OPG-routing fix (отдельный P0 dependency — по логам TradingApp
все MOO/MOC сабмитились как session=EXT вместо OPG).
После сборки pm_history parquet и прохождения audit — можно запускать Phase 1 (paper 2 недели) для organic_pump. Остальные 3 плагина ждут аналогичного аудита.
sympathy_pump (peer ticker memes), sector_rotation_dump
(XLE/XLF flush → top member SHORT), post_halt_resume (halted T1 → resume → fade),
low_float_runner (float <5M extreme squeeze fades).
py -3.12 -m moo_1100_asym.dry_run |
Pre-market 09:25 ET — дамп кандидатов в JSON |
py -3.12 -m pytest moo_1100_asym/tests/ -v |
Полный test suite (87 тестов) |
py -3.12 -m moo_1100_asym.research.run_audit_organic_pump |
Запуск 5-check аудита (нужен pm_history parquet) |
py -3.12 -c "from moo_1100_asym.core.factory import build_engine; print(build_engine())" |
Проверка factory + список enabled plugins |
docs/superpowers/specs/2026-04-27-asym-pump-engine-design.md — полное design doc (architecture, plugins, exit, risk, ramp)docs/superpowers/plans/2026-04-27-asym-pump-engine.md — implementation plan (~1900 строк, 23 TDD задачи)memory/project_asym_v2_plugin_engine_apr27.md — итоги сессии для будущих контекстовworktree-bridge-cse_01BXm4dp5c7TtZUU3ahTL3Ga — 23 коммита, готова к merge в main