Interface IExchangeSchema

Exchange schema registered via addExchange(). Defines candle data source and formatting logic.

interface IExchangeSchema {
    callbacks?: Partial<IExchangeCallbacks>;
    exchangeName: string;
    formatPrice: (symbol: string, price: number) => Promise<string>;
    formatQuantity: (symbol: string, quantity: number) => Promise<string>;
    getCandles: (
        symbol: string,
        interval: CandleInterval,
        since: Date,
        limit: number,
    ) => Promise<ICandleData[]>;
    note?: string;
}

Properties

callbacks?: Partial<IExchangeCallbacks>

Optional lifecycle event callbacks (onCandleData)

exchangeName: string

Unique exchange identifier for registration

formatPrice: (symbol: string, price: number) => Promise<string>

Format price according to exchange precision rules.

Type declaration

    • (symbol: string, price: number): Promise<string>
    • Parameters

      • symbol: string

        Trading pair symbol

      • price: number

        Raw price value

      Returns Promise<string>

      Promise resolving to formatted price string

formatQuantity: (symbol: string, quantity: number) => Promise<string>

Format quantity according to exchange precision rules.

Type declaration

    • (symbol: string, quantity: number): Promise<string>
    • Parameters

      • symbol: string

        Trading pair symbol

      • quantity: number

        Raw quantity value

      Returns Promise<string>

      Promise resolving to formatted quantity string

getCandles: (
    symbol: string,
    interval: CandleInterval,
    since: Date,
    limit: number,
) => Promise<ICandleData[]>

Fetch candles from data source (API or database).

Type declaration

    • (
          symbol: string,
          interval: CandleInterval,
          since: Date,
          limit: number,
      ): Promise<ICandleData[]>
    • Parameters

      • symbol: string

        Trading pair symbol (e.g., "BTCUSDT")

      • interval: CandleInterval

        Candle time interval (e.g., "1m", "1h")

      • since: Date

        Start date for candle fetching

      • limit: number

        Maximum number of candles to fetch

      Returns Promise<ICandleData[]>

      Promise resolving to array of OHLCV candle data

note?: string

Optional developer note for documentation