bd31a15548
Test reale (scripts/analysis/live_smoke_pairs.py): fetch live Cerbero + tick vero per coppia. Scoperta: l'endpoint Deribit serve solo BTC/ETH freschi; LTC/ADA-PERPETUAL sono VUOTI e SOL ha pochi dati. Il backtest usava i parquet locali (8 asset completi), ma la pipeline live no -> tradabile live SOLO ETH/BTC. - strategies.yml: abilitata solo la coppia ETH/BTC; le altre 4 disabilitate con nota (valide a backtest, off finche' non si aggiunge un feed live per gli alt). - live_smoke_pairs.py (nuovo): verifica end-to-end della pipeline live (no ordini reali). - CLAUDE.md / docstring PR01: distinzione esplicita logica-validata vs live-disponibile. Onesta': la validazione precedente era backtest-equivalence (ESATTA), NON test live; il test live ha rivelato il limite del feed alt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
134 lines
4.4 KiB
YAML
134 lines
4.4 KiB
YAML
defaults:
|
|
capital: 1000
|
|
position_size: 0.15
|
|
leverage: 3
|
|
hold_bars: 3
|
|
poll_seconds: 60
|
|
retrain_hours: 24
|
|
|
|
# Solo MR01 Bollinger fade (mean-reversion): unica con edge netto validato
|
|
# out-of-sample e fee-aware. La famiglia squeeze e' in scripts/waste/.
|
|
# ATTENZIONE: MR01 esce su TP-alla-media / SL-ad-ATR / max_bars (vedi metadata
|
|
# dei Signal). Lo StrategyWorker attuale esce solo a hold_bars/stop -2% fisso:
|
|
# va aggiornato per usare gli exit in metadata PRIMA di tradare MR01 dal vivo.
|
|
strategies:
|
|
- name: MR01_bollinger_fade
|
|
asset: BTC
|
|
tf: 1h
|
|
enabled: true
|
|
params:
|
|
bb_window: 50
|
|
k: 2.5
|
|
sl_atr: 2.0
|
|
max_bars: 24
|
|
trend_max: 3.0 # salta fade contro trend estremo (|close-EMA200|/ATR>3): Acc+ DD-
|
|
ema_long: 200
|
|
|
|
# ETH: edge positivo ma DD piu' alto (~70%); leva piu' bassa consigliata
|
|
- name: MR01_bollinger_fade
|
|
asset: ETH
|
|
tf: 1h
|
|
enabled: true
|
|
params:
|
|
bb_window: 50
|
|
k: 2.5
|
|
sl_atr: 2.0
|
|
max_bars: 24
|
|
trend_max: 3.0 # salta fade contro trend estremo (|close-EMA200|/ATR>3): Acc+ DD-
|
|
ema_long: 200
|
|
|
|
# MR02 Donchian fade: fade rottura canale (estremi H/L). Robusto su tutta la
|
|
# griglia n x sl_atr e tutte le fee. BTC +879%/+171% OOS (8/9 anni), ETH enorme.
|
|
- name: MR02_donchian_fade
|
|
asset: BTC
|
|
tf: 1h
|
|
enabled: true
|
|
params:
|
|
n: 20
|
|
sl_atr: 2.0
|
|
max_bars: 24
|
|
trend_max: 3.0 # salta fade contro trend estremo (|close-EMA200|/ATR>3): Acc+ DD-
|
|
ema_long: 200
|
|
- name: MR02_donchian_fade
|
|
asset: ETH
|
|
tf: 1h
|
|
enabled: true
|
|
params:
|
|
n: 20
|
|
sl_atr: 2.0
|
|
max_bars: 24
|
|
trend_max: 3.0 # salta fade contro trend estremo (|close-EMA200|/ATR>3): Acc+ DD-
|
|
ema_long: 200
|
|
|
|
# MR03 Keltner fade -> spostata in scripts/waste/ (fade piu' debole e ridondante
|
|
# con MR01; il filtro trend la peggiorava su BTC). Vedi CLAUDE.md.
|
|
|
|
# MR07 Return reversal: fade movimento di barra estremo (z dei rendimenti).
|
|
# Meccanismo distinto (volatilita' rendimenti, non livelli). Esposizione bassa
|
|
# (~8%). BTC +447%/+105% OOS DD25%, ETH +335%/+195% OOS DD46%.
|
|
- name: MR07_return_reversal
|
|
asset: BTC
|
|
tf: 1h
|
|
enabled: true
|
|
params:
|
|
n: 50
|
|
k: 3.5
|
|
tp_atr: 2.0
|
|
sl_atr: 1.5
|
|
max_bars: 24
|
|
trend_max: 3.0 # salta fade contro trend estremo (|close-EMA200|/ATR>3): Acc+ DD-
|
|
ema_long: 200
|
|
- name: MR07_return_reversal
|
|
asset: ETH
|
|
tf: 1h
|
|
enabled: true
|
|
params:
|
|
n: 50
|
|
k: 3.5
|
|
tp_atr: 2.0
|
|
sl_atr: 1.5
|
|
max_bars: 24
|
|
trend_max: 3.0 # salta fade contro trend estremo (|close-EMA200|/ATR>3): Acc+ DD-
|
|
ema_long: 200
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# PR01 — PAIRS market-neutral spread reversion (worker a 2 GAMBE: src/live/pairs_worker.py)
|
|
# Config UNIVERSALE n50 z2 zx0.75 mb72 (anti-overfit, validata walk-forward).
|
|
# fee_rt 0.001/gamba -> 0.20% RT/coppia.
|
|
# SMOKE TEST LIVE (scripts/analysis/live_smoke_pairs.py, 2026-05-29): l'endpoint
|
|
# Cerbero/Deribit serve solo BTC/ETH freschi; LTC/ADA-PERPETUAL sono VUOTI e SOL ha
|
|
# pochi dati. Quindi LIVE e' tradabile SOLO ETH/BTC. Le altre coppie restano valide nel
|
|
# backtest (parquet locali completi) ma DISABILITATE finche' non si aggiunge un feed live
|
|
# per gli alt (Bybit/Hyperliquid via Cerbero). Il runner comunque salta i pair senza feed.
|
|
pairs:
|
|
- name: PR01_pairs_reversion # UNICA tradabile live (feed Cerbero OK)
|
|
a: ETH
|
|
b: BTC
|
|
tf: 1h
|
|
enabled: true
|
|
params: {n: 50, z_in: 2.0, z_exit: 0.75, max_bars: 72, jump_max: 0.08}
|
|
- name: PR01_pairs_reversion # feed alt assente su Deribit -> off
|
|
a: LTC
|
|
b: ETH
|
|
tf: 1h
|
|
enabled: false
|
|
params: {n: 50, z_in: 2.0, z_exit: 0.75, max_bars: 72, jump_max: 0.08}
|
|
- name: PR01_pairs_reversion # feed alt assente su Deribit -> off
|
|
a: ADA
|
|
b: ETH
|
|
tf: 1h
|
|
enabled: false
|
|
params: {n: 50, z_in: 2.0, z_exit: 0.75, max_bars: 72, jump_max: 0.08}
|
|
- name: PR01_pairs_reversion # LTC assente su Deribit -> off
|
|
a: BTC
|
|
b: LTC
|
|
tf: 1h
|
|
enabled: false
|
|
params: {n: 50, z_in: 2.0, z_exit: 0.75, max_bars: 72, jump_max: 0.08}
|
|
- name: PR01_pairs_reversion # SOL pochi dati su Deribit; la piu' debole -> off
|
|
a: ETH
|
|
b: SOL
|
|
tf: 1h
|
|
enabled: false
|
|
params: {n: 50, z_in: 2.0, z_exit: 0.75, max_bars: 72, jump_max: 0.08}
|