hermes_and_strategies.md 4.0 KB

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)

  1. 🟢 idle / risk_off

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.

  1. 🔵 trend_following

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

  1. 🟡 mean_reversion

Purpose: Trade inside ranges

When:

sideways market low volatility no directional conviction

Key trait:

fades extremes, expects reversion

  1. 🟣 breakout

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.

  1. 🟠 grid / liquidity_harvesting

Purpose: Monetize noise

When:

choppy, bounded markets decent liquidity no strong directional bias

Difference to mean reversion:

systematic order placement not signal-based entries

  1. 🔴 event_driven

Purpose: React to external shocks

When:

major news macro releases sudden sentiment shifts

Behavior:

fast, defensive or opportunistic often temporary

  1. ⚫ defensive / unwind

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:

  1. Hysteresis don’t switch unless new strategy is significantly better
  2. Minimum hold time once active, stay active for X minutes unless strong signal
  3. Confidence threshold only switch if confidence > e.g. 0.65 🧭 Subtle but powerful distinction mean_reversion vs grid

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)

  1. idle
  2. trend_following
  3. mean_reversion
  4. breakout
  5. grid
  6. event_driven
  7. defensive 🧠 What you just achieved

With this taxonomy:

Hermes has a finite decision space Strategies remain coherent and specialized Explanations become natural language Debugging becomes possible