Skip to main content
Glama

Echolon

PyPI Python License Status By DolphinQuant

📖 English · 简体中文

Фреймворк для бэктестинга, ориентированный на работу с LLM-агентами для исследования фьючерсов. Включает MCP-сервер, 22 встроенных навыка, 32 каталогизированных кода ошибок и типизированные конфигурации Pydantic — агенты вызывают структурированные инструменты вместо того, чтобы угадывать структуру API по текстовой документации. Сквозное решение для дневных фьючерсов SHFE.

Производственный движок внутри Qorka, продукта DolphinQuant для генерации стратегий с помощью ИИ. Используется для реальной торговли на SHFE каждый торговый день.

Быстрый старт

Три команды охватывают основной путь новичка:

Команда

Назначение

Время

echolon hello

Быстрая демонстрация. Загружает данные по алюминию SHFE (за последние 2 года) через akshare, создает каркас стратегии, запускает бэктест. Требуется сеть.

~30с

echolon init <workspace> --market SHFE --instrument <i> --start <d> --end <d> --template <t>

Начало реального проекта. Загружает рыночные данные через akshare (бесплатно, без регистрации), создает каркас стратегии из шаблона, записывает маркер рабочей области.

~1–5 мин

echolon backtest single <strategy_dir> [--json]

Итерация после редактирования. Переходит вверх по дереву для восстановления контекста из маркера рабочей области, пересчитывает индикаторы, запускает бэктест. Флаги не требуются.

~5–10с

pip install echolon
mkdir -p ~/echolon-playground && cd ~/echolon-playground
echolon hello                  # 30-second demo

echolon hello загружает данные по алюминию примерно за 2 года, создает каркас шаблона momentum_breakout, записывает .echolon-workspace.json и запускает бэктест. Откройте ./echolon-hello/strategy/baseline/entry.py, измените параметр, затем снова запустите echolon backtest single ./echolon-hello/strategy/baseline/, чтобы увидеть, как изменится коэффициент Шарпа.

В пакет включены три шаблона — minimal, momentum_breakout, rsi_mean_reversion. echolon examples --list показывает их список; передайте --template <name> в echolon init / echolon hello, чтобы начать работу с одним из них.

Если pip install завершается ошибкой на Linux ARM64 / Alpine / FreeBSD, запустите echolon doctor — он продиагностирует C-библиотеку ta-lib, единственную зависимость, которую, возможно, придется собирать из исходного кода вне стандартных платформ с готовыми колесами (Linux x86_64, macOS x86_64+arm64, Windows x86_64; Python 3.11–3.12).

Управление через вашего агента

pip install echolon                                # 1. install
claude mcp add -s user echolon -- echolon-mcp      # 2. register MCP server (user-wide)
# 3. restart Claude Code to load mcp__echolon__* tools

Затем спросите:

"Создай трендовую стратегию на медь, проведи бэктест за 2018–2024 годы."

За кулисами агент вызывает list_skills → выбирает patterns и quick_startload_template("momentum_breakout")list_indicators(has_lookback=True) → редактирует entry.py и exit.py → циклически вызывает validate_strategy_full(strategy_dir), пока все не пройдет успешно → запускает бэктест. Если что-то ломается, он парсит [CODE-NNN] из трассировки стека и вызывает get_error_doc(code). Ему не нужно ничего угадывать.

Среда выполнения

Настройка

Claude Code

claude mcp add -s user echolon -- echolon-mcp

Cursor

В ~/.cursor/mcp.json добавьте запись в mcpServers: "echolon": {"command": "echolon-mcp", "args": []}

OpenAI Codex CLI

codex mcp add echolon -- echolon-mcp (записывает [mcp_servers.echolon] в ~/.codex/config.toml)

OpenAI Agents SDK (Python)

MCPServerStdio(name="echolon", params={"command": "echolon-mcp", "args": []})

LangChain / LangGraph

