feat(quant): T2 real-money executor scaffold (dry) + OOS profit validation - #236
Draft
JoTalbot wants to merge 102 commits into
Draft
feat(quant): T2 real-money executor scaffold (dry) + OOS profit validation#236JoTalbot wants to merge 102 commits into
JoTalbot wants to merge 102 commits into
Conversation
Deployed CatBoost direction model was degenerate (prob_up=0.433 for 30/35 assets, AUC 0.504, never reaches the 0.65 entry gate). Replace with a model trained on scale-free features with a strict per-symbol walk-forward split: AUC 0.533, hit-rate 81-83% at prob>=0.65 on two independent OOS windows, positive net PnL with Directional v2 paper exit rules. Old model kept as fallback; ml_predictor prefers catboost_price_dir_v2.cbm.
RLSignalBridge vs training env (kg_v8) mismatches: 1. onehot always marked BTC - now per-asset index in ASSET_ORDER (32 assets, alphabetical, as MultiAssetEnv); unknown asset -> None (no signal). 2. static feature 3 was vol_chg, training used vol_ratio - fixed. 3. action was not clamped to [-1,1] like in training rollout - pos could be -0.5 (outside [0,1]) - fixed. Dead tickers MATIC/RNDR (renamed to POL/RENDER) removed from ML signals, RL default universe and notebook generator template. rl_signals.json refreshed (9 assets, honest FLAT verdicts). 61 quant/ml tests pass.
…ction Data: - scripts/quant_backfill_history.py: paginated Binance klines (+Bybit fallback for KAS), refreshes stale tails first; 17 assets extended to ~5500 bars. Signal product (generate_quant_signal_product.py): - _latest_rows now picks the most complete FRESH series (staleness >2h skipped, fixes delisted TON on Binance shadowing live Bitstamp data); - regime computed on the last CLOSED bar (in-progress bar had partial volume -> false illiquid); NO_DATA dropped 16 -> 0. ML (quant_ml_eval_train.py): - engine-style simulation now executes at trigger levels (conservative), not at piercing bar closes; retrained on full dataset: AUC 0.513 -> 0.536, hit@0.65 = 82.4%, +31.6% net on OOS sim at thr 0.65. RL (quant_train_ppo.py + rl_signal_bridge.py): - train LSTM-PPO v9 1:1 with kg_v8 methodology (300 episodes, GAE, clip 0.2) on local data, universe POL instead of delisted MATIC; - validation: sum_rl +96.0% vs Buy&Hold -114.0% (v8: +51.4%); - bridge reads asset names from checkpoint (supports v8 MATIC and v9 POL), MODEL_FILE -> ppo_v9.pt; signals refreshed (10 assets, honest FLAT veto). - 61 quant/ml tests pass.
- collect_orderbook_snapshots.py: fix kucoin depth (20/100 only), add okx/bitstamp/coinbase to the collector (binance,kucoin,mexc,okx,bitstamp, coinbase); unit interval 30s -> 15s. Collection rate ~3x faster. - scripts/analyze_orderbook_data.py (new): per-exchange spread/depth stats + cross-exchange mid disparity windows (read-only); report -> data/reports/ orderbook_analysis.json. - Market-making simulator first run (>=200 snapshots): fill_rate 63-96% but negative PnL - naive passive MM suffers adverse selection; full run needs >=1000 snapshots/pair (binance/mexc ~40% there, ~1.5h to go). - docs/QUANT_SIGNAL_PRODUCT.md: 33 assets, backfill, fresh-series selection, closed-bar regime, ML v2 / PPO v9 summary. - docs/PROJECT_INVENTORY.md regenerated.
…ng brief - scripts/run_market_making_simulator_v2.py (new): inventory-aware MM research (fills only on favorable moves, single-position rule, no stacking). First run confirms naive MM economics: maker fee 0.1% (10bps) exceeds median spreads (BTC 0.002bps, ETH 0.05, SOL 1.3) -> spot MM on top pairs needs rebate programs or wider-spread universe; documented in report. - run_morning_brief.py: read-only Quant WATCH section (WATCH_UP/WATCH_DOWN from quant_signal_product.json, max 5) after the crypto PnL line.
Old paths (ppo_trader.pt, ppo_multi_24.pt, catboost_price_dir.cbm) are superseded by ppo_v9.pt and catboost_price_dir_v2.cbm; removed stale entries.
…train timers
- scripts/quant_watch_backtest.py (new): replays signal-product WATCH rules
on OOS tail; result: WATCH_DOWN precision 59.4% (85/143) - moderate edge
vs 50% baseline; WATCH_UP produced 0 signals (rule too strict in current
down-market) - documented, no rule changes.
- scripts/quant_ml_monitor.py (new): prob_up distribution stats, signal/CSV
freshness, drift vs previous snapshot; history in
data/reports/quant_ml_monitor_history.json; status OK/WARN.
- scripts/quant_ml_feature_experiment.py (new): 13 base vs 21 extended
features on same OOS; extended is NOT better (AUC 0.5326 vs 0.5355,
hit@0.65 70.8% vs 82.2%) - base feature set stays.
- deploy/systemd/aios-quant-ml-retrain.{service,timer}: weekly retrain
(Mon 04:00, deploy-only-if-better guard already in the script).
- deploy/systemd/aios-quant-ml-monitor.{service,timer}: hourly drift monitor.
- Both timers installed and enabled on the host.
Critical methodology fix: v8/v9 validation lacked the action clamp used by
the deployed bridge; act < -1.5 silently became SHORT positions (-0.5) that
are impossible in the discrete {0, 0.5, 1} policy. Those historical
profits (v9 +96%) were artifacts of hidden shorts.
- quant_train_ppo.py / quant_train_ppo_v10.py: val_on_asset now clamps
act to [-1,1] exactly like rl_signal_bridge.py.
- quant_train_ppo_v10.py (new): honest walk-forward split - env trains on
first 70% of each asset, validates on the unseen last 30% (gap 48).
- Honest result: deployed ppo_v9 is a pure FLAT agent on OOS (sum_rl 0.0
vs Buy&Hold -233%) - value is loss avoidance, not earning. v10 not
deployed (identical FLAT, no OOS edge under deployed action space).
- quant_ml_horizon_experiment.py (new): h1 label optimal (AUC 0.5355,
hit@0.65 82.2%); h4/h8/h24 worse - next-bar model stays.
- Reports: ppo_oos_honest.json, ppo_v10_oos_eval.json,
quant_ml_horizon_experiment.json.
Replays the production algorithm (ML gate, owner risk profile, TP/SL/trail exits, fees) as if trading started exactly one month ago, synchronous per-bar processing of all 33 symbols with a single 000 portfolio. Result (2026-07-14 -> 2026-08-14): - current algorithm: -0.30% (1 trade; ML>=0.65 gate blocked 1948 entries) - control (no ML gate): -0.54% (5 trades, 2 wins) - market Buy&Hold: mean -9.30%, best ADA +9.00%, worst BONK -37.73%, BTC -2.71% The algorithm beat the average currency by +9.0pp and BTC by +2.4pp, i.e. the gate acted as capital protection (mostly cash), not an earner.
Re-run for 3/6/12 calendar months. The deployed algorithm holds cash in all windows (ML>=0.65 gate almost never fires; after the first -1.5% loss the 0.25% DD kill blocks further entries), so portfolio PnL is -0.30% in every window while the market fell: mean currency -30.75% (3m), -24.11% (6m), -68.32% (12m). BTC -46.7%, ETH -58.1%, ADA -80.0% over 12m. The gate acts as capital protection (beats average currency by +9..+68pp) but never earns: cash (0%) beats the algorithm by 0.3pp in every window.
Systematic research over 16 strategies on honest OOS (no lookahead, 0.25% per-side costs, ML retrained on train window only, equal-weight symbols): - Winner: daily SMA50/200 long/short cross-following: 70/30 split +7.8..+11.2% (params 40/160, 50/200, 60/240 all positive); 50/50 split +34.7% (50/200) / +19.7% (60/240), both OOS halves positive. - Long-only variant of the same rules: -4.5% -> profit comes from shorts. - XS mean-reversion unstable (bot3_p7: +9.6% then -12.9%); RSI daily MR weak (+1.8..+5.6%); ML long/short and inverted-ML negative on OOS. - Report: data/reports/strategy_research_summary.md + JSON artifacts. Caveats: funding/borrow costs not modeled; profit concentrated in the bear regime; constitutional gate requires owner decision for real shorts.
…earns Backtest engine fix (v2): equity now compounds bar by bar (earlier version summed arithmetic returns, which overstates PnL on volatile assets - e.g. sum -97.96% vs actual -71.3% for BONK) and the position adopts the signal at the same bar close (true next-bar semantics). Corrected results for daily SMA50/200 long/short with 0.25%/side costs: OOS30: +12.62% net (funding base), +1.68% (funding stress) OOS50: +41.56% net (base), +23.92% (stress); half1 +32.4%, half2 +6.5%; 24/33 symbols positive. Both halves and all split x funding combos > 0. MA_LS_60_240: +14.0% (OOS30), +29.9% (OOS50). All long-only variants and Donchian/XS stay negative -> shorts are the edge. Report: data/reports/earn_research_summary.md + JSON.
- mm_proto_backtest.py --queue-model: partial fills by share of level size, remainder keeps quoting. Tested on 1Hz ws with REAL spreads (BTC 0.0016bps): previous 2bps half-spread was ~1000x wider than real spread -> quotes never filled; at realistic 0.001-0.05bps -> 9-14 fills/hour. PnL still negative on 1-1.6h (data accumulating). - subscription_manage.py + data/quant_subscriptions.json: add/list/revoke/clean tokens. - mm_signal_emitter.py: broadcast to owner + active subscribers; owner sub created (365d). Signals delivered: ETH UP 0.987, BNB UP 0.911, SOL UP 0.975. - docs/SIGNAL_SUBSCRIPTION_INFRA_2026-08-15_RU.md.
…r to diagnostic mode - scripts/signal_pnl_sim.py: market-entry/exit simulation of emitted signals (60/180s, taker fee 0.1% both sides, $100 stake). Result: gross ≈ 0.00 on 98 trades, fees 19.60$, net -19.61$. Direction accuracy (63%) does NOT translate into money - move size over 1-3 min is microscopic; even zero fees yield no profit. - mm_signal_emitter.py: DIAGNOSTIC mode (logs signals, no Telegram broadcast) - subscription would sell false value; timer 5->15 min. - R3 (threshold calibration) skipped - thresholds cannot create gross profit. - Microstructure remains useful only as MM adverse-selection filter; verdict after 2-4 weeks of data. docs/SIGNAL_ECONOMICS_R1_2026-08-15_RU.md.
…digest metric - mm_proto_backtest.run_mm_best: quotes at real best bid/ask with maker fee. Gross negative even at fee=0 on 1-2h ws data (-1.7..-5.6$); model targets 1s (wrong for 1Hz), data is noise - verdict needs weeks of data. - signal_pnl_maker.py: limit entry at best price, taker exit. net -19.61$ -> -1.50$ (13x better) BUT fill 22% and WR 0% - limit fills exactly when price moves against the signal (adverse selection at entry). Signal-as-limit-order is a trap. - aios_weekly_digest.py: + maker-entry economics metric (daily/weekly auto-check). - Taker trading closed (R1), maker-entry by signal closed (W4); full maker-MM with microstructure filter remains the only live direction (verdict after 2-4 weeks). - docs/SIGNAL_ECONOMICS_W1W4_2026-08-15_RU.md.
…d weekly - run_dca_paper.py: config/state paths via DCA_CONFIG env (legacy names for main). - New control portfolio (plain DCA, $100/wk, same weights) + aios-dca-paper-control.timer (17:35Z) - live A/B vs VA main ($300/wk) over 1-2 months. - dca_chart_report.py: matplotlib PNG of both curves + invested, sendPhoto to TG; attached to weekly dca-report (Mon 18:00Z); text report now includes control. - docs/DCA_AB_VA_VS_PLAIN_2026-08-16_RU.md.
- collect_news_sentiment.py: RSS feeds (CoinTelegraph/CoinDesk/CryptoSlate) + Gemini 2.5 Flash sentiment scoring of headlines -> news_sentiment.jsonl (ts, sentiment, label, coins). First batch: 65 items (19 pos / 38 neg / 8 neu), scores adequate. - Debugging: GROQ 403 (regional block), OpenRouter 402 (no balance), Gemini needs key in URL (no Bearer -> 401), model gemini-2.5-flash; duplicate score_batch definition removed (Python picks the last def). - aios-news-sentiment.timer (hourly :20); /quant shows sentiment summary. - N2 (sentiment-price link test) after 1-2 weeks of accumulation. - docs/NEWS_SENTIMENT_COLLECTOR_2026-08-16_RU.md.
…3 digest sentiment - collect_market_context.py: F&G index (alternative.me) + macro calendar (faireconomy.media, graceful on 429); daily timer 06:00Z; F&G in /quant. Current F&G: 34 (Fear). - sentiment_price_test.py: per-news BTC/ETH mid move at +30m/+1h vs sentiment correlation. Empty sample now (news 22:31, ws ends 22:53 - horizon beyond data); tool ready, first numbers in 1-2 days. - aios_weekly_digest.py: + sentiment summary line. - docs/MARKET_CONTEXT_P1P2P3_2026-08-16_RU.md.
… + price-link test) with local test suite - fetch_historical_news.py: CoinTelegraph RSS snapshots from Wayback (11648/yr) -> 1545 unique headlines (2025-08..2026-07) with pubDate, dedup, resume. - score_historical_sentiment.py: Gemini 2.5 Flash batching, resume-safe merge, lenient key validation (drop only 401/403/404; 429 = transient, kept), break-on-fail with progress save; 12s pacing (1 working key). Daily quota exhausted -> aios-news-scoring.timer (every 30 min) resumes automatically. - sentiment_price_historical.py: news->price correlation (1h/24h/3d/7d) per coin. - tests/test_news_pipeline.py: 30 tests (RSS parsing, snapshot selection, Gemini JSON parsing, merge/resume, detect_coins, end-to-end synthetic, key validation) - 30/30 PASS locally and on server against prod scripts. - docs/NEWS_HISTORICAL_PIPELINE_2026-08-16_RU.md.
…al sentiment-price test result - news_local_sentiment.py: deterministic lexicon scorer (crypto vocabulary, negations, amplifiers); calibrated vs Gemini on 65 live news: corr +0.623, 94-95% sign agreement; 1545 headlines in 0.03s. tests/test_local_sentiment.py 21/21 PASS locally and on server (total 51 tests green). - sentiment_price_historical.py: prefer locally-scored file (SCORED fallback). - RESULT (1781 news->price matches, 2025-08..2026-07): corr 1h +0.007, 24h -0.058, 3d -0.036, 7d -0.060 - NO predictive link; mildly negative on longer horizons (news react to price, sell-the-news). 9th negative result for directional prediction; sentiment features NOT added to models. Lexicon stays as free sentiment monitor. - docs/SENTIMENT_PRICE_HISTORICAL_RESULT_2026-08-16_RU.md.
…ve, LSR is regime proxy - Developed & tested LOCALLY first (22/22 tests, fixtures for geo-blocked Binance), then deployed. Data: 400d macro/on-chain (Yahoo+blockchain.info) + 720h derivatives (taker ratio, global/top LSR, OI) + 1419h BTC prices. No lookahead (lagged feats). - Daily: all correlations ~0 (DXY diff +0.32% weak). Hourly: LSR->24h corr +0.199 (test +0.44) BUT block breakdown shows sign follows market regime: SHORT(LSR<med) +23/+38/-22/+10% - profitable only in bearish blocks, loses in bullish TRAIN (-35%). LSR is a regime proxy, not a predictor. 10th negative result for directional prediction; no new data classes remain. - Byproduct: hourly derivatives accumulator (aios-derivatives-collector.timer) to build long LSR/OI/taker history; LSR usable as regime indicator for DCA timing. - docs/MACRO_DERIVATIVES_PREDICTIVE_TEST_2026-08-16_RU.md.
…d in bear window - backtest_2y.py: fetches 2y 1h klines (Binance Futures, 8 symbols, 17520 bars each), trains CatBoost on first 70% per symbol, simulates current engine (ML>=0.65, TP2/SL1/trail1.0, kill 0.25%, costs ~0.5%) on last 30% (OOS ~7mo). - tests/test_backtest_2y.py: 17 tests (pagination, signals, engine, OOS split, kill-switch) - PASS locally and on server. - OOS result: 23 trades, WR 35%, PF 0.41, PnL -26.45$ vs BTC buy&hold -30.9% in the same window (strategy protects capital but does not earn); full-period '+27$' is a train-leak artifact. Edge does not appear on longer horizon. - docs/BACKTEST_2Y_2026-08-16_RU.md.
…A50) profitable - momentum_strategies.py: 7 factor variants (TS-momentum SMA200/50, SMA cross, CS-momentum 30/60/90d, CS+trend filter), daily data, costs 0.15%/side, a-priori params, OOS 30%. tests/test_momentum.py 17/17 PASS (local + server). - RESULT (3y, 14 symbols, 1099d): T2 TS-momentum BTC SMA50 = +143.5% (CAGR 34.4%, Sharpe 1.06, MaxDD -27.7% vs BH -53.1%); ETH version +156.8% (BH +2.2%); sensitivity SMA30-50 plateau (not overfit). All CS-momentum and SMA-cross variants negative. Honest caveats: OOS (bear 2026) -17.6%, profit mostly from bull 2024; classic documented factor. - First profitable strategy after 11 negative directional tests. Recommend paper signal loop (daily close vs SMA50) then real allocation. - docs/MOMENTUM_STRATEGIES_RESULT_2026-08-16_RU.md.
…rts + backfill) - run_t2_momentum.py: daily paper loop - fetch closes (Yahoo, fallback Binance spot), signal close vs SMA50 on last CLOSED bar, mark equity, log, TG on position change. Cost 0.15% on any transition (matches backtest). Idempotent per day. - tests/test_t2_paper.py: 28 tests (signal, source fallback, idempotency, costs entry+exit, equity marking, BH reference) - PASS local and on server. - aios-t2-momentum.timer daily 01:30 UTC; /quant shows T2 status. - Backfill 3y through the loop: $10k -> $25,473 (+154.7%) vs BH +134.4%, 68 trades, current position CASH (close < SMA50, bear market). Diff vs backtest (+143.5%) is the mark convention, documented. - docs/T2_PAPER_LOOP_2026-08-16_RU.md.
- run_t2_momentum.py: --symbol parametrization (BTC-USD/ETH-USD), per-symbol state/log paths, Binance fallback ETHUSDT; tests 33/33 local (symbol URL, per-symbol state paths), 28/28 server. - aios-t2-momentum.service: runs both symbols daily 01:30 UTC. - ETH backfill 3y: $10k -> $27,977 (+179.8%) vs BH +20.0% (+160pp), position LONG, 45 trades. /quant shows both T2 rows; weekly digest includes T2 (sent). - docs/T2_ETH_AND_DIGEST_2026-08-16_RU.md.
… 50/50 portfolio, daily TG, chart) - t2_validation.py: 5y full-cycle test (BTC +127.8% vs BH +47%, ETH +103.2% vs BH -35%, SOL +406.3% vs BH +91%), 2y rolling windows (8/9 positive each), SMA calibration (40-60 plateau - SMA50 robust, not overfit). - t2_portfolio.py: 50/50 BTC+ETH portfolio (5y +129.6% vs BH +7%), daily log. - run_t2_momentum.py --daily-report: one-line TG report every day; service now runs BTC+ETH+SOL + portfolio + chart at 01:30Z; dca_chart_report includes T2 curve; /quant shows 3 T2 rows. SOL backfill 3y +229.5%. - docs/T2_VALIDATION_AND_EXPANSION_2026-08-16_RU.md.
…st) + W4 stop-loss rejected - W5: OOS SMA calibration (train60/test40): BTC SMA40 +31.2% vs +28.5% (SMA50), ETH SMA60 +85.5% vs +73.4%, SOL -26.7% (bear test). SMA50 stays - no overfit. - W4: trailing stop-loss DESTROYS T2 (-60..-90% vs +100..+400%): 400+ stops = stop-hunting on volatile drawdowns; SMA50 is the protection itself. Rejected. - W1: t2_portfolio.py now 3 assets (BTC+ETH+SOL): $28,800 vs BH $23,223; /quant shows portfolio line. - docs/T2_W1W4W5_2026-08-16_RU.md.
… U5 7y validation - U5 (7y): BTC +1574% vs BH +474%, ETH +1379% vs +744%, SOL +23965% vs +7823% - strategy confirmed on the longest available history. - U1 (hysteresis): BTC 50/40 improves (+141.8%, DD -44% vs +127.8%/-58%); ETH ~0; SOL much worse - not universal, not deployed. - U3 (portfolio rebalance): destroys returns (+65.5% vs +242.8%, DD -85%) - against momentum logic. NOT deployed. - U4: Yahoo-vs-Binance price discrepancy check (>0.5% -> TG warning) deployed in prod; tests 36/36 local. - docs/T2_U1U3U4U5_2026-08-16_RU.md.
- Screened 14 coins (5y): only BTC/ETH/SOL/BNB/NEAR profitable (BNB +115% DD -38% best, NEAR +44%); 9 others rejected. - X1: hysteresis (enter SMA50, exit SMA40) improves BTC/ETH/SOL on 7y (BTC +171pp, ETH +832pp, SOL +10542pp, better DD) but hurts BNB/NEAR - deployed selectively. - X2: trailing stop rejected (lowers returns, no DD benefit). - X3: SMA40 optimal on 7y; 50/40 hysteresis is robust alternative. - Service: 5 loops + 5-asset portfolio (5,767 vs BH 2,939), daily 01:30Z. - Tests 40/40 local, 28/28 server. docs/T2_EXPANSION_5SYMBOLS_2026-08-16_RU.md.
… 7y check - Y4 deployed: price source switched to Binance spot (liquidity reference), Yahoo as fallback; tests updated (40/40 local, 28/28 server). - Y1 (vol-target): improves DD for NEAR/BNB/ETH but cuts SOL returns - rejected. - Y2 (SMA150 filter): BTC DD -58%->-28% but cuts returns - rejected. - COMBO (vol-target+SMA150): looked great on 5y (BTC +184%, DD -22%) but on 7y +722% vs +1574% - period artifact. NOT deployed (lesson: always check full cycle). - Y3 (volume): skipped (no consistent historical volume data). - Base T2 remains best on 7y. docs/T2_Y1Y4_FINDINGS_2026-08-16_RU.md.
- MM verdict (2d ws data): signal strong (AUC 0.91-0.95) but maker-MM economics not converging yet (BNB near breakeven at 0.01% fee); needs weeks of data. - Internet research: T2 confirmed by academia (TS momentum 31.96% annual); pairs trading BTC-ETH cointegration Sharpe 2.45-7.94 (untested by us, top priority); CS momentum works at 1-4 weeks (we tested 30-90d = reversal zone); funding arb 8-20% APY delta-neutral; CTREND factor alpha 2.77%/wk; mean reversion + volume filter 81% winrate. - docs/TRADING_RESEARCH_INTERNET_2026-08-16_RU.md.
…cle OOS - Pairs trading (cointegration/ratio): ETH/LINK OOS +3.7% - rejected. - CS momentum 1-4wk: IS +4147% but OOS +20.5% vs BH +52.3% (bear tail) - rejected (works only in bull regimes). - Funding arb: 1.5% APY on our 166d data (bear market) - rejected. - CTREND approx: 5y BTC +139.6% (DD -33%) but 7y +968% vs T2 +1574% - period artifact - rejected. - Mean reversion + volume: +10.3% - rejected. - Lessons: full-cycle checks mandatory; OOS honesty; regime-dependent strategies unusable without regime prediction; T2 remains the only fully validated strategy. - Found & excluded garbage UNI-USD data (1.5M% move); clean() filter added. - docs/STRATEGY_TESTS_ALL_2026-08-16_RU.md.
…onth, NEAR protected -18%) - Simulated T2 starting 2026-07-16 (signals from pre-start data only, 0.15% costs). - Choppy month: portfolio -2.87% vs BH -2.55% (parity); NEAR avoided -18.3% (CASH); SOL whipsaw 9 trades -9.5%; positions match live paper state (consistency check). - Conclusion: T2 is the validated working strategy; in chop ~parity, in trends outperforms, in bears protects. 1 month = noise; 7y full-cycle validation stands. - docs/MONTH_AGO_TEST_2026-08-16_RU.md.
…% losing years vs 43% BH) - Median annual T2 (7y, 5 loops): +27.6%; losing years 31% vs 43% BTC BH; costs already in backtests (0.15%/switch); BNB discount saves ~1%/yr. - $10k -> $12,760 (1y) / $20,776 (3y) / $33,826 (5y) at median; pessimistic 3x-15% -> $6,140. - Risks: 31% losing years, MaxDD -53%, 3+ year horizon mandatory. - T2 ~ BH by median but better risk profile (bear protection). - Recommendation: start $1-5k, 3+ horizon, Binance spot + BNB discount, parallel DCA. - docs/T2_ECONOMICS_2026-08-16_RU.md.
… + leverage 1.25-1.5 + compound, with honest caveats - Levers tested on 7y data: concentration SOL+BNB (CAGR 164%, median year +309%, DD -59%), leverage 1.25-1.5 (+124-178% CAGR but DD -66..-79%), compounding. - Honesty: +260-300% medians skewed by bull 2021; realistic fwd p25-p50 +10-60%/yr, bull years +100-300%, bear -15..-46%. - Recommendation: start $2-5k, T2 SOL+BNB + BTC+ETH in parallel, reinvest, optional lev 1.25 on BTC+ETH, DCA $200-500/mo. - Rules: 3+ horizon, accept 80% DD, signal discipline, lev<=1.5, portfolio stop. - docs/BIG_PROFIT_SCENARIOS_2026-08-16_RU.md.
…licable to our system - SMC/ICT debunked (0/54 mechanical variants profitable after costs; no peer- reviewed support); our microstructure signal is the scientific alternative. - T2 confirmed by academia (TS momentum) and practice (NostalgiaForInfinity). - Useful OSS: Freqtrade (infra+Hyperopt), Hummingbot (MM), mlfinlab (meta-labeling), Riskfolio-Lib (weights), CCXT (already used), Jesse (bt discipline). - Next steps: meta-labeling on T2 (filter losing chop entries), Riskfolio weights, port T2 to Freqtrade dry-run + A/B vs NFI, Hummingbot for MM later. - docs/TRADING_THEORIES_REPOS_RESEARCH_2026-08-16_RU.md.
…port - meta_labeling.py: RF over T2 signal (ATR/dist/trend/RSI/vol10), train 60%/OOS 40%. OOS gains: BTC +2344% vs +1746%, BNB +5043%, NEAR +3457%, SOL +65164%; walk-forward 9/10 positive. Integrated via --meta-filter in run_t2_momentum (5 models deployed). - Riskfolio-Lib Max Sharpe weights (BTC 40/SOL 28/BNB 13/NEAR 12/ETH 6%): OOS +286% vs +195% equal; applied in t2_portfolio (portfolio $26,671 vs $25,767). - freqtrade_t2.py + config: T2 ported to Freqtrade (hysteresis SMA50/40, daily, spot) - ready for backtest after TA-Lib install; enables independent validation, Hyperopt, A/B vs NostalgiaForInfinity. - Hummingbot plan documented for MM stage (after ws data accumulation). - docs/REPO_IMPROVEMENTS_2026-08-16_RU.md.
… (2 bugs fixed, validated dev<4%)
…er, tests 4/4) + dry-run bot systemd
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Восстановленный orphan-PR: работа без PR с 2026-08-15. +102/−64 vs main.
Этот PR создан ИИ-агентом (OpenHands) от имени оператора при наведении порядка в ветках.