Skip to main content
Glama
README.md
# echolon

**See what others can't.**

echolon is the library that takes a certified trading strategy from a release
bundle to a broker order. It is deliberately small.

```
panel/    the market-data snapshot format (bars, contracts, sector, QC)
score/    the SignalEngine contract every strategy implements
bundle/   hash-verified release manifests (build, verify, load)
live/     bundle runtime -> target lots -> MiniQMT orders, plus the paper
          fill model, the book risk overlay and the position reconciler
```

That is the whole product. 41 Python files.

## What it is not

echolon is **not** a backtest engine, an optimiser, an indicator library, or an
agent toolkit. It used to advertise all four. On 2026-08-18 the old framework —
the Backtrader engine wrapper, the Optuna study, the 214-indicator TA-Lib
catalog, the five-component strategy system, the MCP server, the 23 in-package
agent skills, the data extractors, the per-exchange market adapters, the
slot-era live tree and the M1 book programme — was retired in one commit,
because nothing in the current framework reached any of it.

If you need that code it is not gone, it is elsewhere: tag
`checkpoint-2026-08-18-pre-echolon-retirement`, branch
`legacy/pre-retirement-2026-08-18`. See `ARCHITECTURE.md` for what remains and
why, and `CHANGELOG.md` 0.4.0 for the full removal list.

**Breaking:** `echolon` and `echolon-mcp` are no longer installed. `echolon
hello`, `echolon init`, `echolon backtest`, `claude mcp add … echolon-mcp`,
`echolon.run_backtest(...)` and every `from echolon import BacktestConfig`-style
re-export are gone. There is no compatibility shim; this is intentional.

## Install

```bash
pip install echolon
```

Five runtime dependencies: pandas, numpy, pydantic, pyarrow, structlog.
MiniQMT execution additionally needs `xtquant`, which is Windows-only and ships
with the broker terminal rather than from PyPI — the rest of the library works
without it.

## Use

Load a hash-verified bundle into a runnable strategy:

```python
from echolon.live.book.bundle_runtime import load_bundle_strategy

runtime = load_bundle_strategy("bundles/composite_daily_v1_prod_1")
runtime.strategy      # SmokeStrategy, built from the manifest's constructor
runtime.engines       # the SignalEngine instances the manifest pins
runtime.rebalance_rule
```

`load_bundle_strategy` recomputes every file hash before importing anything,
requires each signal module to be self-contained and to define exactly one
`SignalEngine`, checks the loaded engine's `signal_id`/`family` against the
manifest, and refuses a constructor it cannot build. Every one of those is a
hard failure with no override.

Build and verify bundles from the command line:

```bash
echolon-bundle --help     # the only console script
```

Write a signal:

```python
from echolon.score import ScoreVector, SignalEngine

class MySignal(SignalEngine):
    signal_id = "my_signal_v1"
    family = "tsmom"

    def compute(self, view) -> ScoreVector:
        ...
```

## Status

0.4.0. Live MiniQMT execution is the part that is shipped and used; it is what
the rest of the library exists to serve. Bring your own market data — echolon
defines the panel format and reads it, but no longer extracts it.

## Development

```bash
pip install -e ".[dev]"
pytest tests/ -q -ra
```

`-ra` is not cosmetic: a public checkout has no artifact store, so the
store-backed falsifiers skip, and a skip is indistinguishable from a pass in a
bare summary.

Licence: Apache-2.0.

TDQS

A3.7/5.0

Scored across 23 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: API introspection, parameter generation, documentation retrieval, catalog listing, scaffolding, and various validation checks. Overlap among validation tools is resolved by specific validation targets (integration, logging, protocol, parameters, etc.).

Naming Consistency4/5

Tools follow a mostly consistent verb_noun pattern (e.g., get_doc, list_indicators, validate_strategy). Minor deviations like 'indicator_info' instead of 'get_indicator_info' and 'suggest_similar' instead of 'get_suggestions' are tolerable.

Tool Count5/5

23 tools cover a comprehensive set of operations for a strategy framework: API description, parameter generation, documentation, catalog browsing, scaffolding, and multiple validation checks. The count is well-scoped for the domain.

Completeness4/5

The tool surface covers key development and validation workflows. Minor gaps exist (e.g., no tool for creating a new strategy directory or running backtests), but the core lifecycle of building and validating components is well-supported.

Maintenance

ActivityActive
ResponsivenessSyncing