@barfinex/indicators
v1.0.0
Published
Technical analysis indicators for the Barfinex ecosystem. Candle-driven API for use in Detector strategies, standalone backtesting, or any Node/NestJS app.
Downloads
72
Maintainers
Readme
@barfinex/indicators
NestJS-библиотека технических индикаторов для экосистемы Barfinex. Candle-driven API для стратегий Detector и приложений на NestJS.
Подробная документация: docs/INDICATORS.md — обзор API, жизненный цикл свечи, справочник индикаторов, интеграция с Detector.
Features
- NestJS —
IndicatorsModuleиIndicatorsService: создание индикаторов по конфигу детектора, стабильные ключи (sma7,ema21). - Candle lifecycle API —
onCandleOpen,onCandleClose,onCandleUpdate(candle, side?)для real-time и истории. - Интеграция с Detector — при использовании
DetectorModuleсервис стратегии получаетIndicatorsServiceи вызываетcreateIndicator(config). - Классы индикаторов — экспортируются SMA, RSI, EMA, MACD и др. для прямого использования или кастомных адаптеров.
Installation
npm install @barfinex/indicators @barfinex/typesQuick start (NestJS)
Подключите модуль и используйте сервис в стратегиях детектора:
// app.module.ts
import { IndicatorsModule } from '@barfinex/indicators';
@Module({
imports: [IndicatorsModule],
// ...
})
export class AppModule {}В стратегии детектора (например FollowTrendService) IndicatorsService передаётся конструктором при переключении детектора; в onInit() создавайте индикаторы через сервис:
import { IndicatorsService } from '@barfinex/indicators';
// В конструкторе: protected readonly indicatorsService: IndicatorsService
// В onInit():
for (const indConfig of this.options.indicators ?? []) {
const { key, instance } = this.indicatorsService.createIndicator(indConfig);
this.indicators[symbolName][interval][key] = instance;
}Использование классов индикаторов
import { SMA, RSI } from '@barfinex/indicators';
const sma = new SMA({ period: 14, valueType: 'close' });
sma.onCandleClose(candle); // result[0] = current SMA
const rsi = new RSI(14);
const value = rsi.nextValue(candle.c);Supported indicators
| Name | Candle API | Detector key example | |------|------------|----------------------| | SMA, EMA, WEMA, WMA, LWMA | ✓ | sma14, ema21 | | RSI, cRSI, CCI, ROC | via adapter | rsi14, crsi3 | | ATR, DC, BollingerBands, MACD | via adapter | atr14, dc20 | | ADX, SuperTrend, PSAR, Stochastic | via adapter | adx14, psar | | AO, AC, HeikenAshi, Pivot | via adapter | ao, pivot | | Extremums | ✓ | extremums | | TrendLines, VolumeProfile, etc. | see exports | — |
API
IndicatorsModule— глобальный NestJS-модуль.IndicatorsService—createIndicator(config),indicatorKey(config),getSupportedNames().BfxCandleIndicator— интерфейс:type,options,result,lastValue,onCandleOpen,onCandleClose,onCandleUpdate?.getBfxIndicatorNumber(value, preferredKey?)— helper для стратегий, которым нужен scalar из object-result.
Barfinex
Part of the Barfinex ecosystem. Docs: First Steps, Architecture, Detector.
License
MIT. See LICENSE. Attribution to Barfinex appreciated.
