Непрерывная оптимизация торговых стратегий #500

Open
opened 2026-07-21 15:39:52 +00:00 by andrei · 15 comments
Owner

Постоянный verified цикл для всех Arnold стратегий: live PnL 24ч/7д/30д, причинная атрибуция входов/выходов, recent-vs-full cohort, исправление loss asymmetry и режимных ошибок через тесты/PR/CI/deploy. Запрещено лечить убытки дневными stop-limit, паузой, auto-paper или отключением стратегии. При недостаточной выборке — наблюдение без изменения торговли; при доказанном дефекте — кодовый фикс и production verification.

Постоянный verified цикл для всех Arnold стратегий: live PnL 24ч/7д/30д, причинная атрибуция входов/выходов, recent-vs-full cohort, исправление loss asymmetry и режимных ошибок через тесты/PR/CI/deploy. Запрещено лечить убытки дневными stop-limit, паузой, auto-paper или отключением стратегии. При недостаточной выборке — наблюдение без изменения торговли; при доказанном дефекте — кодовый фикс и production verification.
Author
Owner

Стартовый live baseline (2026-07-21):

  • 24ч: 36 закрытий, net +$12.89.
  • 7д: 289 закрытий, net -$25.49.
  • 30д: 1034 закрытия, net -$193.03.
  • grid_bidir_aggressive 7д: n=266, 240 wins, net -$12.50; avg win +$0.0904, avg loss -$1.3157 — главный дефект loss asymmetry.
  • grid_bidir_aggressive 30д: AVAX -$40.14, XRP -$18.99, DOGE -$18.97, SOL -$4.72.
  • generic exchange_sl_tp_close 7д: n=23, net -$12.99; attribution к исходной стратегии неполная и должна быть исправлена до достоверного межстратегийного сравнения.
  • После свежих PR по budget scaling/Radar текущий 24ч grid cohort положительный (+$1.93), поэтому старые 7/30д потери нельзя использовать для слепой перекалибровки без разделения pre/post-fix.

Первый цикл:

  1. Исправить originating-strategy/exit attribution для native SL/TP и Radar.
  2. Разделить grid pre/post-risk-policy cohorts и найти причинный источник редких крупных закрытий.
  3. Менять только signal/entry/exit/sizing/regime; дневные stop-limit, паузы, auto-paper и отключение запрещены.

Автономный review запущен каждые 6 часов; каждый доказанный дефект проходит issue → tests → PR → CI → deploy → live verification.

Стартовый live baseline (2026-07-21): - 24ч: 36 закрытий, net +$12.89. - 7д: 289 закрытий, net -$25.49. - 30д: 1034 закрытия, net -$193.03. - grid_bidir_aggressive 7д: n=266, 240 wins, net -$12.50; avg win +$0.0904, avg loss -$1.3157 — главный дефект loss asymmetry. - grid_bidir_aggressive 30д: AVAX -$40.14, XRP -$18.99, DOGE -$18.97, SOL -$4.72. - generic exchange_sl_tp_close 7д: n=23, net -$12.99; attribution к исходной стратегии неполная и должна быть исправлена до достоверного межстратегийного сравнения. - После свежих PR по budget scaling/Radar текущий 24ч grid cohort положительный (+$1.93), поэтому старые 7/30д потери нельзя использовать для слепой перекалибровки без разделения pre/post-fix. Первый цикл: 1. Исправить originating-strategy/exit attribution для native SL/TP и Radar. 2. Разделить grid pre/post-risk-policy cohorts и найти причинный источник редких крупных закрытий. 3. Менять только signal/entry/exit/sizing/regime; дневные stop-limit, паузы, auto-paper и отключение запрещены. Автономный review запущен каждые 6 часов; каждый доказанный дефект проходит issue → tests → PR → CI → deploy → live verification.
Author
Owner

Цикл 2026-07-21 22:03–22:39 UTC завершён.

Выбран один доказанный дефект: Radar owner identity/tenant attribution. До фикса Radar сохранял внутренний user_id там, где reconciliation сравнивал owner Telegram ID; результат — валидный Radar-вход мог стать syncer_imported, а последующее exchange SL/TP-закрытие теряло экономического владельца. Исправление: owner identity мапится до attribution, чужие owner-записи и malformed timestamp/qty отклоняются.

Доставка:

  • PR #517, corrective commit fabd1e5e, merge/release 454c1941.
  • PR CI: backend/frontend/secret-scan/smoke — success; локально 84 targeted tests passed; diff-scoped secret scan passed.
  • Повторный canonical deploy после push-CI: action success; post-deploy-validate.sh=== ALL CHECKS PASSED ===.
  • Production: HEAD/origin/health 454c1941, три Arnold PM2-процесса online под europatech, 18/18 daemon threads alive, repo clean.

Live PnL (real, pnl IS NOT NULL, generic exchange_sl_tp_close/syncer_imported/futures_monitor исключены из strategy ranking; net = pnl-fees):

  • 24ч: grid_bidir_aggressive n=26, WR 96.2%, GP +3.172, GL -0.011, PF 293.77, fees 0.182, net +2.979; radar_live n=6, WR 16.7%, GP +30.245, GL -16.256, PF 1.861, fees 0, net +13.989.
  • 7д: grid_bidir_aggressive n=254, WR 90.2%, GP +22.271, GL -34.188, PF 0.651, fees 1.739, net -13.657; radar_live n=14, WR 14.3%, GP +37.431, GL -46.924, PF 0.798, net -9.492; manual_close n=1, net +11.667.
  • 30д: grid_bidir_aggressive n=982, WR 91.0%, GP +100.271, GL -178.737, PF 0.561, fees 6.574, net -85.040; grid_bidir_conservative n=27, WR 48.1%, GP +8.668, GL -83.600, PF 0.104, fees 6.279, net -81.212; radar_live n=14, WR 14.3%, GP +37.431, GL -46.924, PF 0.798, net -9.492; manual_* net +12.176.
  • Главные symbol cohorts 30д: conservative ETH -68.837 (n=18, PF .068), aggressive AVAX -40.063 (n=282, PF .516), aggressive XRP -18.986 (n=187, PF .506), aggressive DOGE -18.923 (n=181, PF .476), conservative BTC -12.374 (n=9, PF .280), aggressive SOL -4.717 (n=325, PF .900).
  • Generic 30д, не засчитано стратегиям: futures_monitor n=301/pnl -10.157; exchange_sl_tp_close n=9/pnl -3.498.

Recent cohort после production logic fix 454c1941: закрытий пока 0 — PF/WR ещё не определены. Exchange truth: 3 позиции и 4 защитных/лимитных ордера; UBUSDT short остаётся в DB как syncer_imported, exchange position защищена reduce-only ордером. Исторического Radar order/audit evidence для безопасного backfill этой уже открытой позиции нет, поэтому ownership не переписан наугад. Она продолжает корректно блокировать новые расширяющие входы как unmanaged; стратегии/бюджеты/paper/live не менялись.

Условие следующего фикса: минимум 20 новых закрытий после 454c1941 для Grid по активным символам либо минимум 10 новых Radar DOWN-закрытий, с owner-attributed entry/exit и market-regime metadata; затем проверка retained frequency и out-of-sample PF. До этого следующий logic tuning будет hindsight-only.

Цикл 2026-07-21 22:03–22:39 UTC завершён. Выбран один доказанный дефект: Radar owner identity/tenant attribution. До фикса Radar сохранял внутренний user_id там, где reconciliation сравнивал owner Telegram ID; результат — валидный Radar-вход мог стать `syncer_imported`, а последующее exchange SL/TP-закрытие теряло экономического владельца. Исправление: owner identity мапится до attribution, чужие owner-записи и malformed timestamp/qty отклоняются. Доставка: - PR #517, corrective commit `fabd1e5e`, merge/release `454c1941`. - PR CI: backend/frontend/secret-scan/smoke — success; локально 84 targeted tests passed; diff-scoped secret scan passed. - Повторный canonical deploy после push-CI: action success; `post-deploy-validate.sh` — `=== ALL CHECKS PASSED ===`. - Production: HEAD/origin/health `454c1941`, три Arnold PM2-процесса online под europatech, 18/18 daemon threads alive, repo clean. Live PnL (real, `pnl IS NOT NULL`, generic `exchange_sl_tp_close`/`syncer_imported`/`futures_monitor` исключены из strategy ranking; net = pnl-fees): - 24ч: grid_bidir_aggressive n=26, WR 96.2%, GP +3.172, GL -0.011, PF 293.77, fees 0.182, net +2.979; radar_live n=6, WR 16.7%, GP +30.245, GL -16.256, PF 1.861, fees 0, net +13.989. - 7д: grid_bidir_aggressive n=254, WR 90.2%, GP +22.271, GL -34.188, PF 0.651, fees 1.739, net -13.657; radar_live n=14, WR 14.3%, GP +37.431, GL -46.924, PF 0.798, net -9.492; manual_close n=1, net +11.667. - 30д: grid_bidir_aggressive n=982, WR 91.0%, GP +100.271, GL -178.737, PF 0.561, fees 6.574, net -85.040; grid_bidir_conservative n=27, WR 48.1%, GP +8.668, GL -83.600, PF 0.104, fees 6.279, net -81.212; radar_live n=14, WR 14.3%, GP +37.431, GL -46.924, PF 0.798, net -9.492; manual_* net +12.176. - Главные symbol cohorts 30д: conservative ETH -68.837 (n=18, PF .068), aggressive AVAX -40.063 (n=282, PF .516), aggressive XRP -18.986 (n=187, PF .506), aggressive DOGE -18.923 (n=181, PF .476), conservative BTC -12.374 (n=9, PF .280), aggressive SOL -4.717 (n=325, PF .900). - Generic 30д, не засчитано стратегиям: futures_monitor n=301/pnl -10.157; exchange_sl_tp_close n=9/pnl -3.498. Recent cohort после production logic fix `454c1941`: закрытий пока 0 — PF/WR ещё не определены. Exchange truth: 3 позиции и 4 защитных/лимитных ордера; UBUSDT short остаётся в DB как `syncer_imported`, exchange position защищена reduce-only ордером. Исторического Radar order/audit evidence для безопасного backfill этой уже открытой позиции нет, поэтому ownership не переписан наугад. Она продолжает корректно блокировать новые расширяющие входы как unmanaged; стратегии/бюджеты/paper/live не менялись. Условие следующего фикса: минимум 20 новых закрытий после `454c1941` для Grid по активным символам либо минимум 10 новых Radar DOWN-закрытий, с owner-attributed entry/exit и market-regime metadata; затем проверка retained frequency и out-of-sample PF. До этого следующий logic tuning будет hindsight-only.
Author
Owner

Цикл 2026-07-22 10:07–10:18 UTC завершён.

Выбран один доказанный дефект: counter-trend close Grid оставлял на бирже same-side exposure-adding grid orders. Production evidence по SOLUSDT: при bullish regime short grid order исполнялся, затем reduce-only counter-trend close срабатывал через секунды; следующий оставшийся sell-limit снова открывал short. Это создавало причинно подтверждённый churn и fee/loss drag без улучшения сигнала. Исправление не вводит дневной лимит, паузу, auto-paper, нулевой budget или trade-count cap: перед market-close отменяются только grid-owned same-side expanding orders; reduce-only closers и чужие/ручные ордера сохраняются; при ошибке отмены close fail-closed и аудитируется.