langchain-mcp-adapters: MultiServerMCPClient({"echolon": {"transport": "stdio", "command": "echolon-mcp", "args": []}})

Любой другой MCP-совместимый клиент (CrewAI, AutoGen, …)

Настройте его как stdio-сервер с command="echolon-mcp", без аргументов. См. документацию вашего клиента по MCP для формата вызова.

Для Claude Code: -s user делает регистрацию доступной для всех ваших проектов (уберите это для текущего проекта); -- отделяет имя регистрации от команды запуска. После однократного запуска claude mcp list должен показать echolon как подключенный stdio-сервер. Руководство по ориентации агента — llms.txt — также размещается в корне рабочей области командой echolon init / hello, чтобы агент, заходящий в проект, нашел его без необходимости наличия пакета.

Что входит в текущую версию

Реализовано полностью (промышленный уровень, используется ежедневно):

  • Исследование дневных фьючерсов SHFE — загрузка данных, каталог из 214 индикаторов, выполнение через Backtrader, оптимизация Optuna TPE (одно- и многоцелевая), анализ walk-forward с оценкой готовности к развертыванию, выбор надежных испытаний на основе KMeans.

  • Интерфейс агента — 23 MCP-инструмента, 22 навыка, 32 кода ошибок, 3 рабочих шаблона.

Пока нет (откройте issue, если хотите ускорить разработку какой-то части):

  • Внутридневной бэктестинг SHFE — конвейер данных готов, движок дорабатывается.

  • Живая торговля через MiniQMT — чистый публичный релиз в процессе.

  • Бессрочные криптофьючерсы (каркас адаптера CCXT готов), фьючерсы CME, акции.

  • Альтернативы Optuna (без grid, без random, без поиска с байесовским бюджетом), распределенная оркестрация, Python ≤ 3.10.

  • До версии 1.0 — публичный API может меняться между минорными версиями. Критические изменения документируются в CHANGELOG.md.

Используйте свои данные

Если у вас уже есть необработанные XLS-файлы SHFE (скачанные с shfe.com.cn), запустите SHFEFileDayExtractor напрямую вместо использования akshare. Для других форматов (брокерский CSV, tushare, пользовательская БД) три файла должны оказаться в {workspace}/workspace/data/market_data/SHFE/{instrument}/:

Файл

Схема

sort_by_contract/{contract}.csv

contract, date, prev_close, prev_settlement, open, high, low, close, settlement, price_change, settlement_change, volume, turnover, open_interest

sort_by_date.csv

Те же столбцы, все строки объединены и отсортированы по дате.

trading_calendar.csv

date, is_trading_day (логическое значение).

Плюс в {workspace}/data/SHFE/{instrument_code}/ (обратите внимание на КОРОТКИЙ код, например al, а не aluminum):

Файл

Схема

main_contract.csv

date, main_contract, где main_contract — это код контракта с суффиксом .SF (например, al2401.SF). Одна строка на дату смены основного контракта.

Echolon не выводит main_contract.csv автоматически из необработанных OHLCV — это ввод ПОЛЬЗОВАТЕЛЯ, который кодирует вашу конвенцию роллирования (правила, основанные на объеме, открытом интересе или днях до истечения срока). Для SHFE через akshare echolon init выводит его за вас; в противном случае создайте его самостоятельно и поместите в нужное место.

Информация о проекте

Apache 2.0 — см. LICENSE. Используйте свободно, в коммерческих или иных целях. Активная разработка, v0.1.2 beta. Создано и поддерживается DolphinQuant — той же командой, которая управляет Qorka на SHFE. Вопросы и pull-реквесты приветствуются на github.com/dolphinquant/echolon.

@software{echolon,
  title = {Echolon: AI-native quantitative trading engine},
  author = {DolphinQuant},
  year = {2026},
  url = {https://github.com/dolphinquant/echolon},
}
Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DolphinQuant/echolon'

If you have feedback or need assistance with the MCP directory API, please join our Discord server