UNPKG

hft-js

Version:

High-Frequency Trading in Node.js

51 lines (50 loc) 2.05 kB
import { CTPProvider } from "./provider.js"; import type { InstrumentData, OrderBook } from "./typedef.js"; import type { ILifecycleListener, IMarketProvider, IMarketRecorderProvider, IMarketRecorderReceiver, IMarketRecorderSymbols, ITickReceiver } from "./interfaces.js"; export interface IMarketListener { onSubscribed: (symbol: string) => void; onUnsubscribed: (symbol: string) => void; } export type MarketOptions = { listener?: IMarketListener; }; export declare class Market extends CTPProvider implements IMarketProvider, IMarketRecorderProvider { private marketApi?; private recorder?; private recorderSymbols?; private tradingDay; private readonly listener?; private readonly recordings; private readonly symbols; private readonly lastTicks; private readonly subscribers; constructor(flowMdPath: string, frontMdAddrs: string | string[], options?: MarketOptions); getRecorder(): this; isRecorderReady(): boolean; setRecorder(receiver: IMarketRecorderReceiver, symbols: IMarketRecorderSymbols): void; getLastTick(instrumentId: string): Readonly<{ symbol: string; date: number; time: number; tradingDay: number; preOpenInterest: number; preClose: number; openInterest: number; openPrice: number; highPrice: number; lowPrice: number; lastPrice: number; volume: number; amount: number; limits: import("./typedef.js").PriceRange; bandings: import("./typedef.js").PriceRange; orderBook: OrderBook; }> | undefined; open(lifecycle: ILifecycleListener): boolean; close(lifecycle: ILifecycleListener): void; startRecorder(instrument: InstrumentData[]): void; stopRecorder(): void; subscribe(symbols: string[], receiver: ITickReceiver): void; unsubscribe(symbols: string[], receiver: ITickReceiver): void; } export declare const createMarket: (flowMdPath: string, frontMdAddrs: string | string[], options?: MarketOptions) => Market;