Атрибуция и live PnL (real, net=pnl-fee; 9 исторических exchange_sl_tp_close связаны по symbol/side/qty/order lifecycle с grid_bidir_aggressive; 301 legacy futures_monitor оставлены отдельным unattributed_legacy bucket и не засчитаны стратегией):

  • 24ч total: n=20, gross +22.896, fees 0.032, net +22.863. Grid aggressive: n=18, WR 72.2%, GP +0.2580, GL -4.2909, PF 0.060, avg/median win +0.0198/+0.0159, avg/median loss -0.8582/-0.5607, fees 0.0323, net -4.0651. Radar: n=2, WR 50%, GP +30.2452, GL -3.3167, PF 9.119, net +26.9285.
  • 7д total: n=260, gross -17.247, fees 1.651, net -18.897. Grid aggressive: n=244, WR 86.5%, GP +19.8583, GL -36.0389, PF 0.551, avg/median win +0.0941/+0.0480, avg/median loss -1.0921/-0.0865, fees 1.5748, net -17.7554. Radar: n=15, WR 13.3%, GP +37.4315, GL -50.2406, PF 0.745, net -12.8091. Manual trade: n=1, net +11.6672.
  • 30д total: n=1335, gross -150.345, fees 10.621, net -160.966; 301 legacy closes остаются unattributed. Grid aggressive: n=996, WR 90.5%, GP +100.4240, GL -183.8240, PF 0.546, avg/median win +0.1115/+0.0677, avg/median loss -1.9350/-0.0502, fees 6.5790, net -89.9784. Grid conservative: n=20, WR 65.0%, GP +5.7374, GL -62.2094, PF 0.092, net -60.4223. Radar: n=15, WR 13.3%, PF 0.745, net -12.8091. Legacy unattributed: n=301, net -10.1728.
  • Главные symbol cohorts: 24ч AVAX Grid n=10/PF .035/net -3.253, DOGE n=7/PF .149/net -0.805; 7д XRP n=56/PF .485/net -8.037, AVAX n=72/PF .475/net -6.677, DOGE n=54/PF .496/net -4.753, SOL n=62/PF 3.624/net +1.711; 30д conservative ETH n=14/PF .082/net -55.849, aggressive AVAX n=285/PF .495/net -43.396, DOGE n=186/PF .462/net -19.999, XRP n=190/PF .502/net -19.339, SOL n=328/PF .895/net -4.894.

Доставка и verification:

  • PR #526, fix bf7a1ba5, merge/release ef5ab92c. PR CI: backend/frontend/secret-scan/smoke success; full backend 7403 passed, 7 skipped; targeted production regression повторно 3/3 passed.
  • Push CI и deploy runs 18953/18954 success. Production HEAD=origin/master=health.version ef5ab92c; canonical post-deploy validator: ALL CHECKS PASSED; repo clean.
  • PM2 API/daemons/Telegram online под europatech; 18/18 daemon threads alive; API/DB/LightRAG/Telegram/grid stop-state healthy; is_stopped=false.
  • Exchange truth после deploy: Grid продолжает торговать, 1 DOGE short защищён reduce-only close; 8 открытых ордеров включают Grid и Radar, чужие/ручные ордера не отменялись. Текущий DOGE regime не counter-trend, поэтому закрытие не форсировалось. Стратегии, budgets и paper/live не изменялись.

Новый recent cohort начинается с production runtime ef5ab92c, 2026-07-22 10:15:32 UTC: закрытий пока 0. Следующее условие для logic fix: минимум 20 новых owner-attributed Grid закрытий после ef5ab92c и не менее 10 наблюдаемых counter-trend close opportunities; для каждого должно быть подтверждено отсутствие same-side grid expander после close и сохранение обычной fill frequency. Для Radar — минимум 10 новых DOWN закрытий. До выполнения порога следующий tuning AVAX/DOGE будет hindsight-only.

Цикл 2026-07-22 10:07–10:18 UTC завершён. Выбран один доказанный дефект: counter-trend close Grid оставлял на бирже same-side exposure-adding grid orders. Production evidence по SOLUSDT: при bullish regime short grid order исполнялся, затем reduce-only counter-trend close срабатывал через секунды; следующий оставшийся sell-limit снова открывал short. Это создавало причинно подтверждённый churn и fee/loss drag без улучшения сигнала. Исправление не вводит дневной лимит, паузу, auto-paper, нулевой budget или trade-count cap: перед market-close отменяются только grid-owned same-side expanding orders; reduce-only closers и чужие/ручные ордера сохраняются; при ошибке отмены close fail-closed и аудитируется. Атрибуция и live PnL (real, net=pnl-fee; 9 исторических exchange_sl_tp_close связаны по symbol/side/qty/order lifecycle с grid_bidir_aggressive; 301 legacy futures_monitor оставлены отдельным unattributed_legacy bucket и не засчитаны стратегией): - 24ч total: n=20, gross +22.896, fees 0.032, net +22.863. Grid aggressive: n=18, WR 72.2%, GP +0.2580, GL -4.2909, PF 0.060, avg/median win +0.0198/+0.0159, avg/median loss -0.8582/-0.5607, fees 0.0323, net -4.0651. Radar: n=2, WR 50%, GP +30.2452, GL -3.3167, PF 9.119, net +26.9285. - 7д total: n=260, gross -17.247, fees 1.651, net -18.897. Grid aggressive: n=244, WR 86.5%, GP +19.8583, GL -36.0389, PF 0.551, avg/median win +0.0941/+0.0480, avg/median loss -1.0921/-0.0865, fees 1.5748, net -17.7554. Radar: n=15, WR 13.3%, GP +37.4315, GL -50.2406, PF 0.745, net -12.8091. Manual trade: n=1, net +11.6672. - 30д total: n=1335, gross -150.345, fees 10.621, net -160.966; 301 legacy closes остаются unattributed. Grid aggressive: n=996, WR 90.5%, GP +100.4240, GL -183.8240, PF 0.546, avg/median win +0.1115/+0.0677, avg/median loss -1.9350/-0.0502, fees 6.5790, net -89.9784. Grid conservative: n=20, WR 65.0%, GP +5.7374, GL -62.2094, PF 0.092, net -60.4223. Radar: n=15, WR 13.3%, PF 0.745, net -12.8091. Legacy unattributed: n=301, net -10.1728. - Главные symbol cohorts: 24ч AVAX Grid n=10/PF .035/net -3.253, DOGE n=7/PF .149/net -0.805; 7д XRP n=56/PF .485/net -8.037, AVAX n=72/PF .475/net -6.677, DOGE n=54/PF .496/net -4.753, SOL n=62/PF 3.624/net +1.711; 30д conservative ETH n=14/PF .082/net -55.849, aggressive AVAX n=285/PF .495/net -43.396, DOGE n=186/PF .462/net -19.999, XRP n=190/PF .502/net -19.339, SOL n=328/PF .895/net -4.894. Доставка и verification: - PR #526, fix bf7a1ba5, merge/release ef5ab92c. PR CI: backend/frontend/secret-scan/smoke success; full backend 7403 passed, 7 skipped; targeted production regression повторно 3/3 passed. - Push CI и deploy runs 18953/18954 success. Production HEAD=origin/master=health.version ef5ab92c; canonical post-deploy validator: ALL CHECKS PASSED; repo clean. - PM2 API/daemons/Telegram online под europatech; 18/18 daemon threads alive; API/DB/LightRAG/Telegram/grid stop-state healthy; is_stopped=false. - Exchange truth после deploy: Grid продолжает торговать, 1 DOGE short защищён reduce-only close; 8 открытых ордеров включают Grid и Radar, чужие/ручные ордера не отменялись. Текущий DOGE regime не counter-trend, поэтому закрытие не форсировалось. Стратегии, budgets и paper/live не изменялись. Новый recent cohort начинается с production runtime ef5ab92c, 2026-07-22 10:15:32 UTC: закрытий пока 0. Следующее условие для logic fix: минимум 20 новых owner-attributed Grid закрытий после ef5ab92c и не менее 10 наблюдаемых counter-trend close opportunities; для каждого должно быть подтверждено отсутствие same-side grid expander после close и сохранение обычной fill frequency. Для Radar — минимум 10 новых DOWN закрытий. До выполнения порога следующий tuning AVAX/DOGE будет hindsight-only.
Author
Owner

