Strategies
All signals are computed on completed bars only (no look-ahead), at most one action per asset per bar, and every proposal passes the server-side risk engine. Uncertain regime ⇒ HOLD / cash.
trend breakout
Trend / volatility-adjusted breakout
Long only in confirmed up-trends when price breaks the prior 20-bar high. ATR trailing stop.
- ▸Regime must be trend_up (SMA50 > SMA200, price > SMA200, SMA50 rising).
- ▸Entry: completed bar closes above the highest high of the previous 20 bars.
- ▸Exit: close below trailing stop (highest close since entry − 3×ATR14) or regime turns trend_down.
- ▸Edge proxy: 2×ATR target; must exceed round-trip fees + slippage + buffer.
Live: disabled
mean reversion
Range mean-reversion (fee-aware)
Buys oversold dips inside a confirmed range only. Never trades in down-trends — no blind grid.
- ▸Regime must be range (flat SMA50, normal volatility).
- ▸Entry: close below lower Bollinger band (20, 2σ) and RSI14 < 30.
- ▸Exit: close ≥ middle band, or stop at entry − 1.5×ATR, or regime leaves range.
- ▸Edge proxy: distance from close to middle band; must clear round-trip costs + buffer.
Live: disabled
risk parity
Multi-asset risk-parity with cash
Inverse-volatility weights across BTC/ETH/SOL, correlation-penalised, scaled under the crypto exposure cap.
- ▸Weight ∝ 1 / 30-bar realised volatility; scaled by 1 / (1 + avg pairwise correlation).
- ▸Total crypto weight capped by aggregate exposure limit; remainder held in EUR cash.
- ▸Assets in trend_down / high_vol regime get weight 0 (cash).
- ▸Rebalance only when an asset drifts > 5% of equity from target, on bar close.
Live: disabled
Regime classifier
high_vol
ATR14% > 1.8× its 100-bar median → cash
trend_down
SMA50 < SMA200, price < SMA200, falling SMA50 — or > 25% below 90-bar high
trend_up
SMA50 > SMA200, price > SMA200, rising SMA50
range
Flat SMA50 (< 1% / 10 bars), normal volatility
uncertain
Anything else — conflicting signals → HOLD
“Do nothing” (100% EUR) is always an explicit benchmark and a valid outcome. Live execution for any strategy additionally requires positive out-of-sample evidence and an explicit, separate activation — and the live engine is not built in this version.
