jev-trader: бот для высокочастотной торговли на децентрализованных биржах
jev-trader — это бот для торговли, который принимает решения на основе модели Jev, анализируя ордеры Kuru MON-USDC. Он делает это с частотой примерно раз в 300 мс, размещая лимитные ордера на покупку или продажу, чтобы зарабатывать на спреде, а не платить его.
Проект подойдет трейдерам, интересующимся высокочастотной торговлей и автоматизацией торговли на децентрализованных биржах. Бот может работать в режиме имитации, что позволяет тестировать стратегию без риска, но для использования настоящей модели Jev потребуется API-ключ и приватный ключ. Таким образом, у тебя есть возможность либо протестировать систему без реальных сделок, либо запустить ее в полноценном режиме.
Для запуска просто скопируй .env.example в .env, установи зависимости с помощью bun install и запусти с bun run start. Имей в виду, что проект может быть на ранней стадии и подходит в первую очередь для экспериментов на платформе Kuru.
Проект jev-trader представляет собой торговый бот, который работает с ордер-буком на платформе Kuru и принимает решения о покупке или продаже каждые примерно 300 миллисекунд. Он использует специальную модель Jev для анализа данных и размещает лимитные ордера, которые находятся внутри текущего лучшего предложения на рынке, заменяя предыдущие ордера. Таким образом, бот может зарабатывать на спреде, а не платить его.
Установка и запуск
Чтобы запустить проект, необходимо выполнить следующие команды:
cp .env.example .env
bun install
bun run start
Если переменная PRIVATE_KEY не установлена, бот будет работать в режиме проверки (dry run), что означает, что он будет принимать решения на реальных данных, но результаты сделок будут смоделированы. Для использования настоящей модели Jev нужно установить MODEL=jev и TYPESAFE_AI_API_KEY.
API и источники данных
В проекте есть несколько конечных точек API:
GET /— получает снимок текущего состояния модели, кошелька и последних событий блока;GET /history— возвращает последние 1000 событий блока;GET /events— использует SSE для отправки событий, включая снимок состояния и события блока.
Каждое событие содержит информацию о текущем статусе ордеров и операциях, включая вероятность покупки и продажи, а также текущие ставки и позиции.
Структура кода
Проект состоит из нескольких ключевых файлов:
src/config.ts— конфигурация окружения;src/chain.ts— обработка блоков с помощью WebSocket и RPC;src/book.ts— чтение ордер-бука;src/market.ts— взаимодействие с платформой Kuru и обработка ордеров;src/model.ts— интерфейс модели, которая отвечает за принятие решений;src/trader.ts— основной цикл обработки ордеров;src/server.ts— сервер для обработки запросов и отправки событий.
Ограничения
Важно учитывать, что каждая торговая операция должна укладываться в один блок, и на каждую операцию бот делает ровно два RPC вызова. Это означает, что время выполнения операций ограничено, и любые задержки могут повлиять на обработку заказов. Проект также использует фиксированные значения для расчета платы за газ, что может ограничить гибкость в случае изменения рыночных условий.
Таким образом, jev-trader — это продвинутый торговый бот, ориентированный на высокочастотную торговлю с использованием модели, анализирующей рыночные данные в режиме реального времени. Он подходит для трейдеров, которые ищут возможности автоматизации своих торговых стратегий на платформе Kuru.
Открыть на GitHub: jarrodwatts/jev-trader →
RepoRadar