Квалификация (триаж 2026-07-22): это standing operating-loop, а не разовая задача — живёт в Hermes CEO-heartbeat (цикл «непрерывное улучшение стратегий» активен, см. его сессии 2026-07-21/22: radar isolation, PR #509/#510/#516/#519 и далее). Issue остаётся открытым как якорь мандата; в «разгребание бэклога» не входит по определению.

Квалификация (триаж 2026-07-22): это standing operating-loop, а не разовая задача — живёт в Hermes CEO-heartbeat (цикл «непрерывное улучшение стратегий» активен, см. его сессии 2026-07-21/22: radar isolation, PR #509/#510/#516/#519 и далее). Issue остаётся открытым как якорь мандата; в «разгребание бэклога» не входит по определению.
Author
Owner

Цикл оптимизации 2026-07-22 15:00 UTC — наблюдение, без нового tuning-патча

GitNexus: arnold-trader-app, запрос по PnL attribution / exchange_sl_tp_close / syncer_imported; индекс указал на futures_position_sync_daemon.py, position_syncer.py, futures_engine.py. Live source на production HEAD 09a94b2f использован как источник истины.

Live PnL, закрытые реальные сделки (pnl - fee = net)

Окно / стратегия n WR gross + gross - PF avg/med win avg/med loss fees net
24ч grid_bidir_aggressive 16 75.0% 0.2472 1.2979 0.190 0.0183 / 0.0179 -0.3288 / -0.3290 0.0448 -1.0956
24ч radar_live 2 0.0% 0 6.3795 -3.3039 / -3.3039 0.2282 -6.6078
7д grid_bidir_aggressive 219 89.0% 16.0139 31.8177 0.503 0.0752 / 0.0357 -1.3265 / -0.0693 1.3737 -17.1775
7д radar_live 16 12.5% 37.4314 53.3034 0.702 18.7157 / 18.7157 -3.8237 / -3.3173 0.2282 -16.1002
30д grid_bidir_aggressive 991 90.7% 100.3753 180.0350 0.558 0.1045 / 0.0608 -1.9588 / -0.0521 6.6048 -86.2645
30д grid_bidir_conservative 13 84.6% 3.2523 0.2513 12.942 0.2770 / 0.2101 -0.1528 / -0.1528 0.2590 +2.7420
30д radar_live 16 12.5% 37.4314 53.3034 0.702 18.7157 / 18.7157 -3.8237 / -3.3173 0.2282 -16.1002

Крупнейшие symbol cohorts: 7д grid — XRP n=43, PF=0.291, net=-10.3899, DOGE n=47, PF=0.487, net=-4.2384, AVAX n=71, PF=0.620, net=-3.9759, SOL n=58, PF=3.158, net=+1.4267. 30д grid: AVAX n=284, net=-40.6955, DOGE n=184, -19.4566, XRP n=187, -18.9855, SOL n=329, -4.7765.

Recent cohort после последних релевантных fixes

  • Grid после bf7a1ba5 (2026-07-22 09:30 UTC): всего 5 закрытий — DOGE n=2, WR=100%, net=+0.0276; SOL n=3, WR=66.7%, PF=0.620, net=-0.0523. Этого недостаточно, чтобы отделить эффект отмены counter-trend expanders от шума.
  • Radar после c94cc604 (2026-07-22 02:24 UTC): 2 закрытия — BILL -3.2910, ESPORTS -3.3167; обе loss, но n=2 недостаточно для изменения фильтра/entry без hindsight.
  • Market regime на момент проверки: trending_up, BTC ADX 4h ≈41.6; live grid сохраняет частоту через controlled hedge recovery, XRP fresh grid корректно блокируется bullish regime gate.

Атрибуция и exchange truth

  • После owner-attribution fix 43063a83 нет ни одного нового закрытия без origin_strategy; 9 unresolved записей 7д относятся к более раннему периоду. exchange_sl_tp_close/futures_monitor не использованы как самостоятельные стратегии.
  • DB и Bybit совпадают по 4 позициям: AVAX short и DOGE short — grid_bidir_aggressive, SOL long — grid_bidir_aggressive, ERA short — radar_live.
  • Bybit: 4 позиции, 11 активных ордеров; grid reduce-only closers присутствуют, Radar LAB retrace entry присутствует. Торговля активна, стратегии/бюджеты/paper-mode не менялись.

Решение цикла

Новый код не менялся: за последние часы уже развёрнуты отдельные fixes локального stop/recovery, counter-trend cancel, Radar ownership и live trade dedup; post-fix cohort слишком мал для ещё одного причинно доказанного изменения. Следующий patch допустим при одном из условий: (1) не менее 30 post-fix закрытий Grid с минимум 5 loss exits и повторяемой symbol+side/regime концентрацией; либо (2) не менее 20 post-fix Radar DOWN закрытий с сохранённой частотой сигналов и подтверждённым ex-ante признаком, разделяющим stop cohort и winners; либо (3) раньше — повторный tail loss с тем же manual_action/order path, воспроизводимый по коду и exchange execution timeline.

### Цикл оптимизации 2026-07-22 15:00 UTC — наблюдение, без нового tuning-патча GitNexus: `arnold-trader-app`, запрос по PnL attribution / `exchange_sl_tp_close` / `syncer_imported`; индекс указал на `futures_position_sync_daemon.py`, `position_syncer.py`, `futures_engine.py`. Live source на production HEAD `09a94b2f` использован как источник истины. #### Live PnL, закрытые реальные сделки (`pnl - fee` = net) | Окно / стратегия | n | WR | gross + | gross - | PF | avg/med win | avg/med loss | fees | net | |---|---:|---:|---:|---:|---:|---:|---:|---:|---:| | 24ч grid_bidir_aggressive | 16 | 75.0% | 0.2472 | 1.2979 | 0.190 | 0.0183 / 0.0179 | -0.3288 / -0.3290 | 0.0448 | -1.0956 | | 24ч radar_live | 2 | 0.0% | 0 | 6.3795 | — | — | -3.3039 / -3.3039 | 0.2282 | -6.6078 | | 7д grid_bidir_aggressive | 219 | 89.0% | 16.0139 | 31.8177 | 0.503 | 0.0752 / 0.0357 | -1.3265 / -0.0693 | 1.3737 | -17.1775 | | 7д radar_live | 16 | 12.5% | 37.4314 | 53.3034 | 0.702 | 18.7157 / 18.7157 | -3.8237 / -3.3173 | 0.2282 | -16.1002 | | 30д grid_bidir_aggressive | 991 | 90.7% | 100.3753 | 180.0350 | 0.558 | 0.1045 / 0.0608 | -1.9588 / -0.0521 | 6.6048 | -86.2645 | | 30д grid_bidir_conservative | 13 | 84.6% | 3.2523 | 0.2513 | 12.942 | 0.2770 / 0.2101 | -0.1528 / -0.1528 | 0.2590 | +2.7420 | | 30д radar_live | 16 | 12.5% | 37.4314 | 53.3034 | 0.702 | 18.7157 / 18.7157 | -3.8237 / -3.3173 | 0.2282 | -16.1002 | Крупнейшие symbol cohorts: 7д grid — XRP `n=43, PF=0.291, net=-10.3899`, DOGE `n=47, PF=0.487, net=-4.2384`, AVAX `n=71, PF=0.620, net=-3.9759`, SOL `n=58, PF=3.158, net=+1.4267`. 30д grid: AVAX `n=284, net=-40.6955`, DOGE `n=184, -19.4566`, XRP `n=187, -18.9855`, SOL `n=329, -4.7765`. #### Recent cohort после последних релевантных fixes - Grid после `bf7a1ba5` (2026-07-22 09:30 UTC): всего 5 закрытий — DOGE `n=2, WR=100%, net=+0.0276`; SOL `n=3, WR=66.7%, PF=0.620, net=-0.0523`. Этого недостаточно, чтобы отделить эффект отмены counter-trend expanders от шума. - Radar после `c94cc604` (2026-07-22 02:24 UTC): 2 закрытия — BILL `-3.2910`, ESPORTS `-3.3167`; обе loss, но `n=2` недостаточно для изменения фильтра/entry без hindsight. - Market regime на момент проверки: `trending_up`, BTC ADX 4h ≈41.6; live grid сохраняет частоту через controlled hedge recovery, XRP fresh grid корректно блокируется bullish regime gate. #### Атрибуция и exchange truth - После owner-attribution fix `43063a83` нет ни одного нового закрытия без `origin_strategy`; 9 unresolved записей 7д относятся к более раннему периоду. `exchange_sl_tp_close`/`futures_monitor` не использованы как самостоятельные стратегии. - DB и Bybit совпадают по 4 позициям: AVAX short и DOGE short — `grid_bidir_aggressive`, SOL long — `grid_bidir_aggressive`, ERA short — `radar_live`. - Bybit: 4 позиции, 11 активных ордеров; grid reduce-only closers присутствуют, Radar LAB retrace entry присутствует. Торговля активна, стратегии/бюджеты/paper-mode не менялись. #### Решение цикла Новый код не менялся: за последние часы уже развёрнуты отдельные fixes локального stop/recovery, counter-trend cancel, Radar ownership и live trade dedup; post-fix cohort слишком мал для ещё одного причинно доказанного изменения. Следующий patch допустим при одном из условий: (1) не менее 30 post-fix закрытий Grid с минимум 5 loss exits и повторяемой symbol+side/regime концентрацией; либо (2) не менее 20 post-fix Radar DOWN закрытий с сохранённой частотой сигналов и подтверждённым ex-ante признаком, разделяющим stop cohort и winners; либо (3) раньше — повторный tail loss с тем же `manual_action`/order path, воспроизводимый по коду и exchange execution timeline.
Author
Owner

Автономный цикл оптимизации — 2026-07-22 21:04 UTC

Решение цикла: торговую логику не меняю: после последних релевантных фиксов cohort пока недостаточен, а случайная подгонка сейчас опаснее сохранения текущей логики.

Live PnL (закрытые сделки, gross PnL / fees отдельно)

  • 24ч: Grid aggressive n=17, WR 64.7%, GP +1.6394, GL -2.5527, PF 0.642, avg/median win +0.1490/+0.0287, avg/median loss -0.4255/-0.5631, fees 0.1000, net -1.0133. По символам: SOL n=11, PF 2.041, net +0.7176; AVAX n=3, PF 0.019, net -1.1978; DOGE n=3, PF 0.056, net -0.5331. Radar n=4, WR 0%, GL -12.4898, fees 0.2282, net -12.7180 (ESPORTS/BILL/MORPHO/LAB — по одному native-stop close).
  • 7д: Grid aggressive n=224, WR 88.8%, GP +17.2412, GL -33.0429, PF 0.522, avg/median win +0.0866/+0.0427, avg/median loss -1.3217/-0.2492, fees 1.4146, net -17.2162. Символы: SOL PF 2.772, net +2.2184; AVAX PF 0.583, net -4.5414; DOGE PF 0.487, net -4.2384; XRP PF 0.271, net -10.6548. Radar n=18, WR 11.1%, GP +37.4314, GL -59.4136, PF 0.630, avg/median loss -3.7134/-3.2973, fees 0.2282, net -22.2104.
  • 30д: Grid aggressive n=999, WR 90.9%, GP +101.9102, GL -181.2898, PF 0.562, fees 6.6737, net -86.0533; Grid conservative n=13, WR 84.6%, PF 12.942, fees 0.2590, net +2.7420. Старые futures_monitor n=293 и generic closes не считаю самостоятельными стратегиями: они относятся к историческому периоду до owner-first attribution.

Recent cohorts после logic fixes

  • Grid после bf7a1ba5 (counter-trend churn, 2026-07-22 09:28 UTC): n=13, WR 76.9%, GP +1.6162, GL -1.3350, PF 1.211, fees 0.0947, net +0.1865. Новый дефект по этому cohort не доказан.
  • Radar после 6583df1c (фильтр конфликтующих входов, 2026-07-21 14:17 UTC): 5 live terminal events, все stops; в trades уже 4 закрытия (net -12.7180), один исторический UBUSDT stop остался только в live-журнале и отсутствует в trades (событие было до последних owner/reconciliation fixes); его не смешиваю с post-attribution cohort. Из 5 exact (alert_ts,symbol) paper-пар только 1 уже прошла 24ч evaluation (-2%), 4 pending.
  • Полный paper cohort под точно текущим Radar-фильтром: n=78 evaluated, WR 28.2%, GP +283.789%, GL -112.000%, PF 2.534, avg/median win +12.900%/+10.696%, avg/median loss -2%/-2%, net +171.789%; ещё 16 записей не evaluated. Это подтверждает fat-tail профиль и запрещает делать вывод по пяти подряд стопам. Retained live frequency сохраняется: около 5 terminal/day после фильтра.

Атрибуция и production truth

  • Новые Radar closes записаны economic owner radar_live; close_strategy=exchange_sl_tp_close остаётся только exit metadata. Grid risk closes сохраняют origin_strategy=grid_bidir_aggressive и manual_action.
  • Исторические 9 exchange_sl_tp_close без origin и 293 futures_monitor не включены как стратегии в решение цикла.
  • Production HEAD=e3783137, /api/health OK/DB OK, API/daemons/Telegram PM2 online. Exchange: equity около $151.80, открыты Radar ERA short и Grid SOL long; 11 активных ордеров, торговля не остановлена. Репозиторий чист.

Точное условие следующего logic fix

  1. Radar: дождаться минимум 20 post-filter live terminal trades, минимум 72ч покрытия и завершённой paper evaluation для exact matched cohort. Менять signal/regime только если matched paper/live cohort показывает PF <1 либо статистически устойчивую live/paper divergence; не применять daily stop/cooldown.
  2. Grid: накопить минимум 50 closes после bf7a1ba5 и минимум 5 tail/risk exits с manual_action, затем повторить symbol+regime attribution. Текущие n=13, PF 1.211 не дают основания для нового патча.
### Автономный цикл оптимизации — 2026-07-22 21:04 UTC **Решение цикла:** торговую логику не меняю: после последних релевантных фиксов cohort пока недостаточен, а случайная подгонка сейчас опаснее сохранения текущей логики. #### Live PnL (закрытые сделки, gross PnL / fees отдельно) - **24ч:** Grid aggressive `n=17`, WR `64.7%`, GP `+1.6394`, GL `-2.5527`, PF `0.642`, avg/median win `+0.1490/+0.0287`, avg/median loss `-0.4255/-0.5631`, fees `0.1000`, net `-1.0133`. По символам: SOL `n=11`, PF `2.041`, net `+0.7176`; AVAX `n=3`, PF `0.019`, net `-1.1978`; DOGE `n=3`, PF `0.056`, net `-0.5331`. Radar `n=4`, WR `0%`, GL `-12.4898`, fees `0.2282`, net `-12.7180` (ESPORTS/BILL/MORPHO/LAB — по одному native-stop close). - **7д:** Grid aggressive `n=224`, WR `88.8%`, GP `+17.2412`, GL `-33.0429`, PF `0.522`, avg/median win `+0.0866/+0.0427`, avg/median loss `-1.3217/-0.2492`, fees `1.4146`, net `-17.2162`. Символы: SOL PF `2.772`, net `+2.2184`; AVAX PF `0.583`, net `-4.5414`; DOGE PF `0.487`, net `-4.2384`; XRP PF `0.271`, net `-10.6548`. Radar `n=18`, WR `11.1%`, GP `+37.4314`, GL `-59.4136`, PF `0.630`, avg/median loss `-3.7134/-3.2973`, fees `0.2282`, net `-22.2104`. - **30д:** Grid aggressive `n=999`, WR `90.9%`, GP `+101.9102`, GL `-181.2898`, PF `0.562`, fees `6.6737`, net `-86.0533`; Grid conservative `n=13`, WR `84.6%`, PF `12.942`, fees `0.2590`, net `+2.7420`. Старые `futures_monitor n=293` и generic closes не считаю самостоятельными стратегиями: они относятся к историческому периоду до owner-first attribution. #### Recent cohorts после logic fixes - Grid после `bf7a1ba5` (counter-trend churn, 2026-07-22 09:28 UTC): `n=13`, WR `76.9%`, GP `+1.6162`, GL `-1.3350`, PF `1.211`, fees `0.0947`, net `+0.1865`. Новый дефект по этому cohort не доказан. - Radar после `6583df1c` (фильтр конфликтующих входов, 2026-07-21 14:17 UTC): 5 live terminal events, все stops; в `trades` уже 4 закрытия (`net -12.7180`), один исторический UBUSDT stop остался только в live-журнале и отсутствует в `trades` (событие было до последних owner/reconciliation fixes); его не смешиваю с post-attribution cohort. Из 5 exact `(alert_ts,symbol)` paper-пар только 1 уже прошла 24ч evaluation (`-2%`), 4 pending. - Полный paper cohort под **точно текущим** Radar-фильтром: `n=78` evaluated, WR `28.2%`, GP `+283.789%`, GL `-112.000%`, PF `2.534`, avg/median win `+12.900%/+10.696%`, avg/median loss `-2%/-2%`, net `+171.789%`; ещё 16 записей не evaluated. Это подтверждает fat-tail профиль и запрещает делать вывод по пяти подряд стопам. Retained live frequency сохраняется: около `5 terminal/day` после фильтра. #### Атрибуция и production truth - Новые Radar closes записаны economic owner `radar_live`; `close_strategy=exchange_sl_tp_close` остаётся только exit metadata. Grid risk closes сохраняют `origin_strategy=grid_bidir_aggressive` и `manual_action`. - Исторические 9 `exchange_sl_tp_close` без origin и 293 `futures_monitor` не включены как стратегии в решение цикла. - Production `HEAD=e3783137`, `/api/health` OK/DB OK, API/daemons/Telegram PM2 online. Exchange: equity около `$151.80`, открыты Radar ERA short и Grid SOL long; 11 активных ордеров, торговля не остановлена. Репозиторий чист. #### Точное условие следующего logic fix 1. Radar: дождаться минимум **20 post-filter live terminal trades**, минимум **72ч** покрытия и завершённой paper evaluation для exact matched cohort. Менять signal/regime только если matched paper/live cohort показывает PF `<1` либо статистически устойчивую live/paper divergence; не применять daily stop/cooldown. 2. Grid: накопить минимум **50 closes после bf7a1ba5** и минимум **5 tail/risk exits** с `manual_action`, затем повторить symbol+regime attribution. Текущие `n=13`, PF `1.211` не дают основания для нового патча.
Author
Owner

Автономный цикл оптимизации — 2026-07-23 03:13 UTC

Решение цикла: новый tuning-патч не выпускаю: post-fix cohort ещё ниже заранее установленного порога, а два новых локальных Grid stop являются ожидаемым bounded-risk поведением, а не доказанным дефектом. Стратегии, budget, paper/live и защитные ордера не менялись.

GitNexus: repo arnold-trader-app, запросы по PnL attribution / exchange_sl_tp_close / local stop path. Индекс совпадает с production HEAD c2ad11d5; live source, PostgreSQL, PM2 и Bybit использованы как источник истины.

Live PnL, закрытые реальные сделки

net = pnl - fee_usd; WR/PF рассчитаны по gross PnL. 9 исторических exchange_sl_tp_close связаны ранее подтверждённым order lifecycle с grid_bidir_aggressive; они маппятся в Grid, а не считаются стратегией. Legacy futures_monitor исключён из ranking. После owner-first attribution fix 43063a83 новых generic-close строк нет (exchange_sl_tp_close=0, syncer_imported=0, futures_monitor=0).

Окно / стратегия n WR GP GL PF avg/med win avg/med loss fees net
24ч Grid aggressive 19 57.9% +1.6394 -4.4762 0.366 +0.1490 / +0.0287 -0.5595 / -0.5631 0.1000 -2.9368
24ч Radar 3 0% 0 -9.1730 -3.0577 / -3.0628 0.2282 -9.4013
7д Grid aggressive 234 85.9% +17.3470 -38.5947 0.449 +0.0863 / +0.0435 -1.1695 / -0.2492 1.4115 -22.6593
7д Radar 18 11.1% +37.4314 -59.4136 0.630 +18.7157 / +18.7157 -3.7134 / -3.2973 0.2282 -22.2104
30д Grid aggressive 1010 90.2% +102.0402 -186.8417 0.546 +0.1120 / +0.0676 -1.8873 / -0.0561 6.6737 -91.4752
30д Grid conservative 13 84.6% +3.2523 -0.2513 12.942 +0.2957 / +0.2164 -0.1257 / -0.1257 0.2590 +2.7420
30д Radar 18 11.1% +37.4314 -59.4136 0.630 +18.7157 / +18.7157 -3.7134 / -3.2973 0.2282 -22.2104

Symbol cohorts:

  • 24ч Grid: SOL n=13, PF=.587, net=-1.2059; AVAX n=3, PF=.019, net=-1.1978; DOGE n=3, PF=.056, net=-.5331.
  • 24ч Radar: BILL -3.2910, MORPHO -3.0978, LAB -3.0125.
  • 7д Grid: XRP n=45, PF=.265, net=-11.0084; AVAX n=73, PF=.453, net=-7.2420; DOGE n=51, PF=.460, net=-4.7530; SOL n=65, PF=1.209, net=+.3442.
  • 30д Grid aggressive: AVAX n=286, PF=.492, net=-43.9616; DOGE n=188, PF=.463, net=-19.9713; XRP n=190, PF=.502, net=-19.3391; SOL n=339, PF=.875, net=-5.8529; HYPE n=6, PF=.067, net=-1.5571; ETH n=1, net=-.7932.
  • 30д Grid conservative: ETH n=10, PF=25.512, net=+2.1113; BTC n=3, PF=5.582, net=+.6307.

Recent cohorts после последних logic fixes

  • Grid после bf7a1ba5 (counter-trend expander cancel, 2026-07-22 09:30 UTC; 17.7ч): n=15, WR 66.7%, GP +1.6162, GL -3.2586, PF 0.496, fees 0.0947, net -1.7371. По символам: SOL n=12, PF=.588, net=-1.1991; AVAX n=1, net=-.5655; DOGE n=2, net=+.0276.
  • В recent Grid cohort только 2 фактических local-stop выхода, оба SOL long: trigger -$0.577 при лимите $0.544 и trigger -$1.416 при лимите $1.356; observed regimes bullish/neutral. Exchange closes дали -$0.689 и -$1.770 с учётом движения до исполнения. Код корректно применил 0.5% × position notional, записал manual_action, отменил same-side resting entries и установил re-entry latch. Это ожидаемый per-trade risk exit; двух событий недостаточно для изменения signal/sizing без hindsight.
  • После bf7a1ba5 наблюдались только 3 successful counter-trend closes против требуемых 10 opportunities; нет достаточной выборки для оценки retained frequency/churn regression.
  • Radar после фильтра 6583df1c (2026-07-21 14:17 UTC; 36.9ч): в DB n=4, все native-stop loss, net -12.7179; это ниже порога 20 terminal trades и 72ч. Fat-tail paper cohort из прошлого цикла остаётся против слепого фильтра по четырём подряд stop.

Production truth

  • Production HEAD=origin/master=health.version c2ad11d5, checkout clean.
  • Canonical post-deploy-validate.sh: ALL CHECKS PASSED; API/DB/dependencies/grid stop-state healthy, is_stopped=false.
  • PM2 API/daemons/Telegram online под europatech; daemon health ранее подтверждён 18/18 threads, в текущем хвосте ошибок нет.
  • Bybit: equity $150.26, available $102.06, unrealized +$14.53; 3 Radar shorts (B2/ERA/UB), DB и exchange совпадают; ровно 3 reduce-only защитных ордера, по одному на позицию. Торговля активна.

Точное условие следующего logic fix

  1. Grid: минимум 50 closes после bf7a1ba5, минимум 5 local/tail exits с manual_action и повторяемой symbol+side+regime концентрацией; либо раньше — воспроизводимый policy breach (stop/re-entry latch не сработал, same-side expander пережил close, либо loss превысил лимит не из-за измеренной market/slippage причины).
  2. Counter-trend path: минимум 10 opportunities с подтверждённым отсутствием same-side expander после close и сохранённой обычной fill frequency.
  3. Radar: минимум 20 post-filter terminal trades, минимум 72ч, exact matched paper evaluation; менять signal/regime только при PF <1 или устойчивой live/paper divergence.
### Автономный цикл оптимизации — 2026-07-23 03:13 UTC **Решение цикла:** новый tuning-патч не выпускаю: post-fix cohort ещё ниже заранее установленного порога, а два новых локальных Grid stop являются ожидаемым bounded-risk поведением, а не доказанным дефектом. Стратегии, budget, paper/live и защитные ордера не менялись. GitNexus: repo `arnold-trader-app`, запросы по PnL attribution / `exchange_sl_tp_close` / local stop path. Индекс совпадает с production HEAD `c2ad11d5`; live source, PostgreSQL, PM2 и Bybit использованы как источник истины. #### Live PnL, закрытые реальные сделки `net = pnl - fee_usd`; WR/PF рассчитаны по gross PnL. 9 исторических `exchange_sl_tp_close` связаны ранее подтверждённым order lifecycle с `grid_bidir_aggressive`; они маппятся в Grid, а не считаются стратегией. Legacy `futures_monitor` исключён из ranking. После owner-first attribution fix `43063a83` новых generic-close строк нет (`exchange_sl_tp_close=0`, `syncer_imported=0`, `futures_monitor=0`). | Окно / стратегия | n | WR | GP | GL | PF | avg/med win | avg/med loss | fees | net | |---|---:|---:|---:|---:|---:|---:|---:|---:|---:| | 24ч Grid aggressive | 19 | 57.9% | +1.6394 | -4.4762 | 0.366 | +0.1490 / +0.0287 | -0.5595 / -0.5631 | 0.1000 | -2.9368 | | 24ч Radar | 3 | 0% | 0 | -9.1730 | — | — | -3.0577 / -3.0628 | 0.2282 | -9.4013 | | 7д Grid aggressive | 234 | 85.9% | +17.3470 | -38.5947 | 0.449 | +0.0863 / +0.0435 | -1.1695 / -0.2492 | 1.4115 | -22.6593 | | 7д Radar | 18 | 11.1% | +37.4314 | -59.4136 | 0.630 | +18.7157 / +18.7157 | -3.7134 / -3.2973 | 0.2282 | -22.2104 | | 30д Grid aggressive | 1010 | 90.2% | +102.0402 | -186.8417 | 0.546 | +0.1120 / +0.0676 | -1.8873 / -0.0561 | 6.6737 | -91.4752 | | 30д Grid conservative | 13 | 84.6% | +3.2523 | -0.2513 | 12.942 | +0.2957 / +0.2164 | -0.1257 / -0.1257 | 0.2590 | +2.7420 | | 30д Radar | 18 | 11.1% | +37.4314 | -59.4136 | 0.630 | +18.7157 / +18.7157 | -3.7134 / -3.2973 | 0.2282 | -22.2104 | Symbol cohorts: - 24ч Grid: SOL `n=13, PF=.587, net=-1.2059`; AVAX `n=3, PF=.019, net=-1.1978`; DOGE `n=3, PF=.056, net=-.5331`. - 24ч Radar: BILL `-3.2910`, MORPHO `-3.0978`, LAB `-3.0125`. - 7д Grid: XRP `n=45, PF=.265, net=-11.0084`; AVAX `n=73, PF=.453, net=-7.2420`; DOGE `n=51, PF=.460, net=-4.7530`; SOL `n=65, PF=1.209, net=+.3442`. - 30д Grid aggressive: AVAX `n=286, PF=.492, net=-43.9616`; DOGE `n=188, PF=.463, net=-19.9713`; XRP `n=190, PF=.502, net=-19.3391`; SOL `n=339, PF=.875, net=-5.8529`; HYPE `n=6, PF=.067, net=-1.5571`; ETH `n=1, net=-.7932`. - 30д Grid conservative: ETH `n=10, PF=25.512, net=+2.1113`; BTC `n=3, PF=5.582, net=+.6307`. #### Recent cohorts после последних logic fixes - Grid после `bf7a1ba5` (counter-trend expander cancel, 2026-07-22 09:30 UTC; 17.7ч): `n=15`, WR `66.7%`, GP `+1.6162`, GL `-3.2586`, PF `0.496`, fees `0.0947`, net `-1.7371`. По символам: SOL `n=12, PF=.588, net=-1.1991`; AVAX `n=1, net=-.5655`; DOGE `n=2, net=+.0276`. - В recent Grid cohort только 2 фактических local-stop выхода, оба SOL long: trigger `-$0.577` при лимите `$0.544` и trigger `-$1.416` при лимите `$1.356`; observed regimes bullish/neutral. Exchange closes дали `-$0.689` и `-$1.770` с учётом движения до исполнения. Код корректно применил `0.5% × position notional`, записал `manual_action`, отменил same-side resting entries и установил re-entry latch. Это ожидаемый per-trade risk exit; двух событий недостаточно для изменения signal/sizing без hindsight. - После `bf7a1ba5` наблюдались только 3 successful counter-trend closes против требуемых 10 opportunities; нет достаточной выборки для оценки retained frequency/churn regression. - Radar после фильтра `6583df1c` (2026-07-21 14:17 UTC; 36.9ч): в DB `n=4`, все native-stop loss, net `-12.7179`; это ниже порога 20 terminal trades и 72ч. Fat-tail paper cohort из прошлого цикла остаётся против слепого фильтра по четырём подряд stop. #### Production truth - Production `HEAD=origin/master=health.version c2ad11d5`, checkout clean. - Canonical `post-deploy-validate.sh`: `ALL CHECKS PASSED`; API/DB/dependencies/grid stop-state healthy, `is_stopped=false`. - PM2 API/daemons/Telegram online под `europatech`; daemon health ранее подтверждён 18/18 threads, в текущем хвосте ошибок нет. - Bybit: equity `$150.26`, available `$102.06`, unrealized `+$14.53`; 3 Radar shorts (B2/ERA/UB), DB и exchange совпадают; ровно 3 reduce-only защитных ордера, по одному на позицию. Торговля активна. #### Точное условие следующего logic fix 1. Grid: минимум **50 closes после `bf7a1ba5`**, минимум **5 local/tail exits** с `manual_action` и повторяемой symbol+side+regime концентрацией; либо раньше — воспроизводимый policy breach (stop/re-entry latch не сработал, same-side expander пережил close, либо loss превысил лимит не из-за измеренной market/slippage причины). 2. Counter-trend path: минимум **10 opportunities** с подтверждённым отсутствием same-side expander после close и сохранённой обычной fill frequency. 3. Radar: минимум **20 post-filter terminal trades**, минимум **72ч**, exact matched paper evaluation; менять signal/regime только при PF `<1` или устойчивой live/paper divergence.
Author
Owner

Автономный цикл оптимизации — 2026-07-23 09:08 UTC

Решение: новый tuning-патч не выпускаю. После последних logic/attribution fixes выборка остаётся ниже причинного порога; текущие данные не отделяют дефект сигнала от ожидаемой fat-tail дисперсии. Стратегии, budget, paper/live, kill-switch и native stops не менялись.

GitNexus: repo arnold-trader-app, запрос по PnL attribution / generic closes / recent cohorts. Индекс на 1 commit позади production HEAD, поэтому использован только как навигация; source of truth — live HEAD 0cece981, PostgreSQL, PM2, runtime logs и Bybit.

Live PnL закрытых реальных сделок

net = gross pnl - fee_usd; WR/PF по gross PnL. Девять исторических exchange_sl_tp_close уже подтверждены order lifecycle как Grid и маппятся в grid_bidir_aggressive; legacy futures_monitor и manual labels исключены из strategy ranking. syncer_imported как отдельной стратегии не считался.

Окно / стратегия n WR GP GL PF avg/med win avg/med loss fees net
24ч Grid aggressive 15 66.7% +1.6162 -3.2585 0.496 +0.1616/+0.0320 -0.6517/-0.5655 0.0947 -1.7370
24ч Radar 5 0% 0 -22.7960 -4.5592/-3.0978 0.2282 -23.0242
7д Grid aggressive 225 86.7% +17.1469 -22.2815 0.770 +0.0879/+0.0442 -0.7427/-0.1600 1.3837 -6.5183
7д Radar 20 10.0% +37.4314 -73.0365 0.513 +18.7157/+18.7157 -4.0576/-3.2973 0.2282 -35.8333
30д Grid aggressive 1010 90.2% +102.0402 -186.8417 0.546 +0.1120/+0.0676 -1.8873/-0.0561 6.6737 -91.4752
30д Grid conservative 13 84.6% +3.2523 -0.2513 12.942 +0.2957/+0.2164 -0.1257/-0.1257 0.2590 +2.7420
30д Radar 20 10.0% +37.4314 -73.0365 0.513 +18.7157/+18.7157 -4.0576/-3.2973 0.2282 -35.8333

Symbol cohorts:

  • 24ч Grid: SOL n=12, PF=.588, net=-1.1991; AVAX n=1, net=-.5655; DOGE n=2, PF=∞, net=+.0276.
  • 24ч Radar: BILL -3.2910, ERA -10.4401, LAB -3.0125, MORPHO -3.0978, UB -3.1828.
  • 7д Grid: AVAX n=73, PF=.453, net=-7.2420; DOGE n=50, PF=1.763, net=+1.4859; SOL n=58, PF=1.295, net=+.5503; XRP n=44, PF=.784, net=-1.3125.
  • 30д Grid: AVAX n=286, PF=.492, net=-43.9616; DOGE n=188, PF=.463, net=-19.9713; XRP n=190, PF=.502, net=-19.3391; SOL n=339, PF=.875, net=-5.8529; HYPE n=6, PF=.067, net=-1.5571; ETH n=1, net=-.7932.
  • 30д conservative: ETH n=10, PF=25.512, net=+2.1113; BTC n=3, PF=5.582, net=+.6307.
  • Radar 7д/30д: 20 terminal trades across 16 symbols; HEMI winner +30.2452 and AVAAI cohort +3.7269 do not compensate recent stops. Это fat-tail профиль, поэтому ограничивать количество сделок/вводить дневную паузу нельзя.

Recent/post-fix evidence

  • Grid после bf7a1ba5 (2026-07-22 09:30 UTC): n=15, PF .496, net -1.7370; только 2 local-stop выхода и 3 counter-trend opportunities — ниже условий 50 closes / 5 tail exits / 10 opportunities. Re-entry latches сохранены по symbol+side+regime; SOL продолжает controlled short grid, AVAX/DOGE не переоткрываются в том же neutral regime. Это сохраняет signal-based recovery и не является time/quantity halt.
  • Radar после signal filter 6583df1c (2026-07-21 14:17 UTC): n=6, все stops, net -26.3409; прошло <72ч и нет 20 matched post-filter terminal events. Последний attribution release 0cece981 задеплоен в 08:19 UTC; post-release закрытий пока 0, поэтому корректность новой Radar external-profit/fee attribution ещё не имеет live close cohort.
  • Current source для ghost/disappeared closes использует owner-first strategy, Bybit closedPnl + cumExecFee gross convention и отдельный fee_usd; до нового post-release close менять этот путь снова без evidence нельзя.

Production verification

  • HEAD=origin/master=health.version=0cece981, repository clean.
  • Canonical scripts/ops/post-deploy-validate.sh под europatech: ALL CHECKS PASSED.
  • PM2 API/daemons/Telegram online под europatech; API/DB healthy, grid is_stopped=false.
  • Bybit truth: открыты managed Radar B2 short и Grid SOL short; 7 open orders, включая native reduce-only protection B2 и 3 reduce-only Grid closers. DB sync устранил краткий SOL snapshot drift (0.3→0.4) в следующем минутном цикле без SUM. Торговля активна.

Точное условие следующего фикса

  1. Grid: дождаться минимум 50 closes после bf7a1ba5, минимум 5 local/tail exits с повторяемой symbol+side+regime концентрацией и 10 counter-trend opportunities; раньше менять только при воспроизводимом breach stop/re-entry/expander policy.
  2. Radar: минимум 20 post-filter terminal trades и 72ч, matched live-vs-paper по (alert_ts, symbol); signal/regime fix только при PF <1 одновременно с устойчивой live/paper divergence или повторяемым ex-ante признаком проигрышного cohort.
  3. Attribution: первый post-0cece981 external/native close обязан иметь economic owner, origin_strategy, authoritative fee и gross/net parity с Bybit; любой generic owner или zero-fee при ненулевом cumExecFee — немедленный attribution fix.
### Автономный цикл оптимизации — 2026-07-23 09:08 UTC **Решение:** новый tuning-патч не выпускаю. После последних logic/attribution fixes выборка остаётся ниже причинного порога; текущие данные не отделяют дефект сигнала от ожидаемой fat-tail дисперсии. Стратегии, budget, paper/live, kill-switch и native stops не менялись. GitNexus: repo `arnold-trader-app`, запрос по PnL attribution / generic closes / recent cohorts. Индекс на 1 commit позади production HEAD, поэтому использован только как навигация; source of truth — live HEAD `0cece981`, PostgreSQL, PM2, runtime logs и Bybit. #### Live PnL закрытых реальных сделок `net = gross pnl - fee_usd`; WR/PF по gross PnL. Девять исторических `exchange_sl_tp_close` уже подтверждены order lifecycle как Grid и маппятся в `grid_bidir_aggressive`; legacy `futures_monitor` и manual labels исключены из strategy ranking. `syncer_imported` как отдельной стратегии не считался. | Окно / стратегия | n | WR | GP | GL | PF | avg/med win | avg/med loss | fees | net | |---|---:|---:|---:|---:|---:|---:|---:|---:|---:| | 24ч Grid aggressive | 15 | 66.7% | +1.6162 | -3.2585 | 0.496 | +0.1616/+0.0320 | -0.6517/-0.5655 | 0.0947 | -1.7370 | | 24ч Radar | 5 | 0% | 0 | -22.7960 | — | — | -4.5592/-3.0978 | 0.2282 | -23.0242 | | 7д Grid aggressive | 225 | 86.7% | +17.1469 | -22.2815 | 0.770 | +0.0879/+0.0442 | -0.7427/-0.1600 | 1.3837 | -6.5183 | | 7д Radar | 20 | 10.0% | +37.4314 | -73.0365 | 0.513 | +18.7157/+18.7157 | -4.0576/-3.2973 | 0.2282 | -35.8333 | | 30д Grid aggressive | 1010 | 90.2% | +102.0402 | -186.8417 | 0.546 | +0.1120/+0.0676 | -1.8873/-0.0561 | 6.6737 | -91.4752 | | 30д Grid conservative | 13 | 84.6% | +3.2523 | -0.2513 | 12.942 | +0.2957/+0.2164 | -0.1257/-0.1257 | 0.2590 | +2.7420 | | 30д Radar | 20 | 10.0% | +37.4314 | -73.0365 | 0.513 | +18.7157/+18.7157 | -4.0576/-3.2973 | 0.2282 | -35.8333 | Symbol cohorts: - 24ч Grid: SOL `n=12, PF=.588, net=-1.1991`; AVAX `n=1, net=-.5655`; DOGE `n=2, PF=∞, net=+.0276`. - 24ч Radar: BILL `-3.2910`, ERA `-10.4401`, LAB `-3.0125`, MORPHO `-3.0978`, UB `-3.1828`. - 7д Grid: AVAX `n=73, PF=.453, net=-7.2420`; DOGE `n=50, PF=1.763, net=+1.4859`; SOL `n=58, PF=1.295, net=+.5503`; XRP `n=44, PF=.784, net=-1.3125`. - 30д Grid: AVAX `n=286, PF=.492, net=-43.9616`; DOGE `n=188, PF=.463, net=-19.9713`; XRP `n=190, PF=.502, net=-19.3391`; SOL `n=339, PF=.875, net=-5.8529`; HYPE `n=6, PF=.067, net=-1.5571`; ETH `n=1, net=-.7932`. - 30д conservative: ETH `n=10, PF=25.512, net=+2.1113`; BTC `n=3, PF=5.582, net=+.6307`. - Radar 7д/30д: 20 terminal trades across 16 symbols; HEMI winner `+30.2452` and AVAAI cohort `+3.7269` do not compensate recent stops. Это fat-tail профиль, поэтому ограничивать количество сделок/вводить дневную паузу нельзя. #### Recent/post-fix evidence - Grid после `bf7a1ba5` (2026-07-22 09:30 UTC): `n=15`, PF `.496`, net `-1.7370`; только 2 local-stop выхода и 3 counter-trend opportunities — ниже условий `50 closes / 5 tail exits / 10 opportunities`. Re-entry latches сохранены по symbol+side+regime; SOL продолжает controlled short grid, AVAX/DOGE не переоткрываются в том же neutral regime. Это сохраняет signal-based recovery и не является time/quantity halt. - Radar после signal filter `6583df1c` (2026-07-21 14:17 UTC): `n=6`, все stops, net `-26.3409`; прошло <72ч и нет 20 matched post-filter terminal events. Последний attribution release `0cece981` задеплоен в 08:19 UTC; post-release закрытий пока 0, поэтому корректность новой Radar external-profit/fee attribution ещё не имеет live close cohort. - Current source для ghost/disappeared closes использует owner-first strategy, Bybit `closedPnl + cumExecFee` gross convention и отдельный `fee_usd`; до нового post-release close менять этот путь снова без evidence нельзя. #### Production verification - `HEAD=origin/master=health.version=0cece981`, repository clean. - Canonical `scripts/ops/post-deploy-validate.sh` под `europatech`: `ALL CHECKS PASSED`. - PM2 API/daemons/Telegram online под `europatech`; API/DB healthy, grid `is_stopped=false`. - Bybit truth: открыты managed Radar B2 short и Grid SOL short; 7 open orders, включая native reduce-only protection B2 и 3 reduce-only Grid closers. DB sync устранил краткий SOL snapshot drift (`0.3→0.4`) в следующем минутном цикле без SUM. Торговля активна. #### Точное условие следующего фикса 1. Grid: дождаться минимум `50` closes после `bf7a1ba5`, минимум `5` local/tail exits с повторяемой symbol+side+regime концентрацией и `10` counter-trend opportunities; раньше менять только при воспроизводимом breach stop/re-entry/expander policy. 2. Radar: минимум `20` post-filter terminal trades и `72ч`, matched live-vs-paper по `(alert_ts, symbol)`; signal/regime fix только при PF `<1` одновременно с устойчивой live/paper divergence или повторяемым ex-ante признаком проигрышного cohort. 3. Attribution: первый post-`0cece981` external/native close обязан иметь economic owner, `origin_strategy`, authoritative fee и gross/net parity с Bybit; любой generic owner или zero-fee при ненулевом `cumExecFee` — немедленный attribution fix.
Author
Owner

Автономный цикл оптимизации — 2026-07-23 15:10 UTC

Исправлен один доказанный дефект: историческая атрибуция прибыльных Radar-exit.

Три закрытия Radar были записаны как manual_close, хотя live-журнал однозначно связывает их с Radar по symbol + qty + alert_ts и времени закрытия (лаг 81–220 сек): YBUSDT, B2USDT, WLFIUSDT. Кодовый контракт уже исправлен и развернут PR #539, production SHA e06f3fbe; выполнен точечный DB-backfill строк 47948/48251/48265 в radar_live с origin_strategy, close_strategy, exit_reason, radar_alert_ts. До изменения сохранена защищённая резервная копия.

PnL после исправления атрибуции (gross P/L, fees отдельно):

Окно Стратегия n WR Gross profit Gross loss PF Fees Net
24ч Grid aggressive 33 51.5% +2.270 -3.176 0.715 0.129 -1.034
24ч Radar live 6 33.3% +51.133 -19.733 2.591 0.137 +31.263
Grid aggressive 403 47.4% +17.041 -19.200 0.888 2.509 -4.668
Radar live 23 21.7% +100.308 -73.037 1.373 0.441 +26.830
30д Grid aggressive 1526 60.2% +102.645 -183.776 0.559 9.829 -90.960
30д Grid conservative 28 39.3% +3.252 -0.251 12.942 0.469 +2.532
30д* Radar live 23 21.7% +100.308 -73.037 1.373 0.441 +26.830

* Radar live существует менее 7 дней, поэтому 7д/30д cohort совпадает.

Recent cohorts:

  • Radar после signal-quality fix fd527c56 (2026-07-21 14:28 UTC): n=8, WR 25.0%, PF 1.958, fees 0.365, net +24.655; retained frequency сохранена — 8 закрытий примерно за 48 часов.
  • Grid после local-stop fix 8f84147a (2026-07-21 18:59 UTC): n=56, WR 39.3%, PF 0.471, fees 0.196, net -2.860. Следующий анализ — tail-loss по exact metadata.manual_action, symbol+side и режиму; без stop-limit/паузы/budget=0.

Атрибуция: 9 старых exchange_sl_tp_close за 7д остаются unresolved historical rows; последняя — 2026-07-21 11:22 UTC, то есть до owner-first fix. После исправления новых generic unresolved closes не выявлено.

Production truth: HEAD == origin/master == e06f3fbe, /api/health ok/database ok, корректный europatech PM2 online, Grid active и размещает реальные лимитные ордера; Bybit: equity 180.53, открытых позиций 0, открытых grid-ордеров 8. Репозиторий чистый, GitNexus detect-changes: 0.

### Автономный цикл оптимизации — 2026-07-23 15:10 UTC **Исправлен один доказанный дефект: историческая атрибуция прибыльных Radar-exit.** Три закрытия Radar были записаны как `manual_close`, хотя live-журнал однозначно связывает их с Radar по `symbol + qty + alert_ts` и времени закрытия (лаг 81–220 сек): `YBUSDT`, `B2USDT`, `WLFIUSDT`. Кодовый контракт уже исправлен и развернут PR #539, production SHA `e06f3fbe`; выполнен точечный DB-backfill строк `47948/48251/48265` в `radar_live` с `origin_strategy`, `close_strategy`, `exit_reason`, `radar_alert_ts`. До изменения сохранена защищённая резервная копия. **PnL после исправления атрибуции (gross P/L, fees отдельно):** | Окно | Стратегия | n | WR | Gross profit | Gross loss | PF | Fees | Net | |---|---|---:|---:|---:|---:|---:|---:|---:| | 24ч | Grid aggressive | 33 | 51.5% | +2.270 | -3.176 | 0.715 | 0.129 | -1.034 | | 24ч | Radar live | 6 | 33.3% | +51.133 | -19.733 | 2.591 | 0.137 | +31.263 | | 7д | Grid aggressive | 403 | 47.4% | +17.041 | -19.200 | 0.888 | 2.509 | -4.668 | | 7д | Radar live | 23 | 21.7% | +100.308 | -73.037 | 1.373 | 0.441 | +26.830 | | 30д | Grid aggressive | 1526 | 60.2% | +102.645 | -183.776 | 0.559 | 9.829 | -90.960 | | 30д | Grid conservative | 28 | 39.3% | +3.252 | -0.251 | 12.942 | 0.469 | +2.532 | | 30д* | Radar live | 23 | 21.7% | +100.308 | -73.037 | 1.373 | 0.441 | +26.830 | `*` Radar live существует менее 7 дней, поэтому 7д/30д cohort совпадает. **Recent cohorts:** - Radar после signal-quality fix `fd527c56` (2026-07-21 14:28 UTC): `n=8`, WR `25.0%`, PF `1.958`, fees `0.365`, net `+24.655`; retained frequency сохранена — 8 закрытий примерно за 48 часов. - Grid после local-stop fix `8f84147a` (2026-07-21 18:59 UTC): `n=56`, WR `39.3%`, PF `0.471`, fees `0.196`, net `-2.860`. Следующий анализ — tail-loss по exact `metadata.manual_action`, symbol+side и режиму; без stop-limit/паузы/budget=0. **Атрибуция:** 9 старых `exchange_sl_tp_close` за 7д остаются unresolved historical rows; последняя — 2026-07-21 11:22 UTC, то есть до owner-first fix. После исправления новых generic unresolved closes не выявлено. **Production truth:** `HEAD == origin/master == e06f3fbe`, `/api/health` ok/database ok, корректный europatech PM2 online, Grid active и размещает реальные лимитные ордера; Bybit: equity `180.53`, открытых позиций `0`, открытых grid-ордеров `8`. Репозиторий чистый, GitNexus detect-changes: 0.
Author
Owner

Автономный цикл оптимизации — 2026-07-23 21:05 UTC

Решение: новый logic/tuning patch не выпускаю: после текущего production restart выборка закрытий слишком мала для причинного изменения, а Radar после последнего owner-attribution release ещё не имеет ни одного нового terminal close. Стратегии, budget, paper/live, kill-switch и native stops не менялись.

GitNexus: repo arnold-trader-app, запрос continuous strategy optimization live PnL attribution exchange_sl_tp_close syncer_imported recent cohort logic fix; индекс на 1 commit позади production HEAD, поэтому использован как навигация. Источник истины — live source e06f3fbe, PostgreSQL, europatech PM2, runtime logs и Bybit.

Live PnL закрытых реальных сделок

net = pnl - fee_usd; generic exchange_sl_tp_close, syncer_imported, legacy futures_monitor и manual labels не считались стратегиями без owner linkage.

Окно / стратегия n WR GP GL PF avg/med win avg/med loss fees net
24ч Grid aggressive 15 80.0% +0.7182 -2.4863 0.289 +0.0598/+0.0504 -0.8288/-0.5628 0.0338 -1.7681
24ч Radar live 4 50.0% +50.9964 -13.6229 3.743 +25.4982/+25.4982 -6.8115/-6.8115 0.1367 +37.3735
7д Grid aggressive 192 88.5% +14.9684 -19.2071 0.779 +0.0880/+0.0445 -0.8730/-0.4050 1.2142 -4.2387
7д Radar live 23 21.7% +100.0950 -73.2648 1.366 +20.0190/+11.6672 -4.0703/-3.3039 0.4410 +26.8303
30д Grid aggressive 1014 90.4% +96.1294 -183.9508 0.523 +0.1048/+0.0608 -1.8964/-0.0558 6.7075 -87.8214
30д Grid conservative 13 84.6% +3.0475 -0.3055 9.975 +0.2770/+0.2101 -0.1528/-0.1528 0.2590 +2.7420
30д Radar live 23 21.7% +100.0950 -73.2648 1.366 +20.0190/+11.6672 -4.0703/-3.3039 0.4410 +26.8303

Крупные symbol cohorts: Grid 7д — AVAX n=59, PF=.450, net=-5.1897, XRP n=40, PF=.750, net=-1.2796, SOL n=52, PF=1.226, net=+.6836, DOGE n=41, PF=1.944, net=+1.5470. Grid 30д — AVAX -41.2609, XRP -19.2973, DOGE -19.4566, SOL -5.4562. Radar 7д/30д остаётся fat-tail cohort: 5 winners из 23, PF 1.366, net +26.8303; ограничивать частоту по серии стопов нельзя.

Recent cohort и атрибуция

  • Точный production cohort после запуска runtime e06f3fbe в 14:47 UTC: Grid n=4 realized closes — SOL n=2, net=+0.1208; XRP n=2, net=-0.5478 из-за одного bounded local-stop -0.5628. Это меньше порога и не доказывает новый signal/sizing defect.
  • Radar после этого запуска: n=0 terminal closes. Два прибыльных manual-close backfill (B2, WLFI) произошли до запуска и подтверждают исправленную историческую атрибуцию, но не являются post-release verification cohort.
  • За последние 7д Grid loss attribution: local-stop n=3, net=-3.0220; counter-trend close n=2, net=-0.2510; exchange/external reconciliation n=6, net=-1.7452. Старые unclassified exits нельзя использовать для нового regime tuning без ex-ante metadata.
  • После owner-first fixes новых exchange_sl_tp_close/syncer_imported строк нет; 9 generic closes остаются только историческими, последняя 2026-07-21 11:22 UTC.

Runtime / exchange truth

Production e06f3fbe, API/database healthy, europatech PM2 online, daemon 18/18 threads alive. Bybit: equity $180.30, available $156.58; managed shorts XRP 46.6 и SOL 0.3, unrealized около -$0.22; 14 grid orders — по 4 expanding sells и 3 reduce-only buys на каждом символе. AVAX/DOGE fresh grids корректно отклоняются bearish regime gate; торговля активна.

Рабочее дерево сейчас занято отдельным агентом и содержит scoped изменения risk cancel-orders; origin/master уже опережает production на PR #540 по stale protection cleanup. В этот цикл shared worktree, merge/deploy/restart не трогались.

Точное условие следующего logic fix: минимум 30 post-runtime owner-attributed Grid закрытий, включая >=5 loss exits с заполненными manual_action + symbol + side + regime, и повторяемая ex-ante концентрация с PF <1 при сохранённой fill frequency; либо минимум 20 post-filter Radar terminal trades за >=72ч с exact (alert_ts,symbol) live/paper matching и устойчивым PF <1/divergence. Раньше допустим только повторяемый tail-loss по одному и тому же order path с полной exchange timeline.

### Автономный цикл оптимизации — 2026-07-23 21:05 UTC **Решение:** новый logic/tuning patch не выпускаю: после текущего production restart выборка закрытий слишком мала для причинного изменения, а Radar после последнего owner-attribution release ещё не имеет ни одного нового terminal close. Стратегии, budget, paper/live, kill-switch и native stops не менялись. GitNexus: repo `arnold-trader-app`, запрос `continuous strategy optimization live PnL attribution exchange_sl_tp_close syncer_imported recent cohort logic fix`; индекс на 1 commit позади production HEAD, поэтому использован как навигация. Источник истины — live source `e06f3fbe`, PostgreSQL, europatech PM2, runtime logs и Bybit. #### Live PnL закрытых реальных сделок `net = pnl - fee_usd`; generic `exchange_sl_tp_close`, `syncer_imported`, legacy `futures_monitor` и manual labels не считались стратегиями без owner linkage. | Окно / стратегия | n | WR | GP | GL | PF | avg/med win | avg/med loss | fees | net | |---|---:|---:|---:|---:|---:|---:|---:|---:|---:| | 24ч Grid aggressive | 15 | 80.0% | +0.7182 | -2.4863 | 0.289 | +0.0598/+0.0504 | -0.8288/-0.5628 | 0.0338 | -1.7681 | | 24ч Radar live | 4 | 50.0% | +50.9964 | -13.6229 | 3.743 | +25.4982/+25.4982 | -6.8115/-6.8115 | 0.1367 | +37.3735 | | 7д Grid aggressive | 192 | 88.5% | +14.9684 | -19.2071 | 0.779 | +0.0880/+0.0445 | -0.8730/-0.4050 | 1.2142 | -4.2387 | | 7д Radar live | 23 | 21.7% | +100.0950 | -73.2648 | 1.366 | +20.0190/+11.6672 | -4.0703/-3.3039 | 0.4410 | +26.8303 | | 30д Grid aggressive | 1014 | 90.4% | +96.1294 | -183.9508 | 0.523 | +0.1048/+0.0608 | -1.8964/-0.0558 | 6.7075 | -87.8214 | | 30д Grid conservative | 13 | 84.6% | +3.0475 | -0.3055 | 9.975 | +0.2770/+0.2101 | -0.1528/-0.1528 | 0.2590 | +2.7420 | | 30д Radar live | 23 | 21.7% | +100.0950 | -73.2648 | 1.366 | +20.0190/+11.6672 | -4.0703/-3.3039 | 0.4410 | +26.8303 | Крупные symbol cohorts: Grid 7д — AVAX `n=59, PF=.450, net=-5.1897`, XRP `n=40, PF=.750, net=-1.2796`, SOL `n=52, PF=1.226, net=+.6836`, DOGE `n=41, PF=1.944, net=+1.5470`. Grid 30д — AVAX `-41.2609`, XRP `-19.2973`, DOGE `-19.4566`, SOL `-5.4562`. Radar 7д/30д остаётся fat-tail cohort: 5 winners из 23, PF `1.366`, net `+26.8303`; ограничивать частоту по серии стопов нельзя. #### Recent cohort и атрибуция - Точный production cohort после запуска runtime `e06f3fbe` в 14:47 UTC: Grid `n=4` realized closes — SOL `n=2, net=+0.1208`; XRP `n=2, net=-0.5478` из-за одного bounded local-stop `-0.5628`. Это меньше порога и не доказывает новый signal/sizing defect. - Radar после этого запуска: `n=0` terminal closes. Два прибыльных manual-close backfill (`B2`, `WLFI`) произошли до запуска и подтверждают исправленную историческую атрибуцию, но не являются post-release verification cohort. - За последние 7д Grid loss attribution: local-stop `n=3, net=-3.0220`; counter-trend close `n=2, net=-0.2510`; exchange/external reconciliation `n=6, net=-1.7452`. Старые unclassified exits нельзя использовать для нового regime tuning без ex-ante metadata. - После owner-first fixes новых `exchange_sl_tp_close`/`syncer_imported` строк нет; 9 generic closes остаются только историческими, последняя 2026-07-21 11:22 UTC. #### Runtime / exchange truth Production `e06f3fbe`, API/database healthy, europatech PM2 online, daemon `18/18` threads alive. Bybit: equity `$180.30`, available `$156.58`; managed shorts XRP `46.6` и SOL `0.3`, unrealized около `-$0.22`; 14 grid orders — по 4 expanding sells и 3 reduce-only buys на каждом символе. AVAX/DOGE fresh grids корректно отклоняются bearish regime gate; торговля активна. Рабочее дерево сейчас занято отдельным агентом и содержит scoped изменения risk cancel-orders; `origin/master` уже опережает production на PR #540 по stale protection cleanup. В этот цикл shared worktree, merge/deploy/restart не трогались. **Точное условие следующего logic fix:** минимум `30` post-runtime owner-attributed Grid закрытий, включая `>=5` loss exits с заполненными `manual_action + symbol + side + regime`, и повторяемая ex-ante концентрация с PF `<1` при сохранённой fill frequency; либо минимум `20` post-filter Radar terminal trades за `>=72ч` с exact `(alert_ts,symbol)` live/paper matching и устойчивым PF `<1`/divergence. Раньше допустим только повторяемый tail-loss по одному и тому же order path с полной exchange timeline.
Author
Owner

Очередной цикл: 24ч/7д/30д cohort снят по strategy+symbol, generic labels отделены. Самый доказанный дефект — неполный fee reconciliation: за 7д zero-fee имели 41/186 Grid, 20/24 Radar и 9/9 legacy generic close; код опрашивал только BTC/ETH/SOL, а systemd timer был disabled. Создан PR #542: #542. Торговые настройки/лимиты не менялись; активная торговля сохранена.

Очередной цикл: 24ч/7д/30д cohort снят по strategy+symbol, generic labels отделены. Самый доказанный дефект — неполный fee reconciliation: за 7д zero-fee имели 41/186 Grid, 20/24 Radar и 9/9 legacy generic close; код опрашивал только BTC/ETH/SOL, а systemd timer был disabled. Создан PR #542: https://git.adami.kr/europa-tech-srl/arnold-trader-app/pulls/542. Торговые настройки/лимиты не менялись; активная торговля сохранена.
Author
Owner

Production verification PR #542 обнаружила второй блокер того же контура: production runner не мог импортировать app из-за позднего sys.path bootstrap. Создан follow-up PR #543: #543; добавлен exact regression, торговая логика/настройки не затронуты.

Production verification PR #542 обнаружила второй блокер того же контура: production runner не мог импортировать `app` из-за позднего sys.path bootstrap. Создан follow-up PR #543: https://git.adami.kr/europa-tech-srl/arnold-trader-app/pulls/543; добавлен exact regression, торговая логика/настройки не затронуты.
Author
Owner

Цикл завершён в production. PR #542 и follow-up #543 merged/deployed, live SHA 3edd0a29, CI/deploy green. Fee reconciler теперь берёт dynamic user-scoped symbol/category и запускается canonical production command без PYTHONPATH workaround. 7d backfill: 932 executions / 715 order IDs, обновлено 63 trade rows. После backfill: Grid 544 rows, fee=$4.539350, zero-fee=0; Radar 21 rows, fee=$2.987790, zero-fee=0; legacy exchange close 9 rows, fee=$0.341112, zero-fee=0. 24h: Grid 44, net после fee +$0.3375; Radar 2, net после fee -$6.6663. 7d: Grid net -$8.4875; Radar net -$41.8248. Generic labels исключены из strategy ranking.

Exchange truth после deploy: 3 managed short positions, 14 open orders, equity $182.47; PM2/API/DB healthy, repo clean. Trading settings/limits не менялись.

Открытый operational gap: существующий arnold-fee-reconciler.timer disabled/inactive; текущий agent не имеет root policy для enable. Manual 7d reconciliation выполнен. Следующий data-quality приоритет: детерминированно связать 20/291 exchange closes без order-id match и 9 legacy generic closes с economic owner; signal/entry tuning только после owner-linked recent cohort достаточного размера.

Цикл завершён в production. PR #542 и follow-up #543 merged/deployed, live SHA `3edd0a29`, CI/deploy green. Fee reconciler теперь берёт dynamic user-scoped symbol/category и запускается canonical production command без PYTHONPATH workaround. 7d backfill: 932 executions / 715 order IDs, обновлено 63 trade rows. После backfill: Grid 544 rows, fee=$4.539350, zero-fee=0; Radar 21 rows, fee=$2.987790, zero-fee=0; legacy exchange close 9 rows, fee=$0.341112, zero-fee=0. 24h: Grid 44, net после fee +$0.3375; Radar 2, net после fee -$6.6663. 7d: Grid net -$8.4875; Radar net -$41.8248. Generic labels исключены из strategy ranking. Exchange truth после deploy: 3 managed short positions, 14 open orders, equity $182.47; PM2/API/DB healthy, repo clean. Trading settings/limits не менялись. Открытый operational gap: существующий `arnold-fee-reconciler.timer` disabled/inactive; текущий agent не имеет root policy для enable. Manual 7d reconciliation выполнен. Следующий data-quality приоритет: детерминированно связать 20/291 exchange closes без order-id match и 9 legacy generic closes с economic owner; signal/entry tuning только после owner-linked recent cohort достаточного размера.
Author
Owner

Цикл 2026-07-24 09:20 UTC завершён и проверен на production.

Cohort live PnL (owner-first attribution, paper исключён; 9 строк exchange_sl_tp_close за 30д связаны с grid_bidir_aggressive через positions_archive + входные fills, generic label отдельно стратегией не считался):

  • 24ч Grid aggressive: n=26, WR 92.3%, gross +1.1568 / -1.1098, PF 1.042, fees 0.1492, net -0.1021; avg/median win 0.0449/0.0413, avg/median loss -0.5896/-0.5896.
  • 24ч Radar: n=4, WR 75.0%, gross +70.9326 / -3.2319, PF 21.948, fees 0.3635, net +67.3372; avg/median win 23.5511/19.6569, loss -3.3161.
  • 7д Grid aggressive: n=190, WR 87.4%, gross +14.5880 / -17.5261, PF 0.832, fees 2.4256, net -5.3637.
  • 7д Radar: n=25, WR 24.0%, gross +120.1073 / -76.2684, PF 1.575, fees 3.3431, net +40.4957.
  • 30д Grid aggressive: n=1036, WR 89.9%, gross +103.1970 / -187.9515, PF 0.549, fees 12.9359, net -97.6904.
  • 30д Grid conservative: n=13, WR 84.6%, gross +3.2523 / -0.2513, PF 12.942, fees 0.2590, net +2.7420.
  • 30д Radar: n=25, WR 24.0%, gross +120.1073 / -76.2684, PF 1.575, fees 3.3431, net +40.4957.
  • 30д legacy futures_monitor: n=293, WR 54.9%, gross +62.5908 / -74.8276, PF 0.836, fees 12.4304, net -24.6672; новых сделок после 01.07 нет, не использовался для tuning текущего runtime.

Recent post-logic cohorts:

  • Grid после 2026-07-22 09:28 UTC: n=41, WR 82.9%, PF 0.635, net -2.0901. Tail остаётся сосредоточен в 7 loss exits; новый fix не ограничивает частоту/торговлю, а исправляет fee truth.
  • Radar после 2026-07-21 14:17 UTC: n=10, WR 30.0%, PF 2.417, net +40.3247; retained frequency сохранена.

Выбран один доказанный дефект: linear Grid close-row записывал round-trip fee в fee_usd, хотя opening fill уже имел собственную fee по order_id. Это ломало per-order fee parity и могло повторно учитывать entry fee в consumers, суммирующих все fills. GitNexus _linear_close_pnl: LOW, 2 direct callers (_handle_buy_fill, _handle_sell_fill), цепочка до check_fills_and_replace/grid run.

Доставка:

  • PR #546, commit 7db3569f, CI: backend-tests/frontend-audit/secret-scan/smoke green; локально 24 targeted tests passed, diff-scoped secret scan clean.
  • merged master fc16b18488fc086380fd0463fb90829214c71bf4.
  • production deploy green; /api/health.version=fc16b184; PM2 API/daemons/Telegram online; daemon 18/18 threads; canonical post-deploy-validate.sh завершён ALL CHECKS PASSED; checkout clean.
  • Bybit truth после deploy: equity 196.90 USDT, positions=0, open orders=0. Grid active/not stopped; текущий bearish/neutral regime gate корректно не создаёт новые expand orders.

Следующая измеримая проверка этого фикса: первый post-deploy linear Grid round-trip должен дать две уникальные order_id fee-записи (entry и exit), а close-row invariant pnl - fee_usd == realized net без повторного entry fee. До такого fill новую tuning-гипотезу не смешивать с accounting cohort.

Цикл 2026-07-24 09:20 UTC завершён и проверен на production. Cohort live PnL (owner-first attribution, paper исключён; 9 строк `exchange_sl_tp_close` за 30д связаны с `grid_bidir_aggressive` через positions_archive + входные fills, generic label отдельно стратегией не считался): - 24ч Grid aggressive: n=26, WR 92.3%, gross +1.1568 / -1.1098, PF 1.042, fees 0.1492, net -0.1021; avg/median win 0.0449/0.0413, avg/median loss -0.5896/-0.5896. - 24ч Radar: n=4, WR 75.0%, gross +70.9326 / -3.2319, PF 21.948, fees 0.3635, net +67.3372; avg/median win 23.5511/19.6569, loss -3.3161. - 7д Grid aggressive: n=190, WR 87.4%, gross +14.5880 / -17.5261, PF 0.832, fees 2.4256, net -5.3637. - 7д Radar: n=25, WR 24.0%, gross +120.1073 / -76.2684, PF 1.575, fees 3.3431, net +40.4957. - 30д Grid aggressive: n=1036, WR 89.9%, gross +103.1970 / -187.9515, PF 0.549, fees 12.9359, net -97.6904. - 30д Grid conservative: n=13, WR 84.6%, gross +3.2523 / -0.2513, PF 12.942, fees 0.2590, net +2.7420. - 30д Radar: n=25, WR 24.0%, gross +120.1073 / -76.2684, PF 1.575, fees 3.3431, net +40.4957. - 30д legacy futures_monitor: n=293, WR 54.9%, gross +62.5908 / -74.8276, PF 0.836, fees 12.4304, net -24.6672; новых сделок после 01.07 нет, не использовался для tuning текущего runtime. Recent post-logic cohorts: - Grid после 2026-07-22 09:28 UTC: n=41, WR 82.9%, PF 0.635, net -2.0901. Tail остаётся сосредоточен в 7 loss exits; новый fix не ограничивает частоту/торговлю, а исправляет fee truth. - Radar после 2026-07-21 14:17 UTC: n=10, WR 30.0%, PF 2.417, net +40.3247; retained frequency сохранена. Выбран один доказанный дефект: linear Grid close-row записывал round-trip fee в `fee_usd`, хотя opening fill уже имел собственную fee по order_id. Это ломало per-order fee parity и могло повторно учитывать entry fee в consumers, суммирующих все fills. GitNexus `_linear_close_pnl`: LOW, 2 direct callers (`_handle_buy_fill`, `_handle_sell_fill`), цепочка до `check_fills_and_replace`/grid run. Доставка: - PR #546, commit 7db3569f, CI: backend-tests/frontend-audit/secret-scan/smoke green; локально 24 targeted tests passed, diff-scoped secret scan clean. - merged master `fc16b18488fc086380fd0463fb90829214c71bf4`. - production deploy green; `/api/health.version=fc16b184`; PM2 API/daemons/Telegram online; daemon 18/18 threads; canonical `post-deploy-validate.sh` завершён `ALL CHECKS PASSED`; checkout clean. - Bybit truth после deploy: equity 196.90 USDT, positions=0, open orders=0. Grid active/not stopped; текущий bearish/neutral regime gate корректно не создаёт новые expand orders. Следующая измеримая проверка этого фикса: первый post-deploy linear Grid round-trip должен дать две уникальные order_id fee-записи (entry и exit), а close-row invariant `pnl - fee_usd == realized net` без повторного entry fee. До такого fill новую tuning-гипотезу не смешивать с accounting cohort.
Author
Owner

Цикл 2026-07-24 15:45 UTC завершён в production.

Live PnL (real, закрытые outcomes; fee только закрывающей строки; 9 legacy exchange_sl_tp_close связаны с grid_bidir_aggressive по ранее проверенным exact order/position lineage, generic label отдельно стратегией не считался):

  • 24ч Grid aggressive: n=15, WR 93.3%, GP +0.4337, GL -0.5470, PF 0.793, avg/median win +0.0310/+0.0234, avg/median loss -0.5470/-0.5470, fees 0.0607, net -0.1739.
  • 24ч Radar: n=2, WR 50.0%, GP +19.7995, GL -3.2319, PF 6.126, fees 0.2268, net +16.3408.
  • 7д Grid aggressive: n=182, WR 87.9%, GP +14.2301, GL -17.4778, PF 0.814, avg/median win +0.0889/+0.0469, avg/median loss -0.7944/-0.3407, fees 1.8449, net -5.0926.
  • 7д Radar: n=25, WR 24.0%, GP +120.1070, GL -76.2684, PF 1.575, avg/median win +20.0179/+15.7714, avg/median loss -4.0141/-3.2779, fees 3.2832, net +40.5557.
  • 30д Grid aggressive: n=1037, WR 90.3%, GP +103.2090, GL -187.9520, PF 0.549, avg/median win +0.1103/+0.0657, avg/median loss -1.8609/-0.0621, fees 12.4044, net -97.1471.
  • 30д Grid conservative: n=13, WR 84.6%, PF 12.942, fees 0.2590, net +2.7420.
  • 30д Radar: n=25, WR 24.0%, PF 1.575, fees 3.2832, net +40.5556.
  • 30д legacy futures_monitor: n=293, PF 0.836, net -24.6672; новых outcomes после 01.07 нет, из tuning текущего runtime исключён.

Recent post-logic cohorts:

  • Grid после local-stop/recovery fix 2026-07-21 18:48 UTC: n=48, WR 79.2%, GP +2.8336, GL -5.5860, PF 0.507, fees 0.5187, net -3.2712. Symbols: AVAX n=4/PF .037/net -1.2618; DOGE n=3/PF .056/net -0.5604; SOL n=30/PF .851/net -0.7086; XRP n=11/PF .413/net -0.7403.
  • Radar после conflicting-entry filter 2026-07-21 14:17 UTC: n=10, WR 30%, GP +70.9326, GL -29.3446, PF 2.417, fees 1.2033, net +40.3846; retained frequency сохранена.

Выбран один доказанный дефект данных/runtime: SOLUSDT short отсутствовал на Bybit, обе точные закрывающие order ID уже были записаны в trades (qty/side/time совпали с closed-PnL), но sync daemon проверял existing order ID до валидации и затем навсегда оставлял DB ghost в preserve_missing_keys. Это блокировало корректную liveness/attribution картину и могло мешать новым управляемым входам. Исправление после строгой side/time/qty проверки считает уже существующую close-row подтверждением завершения, не пишет дубликат и разрешает удалить stale DB position. Signal/budget/pause/stop-limit/trade-frequency не менялись.

Доставка: PR #548, commit f9524c7b, merge/release 65954f8d. GitNexus impact LOW (2 direct callers, 0 process flows); индекс advisory для отдельного worktree, live source и git diff использованы как truth. Локально 65 targeted tests passed, gitleaks diff clean; PR и push backend/frontend/secret/smoke CI success; deploy success.

Production verification: HEAD=origin/master=health/release markers 65954f8d; PM2 API/daemons/Telegram online под europatech; 18/18 daemon threads; canonical post-deploy validator ALL CHECKS PASSED; repo clean. Bybit: equity 196.72 USDT, 4 managed short positions, 35 open orders; Grid active, is_stopped=false. Во время CI исходный SOL ghost снова стал реальной биржевой позицией через новый управляемый fill, поэтому live negative-path removal не форсировался; exact regression покрывает исходный snapshot.

Новый clean cohort начинается с runtime 65954f8d (15:44 UTC), закрытий пока 0. Следующий tuning-порог: минимум 20 owner-attributed Grid закрытий после 65954f8d с regime/exit_reason и проверкой PF/frequency, либо минимум 10 новых Radar DOWN закрытий. До порога новый signal/entry tuning будет hindsight-only.

Цикл 2026-07-24 15:45 UTC завершён в production. Live PnL (real, закрытые outcomes; fee только закрывающей строки; 9 legacy exchange_sl_tp_close связаны с grid_bidir_aggressive по ранее проверенным exact order/position lineage, generic label отдельно стратегией не считался): - 24ч Grid aggressive: n=15, WR 93.3%, GP +0.4337, GL -0.5470, PF 0.793, avg/median win +0.0310/+0.0234, avg/median loss -0.5470/-0.5470, fees 0.0607, net -0.1739. - 24ч Radar: n=2, WR 50.0%, GP +19.7995, GL -3.2319, PF 6.126, fees 0.2268, net +16.3408. - 7д Grid aggressive: n=182, WR 87.9%, GP +14.2301, GL -17.4778, PF 0.814, avg/median win +0.0889/+0.0469, avg/median loss -0.7944/-0.3407, fees 1.8449, net -5.0926. - 7д Radar: n=25, WR 24.0%, GP +120.1070, GL -76.2684, PF 1.575, avg/median win +20.0179/+15.7714, avg/median loss -4.0141/-3.2779, fees 3.2832, net +40.5557. - 30д Grid aggressive: n=1037, WR 90.3%, GP +103.2090, GL -187.9520, PF 0.549, avg/median win +0.1103/+0.0657, avg/median loss -1.8609/-0.0621, fees 12.4044, net -97.1471. - 30д Grid conservative: n=13, WR 84.6%, PF 12.942, fees 0.2590, net +2.7420. - 30д Radar: n=25, WR 24.0%, PF 1.575, fees 3.2832, net +40.5556. - 30д legacy futures_monitor: n=293, PF 0.836, net -24.6672; новых outcomes после 01.07 нет, из tuning текущего runtime исключён. Recent post-logic cohorts: - Grid после local-stop/recovery fix 2026-07-21 18:48 UTC: n=48, WR 79.2%, GP +2.8336, GL -5.5860, PF 0.507, fees 0.5187, net -3.2712. Symbols: AVAX n=4/PF .037/net -1.2618; DOGE n=3/PF .056/net -0.5604; SOL n=30/PF .851/net -0.7086; XRP n=11/PF .413/net -0.7403. - Radar после conflicting-entry filter 2026-07-21 14:17 UTC: n=10, WR 30%, GP +70.9326, GL -29.3446, PF 2.417, fees 1.2033, net +40.3846; retained frequency сохранена. Выбран один доказанный дефект данных/runtime: SOLUSDT short отсутствовал на Bybit, обе точные закрывающие order ID уже были записаны в trades (qty/side/time совпали с closed-PnL), но sync daemon проверял existing order ID до валидации и затем навсегда оставлял DB ghost в preserve_missing_keys. Это блокировало корректную liveness/attribution картину и могло мешать новым управляемым входам. Исправление после строгой side/time/qty проверки считает уже существующую close-row подтверждением завершения, не пишет дубликат и разрешает удалить stale DB position. Signal/budget/pause/stop-limit/trade-frequency не менялись. Доставка: PR #548, commit f9524c7b, merge/release 65954f8d. GitNexus impact LOW (2 direct callers, 0 process flows); индекс advisory для отдельного worktree, live source и git diff использованы как truth. Локально 65 targeted tests passed, gitleaks diff clean; PR и push backend/frontend/secret/smoke CI success; deploy success. Production verification: HEAD=origin/master=health/release markers 65954f8d; PM2 API/daemons/Telegram online под europatech; 18/18 daemon threads; canonical post-deploy validator ALL CHECKS PASSED; repo clean. Bybit: equity 196.72 USDT, 4 managed short positions, 35 open orders; Grid active, is_stopped=false. Во время CI исходный SOL ghost снова стал реальной биржевой позицией через новый управляемый fill, поэтому live negative-path removal не форсировался; exact regression покрывает исходный snapshot. Новый clean cohort начинается с runtime 65954f8d (15:44 UTC), закрытий пока 0. Следующий tuning-порог: минимум 20 owner-attributed Grid закрытий после 65954f8d с regime/exit_reason и проверкой PF/frequency, либо минимум 10 новых Radar DOWN закрытий. До порога новый signal/entry tuning будет hindsight-only.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
europa-tech-srl/arnold-trader-app#500
No description provided.