hft-js
Version:
High-Frequency Trading in Node.js
51 lines (50 loc) • 2.05 kB
TypeScript
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;