4dc0e77ee5
src/live/pairs_worker.py: PairsWorker market-neutral (long A / short B sullo z-score del log-ratio, exit |z|<=z_exit o max_bars, FEE SU 2 GAMBE = 2*fee_rt*lev, stato persistente come StrategyWorker). multi_runner: sezione `pairs:` nello YAML, fetch di entrambe le gambe, tick/status/shutdown; INSTRUMENT_MAP esteso agli alt. strategies.yml: 5 coppie PR01 (config universale n50 z2 zx0.75 mb72). Validazione (scripts/analysis/validate_worker_pairs.py): replay live bar-per-bar == backtest pairs_sim ESATTAMENTE -> ETH/BTC capitale 2.870.429 = 2.870.429, 1754 trade, win 74.1% identici. Caveat: shortabilita'/liquidita' del perp B sugli alt da verificare in trading reale. CLAUDE.md / docstring PR01 aggiornati. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
131 lines
3.9 KiB
YAML
131 lines
3.9 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. ATTENZIONE: richiede perp shortabile per
|
|
# entrambe le gambe; su alt (LTC/SOL/ADA) verificare liquidita'/fill prima del live reale.
|
|
pairs:
|
|
- name: PR01_pairs_reversion
|
|
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
|
|
a: LTC
|
|
b: ETH
|
|
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
|
|
a: ADA
|
|
b: ETH
|
|
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
|
|
a: BTC
|
|
b: LTC
|
|
tf: 1h
|
|
enabled: true
|
|
params: {n: 50, z_in: 2.0, z_exit: 0.75, max_bars: 72, jump_max: 0.08}
|
|
# ETH/SOL: la piu' debole (DD ~63%, storia SOL corta) -> peso ridotto consigliato
|
|
- name: PR01_pairs_reversion
|
|
a: ETH
|
|
b: SOL
|
|
tf: 1h
|
|
enabled: true
|
|
params: {n: 50, z_in: 2.0, z_exit: 0.75, max_bars: 72, jump_max: 0.08}
|