🚨 Осторожно, код на тайпскрипте)
Зачем 👁️
• Позволяет обрабатывать
orderflow в реальном времени. • Полезный пример интеграции с
TimescaleDB для хранения и анализа данных.• База для алгоритмического анализа: например,
stacked imbalances и high volume nodes.Как использовать 👨🏻🏫
1. Клонируем репозиторий:
git clone git@github.com:focus1691/orderflow.git
2. Поднимаем
PostgreSQL с TimescaleDB:
docker run -d --name timescaledb -p 5433:5432 -e POSTGRES_PASSWORD=password timescale/timescaledb-ha:pg14-latest
3. (Опционально) Поднимаем
RabbitMQ для прослушивания закрытия свечей:
docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:4.0-management
4. Настраиваем переменные окружения (
DB_URL, USE_RABBITMQ, порты для Binance, Bybit, Okx и Bitget, SYMBOLS) и запускаем сервисы через yarn.Примеры: 🔍
👍🏻 Stacked Imbalances:
import { Orderflow } from 'chart-patterns';
const footprintCandlePrices = {
'98891': { volSumAsk: 0.002, volSumBid: 0.611 },
'98892': { volSumAsk: 0.002, volSumBid: 1.49 },
'98893': { volSumAsk: 0.005, volSumBid: 1.386 },
'98894': { volSumAsk: 0.022, volSumBid: 2.58 },
'98895': { volSumAsk: 0.018, volSumBid: 2.18 },
};
const stackedImbalance = Orderflow.detectStackedImbalances(footprintCandlePrices, {
threshold: 200, // Минимальный процент дисбаланса
stackCount: 3, // Количество подряд идущих дисбалансов
tickSize: 0.1, // Шаг цены
});
console.log(stackedImbalance);
👍🏻 High Volume Nodes:
const highVolumeNodes = Orderflow.findHighVolumeNodes(footprintCandlePrices, {
threshold: 0.3, // 30% от общего объёма
});
console.log(highVolumeNodes);
Репозиторий: github.com/focus1691/orderflow 📌
Quant Researcher