The goal is not coverage of every idea, but:
a small, orthogonal set of strategies that map cleanly to distinct market regimes
🧠 First principle
A strategy should exist only if it answers:
“This behaves fundamentally differently from the others under different conditions.”
If two strategies differ only by parameters → they should be one.
🧱 The minimal useful axes
You can reduce the entire market behavior space to a few dimensions:
Trend vs Range Volatility (low / expanding / high) Event pressure (normal vs event-driven) Liquidity quality (normal vs thin/chaotic)
That’s enough to define your taxonomy.
🎯 Minimal Strategy Set (clean + complete)
Purpose: Do nothing / capital preservation
When:
high uncertainty conflicting signals extreme event risk broken execution conditions
This is NOT optional. This is what prevents dumb trades.
Purpose: Ride directional moves
When:
clear structure (higher highs / lower lows) sustained momentum decent liquidity
Variants are internal, not separate strategies:
slow trend strong trend
Purpose: Trade inside ranges
When:
sideways market low volatility no directional conviction
Key trait:
fades extremes, expects reversion
Purpose: Capture volatility expansion
When:
compression → expansion levels about to break volatility increasing
Important: This is NOT trend-following. It’s anticipating the move, not riding it.
Purpose: Monetize noise
When:
choppy, bounded markets decent liquidity no strong directional bias
Difference to mean reversion:
systematic order placement not signal-based entries
Purpose: React to external shocks
When:
major news macro releases sudden sentiment shifts
Behavior:
fast, defensive or opportunistic often temporary
Purpose: Reduce exposure safely
When:
regime shift detected strategy mismatch execution degradation
This is a transition strategy, not alpha-seeking.
🧬 Why this set works
You now cover:
Regime Strategy Trend trend_following Range mean_reversion Chop grid Expansion breakout External shock event_driven Uncertainty idle Transition/risk defensive
👉 That’s the full space, without redundancy.
⚙️ Strategy metadata (critical for Hermes)
Each strategy should declare its “natural habitat”:
{ "name": "mean_reversion", "expects": {
"trend": "none",
"volatility": "low",
"event_risk": "low"
}, "avoids": {
"volatility": "expanding",
"event_risk": "high"
}, "risk_profile": "medium" }
Hermes uses this—not gut feeling.
🧠 Hermes selection logic (conceptual)
Hermes computes current state:
{ "trend": "none", "volatility": "low", "event_risk": "low" }
Then scores strategies:
{ "mean_reversion": 0.9, "grid": 0.7, "trend_following": 0.1 } 🔁 Preventing flip-flopping (VERY important)
Without this, Hermes will go insane.
Add:
This is where many systems fail:
mean_reversion = signal-based grid = structure-based
Keep both.
🧪 Optional later (DO NOT start with this)
Only after everything works:
volatility_scalping cross-asset arbitrage market-making
But don’t pollute v1.
💡 Naming matters more than you think
Use names that are:
intuitive explainable to humans stable over time
Avoid:
“alpha_v3_dynamic” “strategy_7” 🔚 Final minimal set (clean version)
With this taxonomy:
Hermes has a finite decision space Strategies remain coherent and specialized Explanations become natural language Debugging becomes possible