nodejs-order-book
Version:
Node.js Lmit Order Book for high-frequency trading (HFT).
72 lines (71 loc) • 2.56 kB
TypeScript
import { type ILimitOrder, type IStopLimitOrder, type IStopMarketOrder, type InternalLimitOrderOptions, type InternalStopLimitOrderOptions, type InternalStopMarketOrderOptions, type OrderOptions, OrderType, type Side, type TimeInForce } from "./types";
declare abstract class BaseOrder {
readonly _id: string;
readonly _side: Side;
_size: number;
_time: number;
constructor(options: OrderOptions);
get id(): string;
get side(): Side;
get size(): number;
set size(size: number);
get time(): number;
set time(time: number);
abstract toString(): void;
abstract toJSON(): void;
abstract toObject(): void;
}
export declare class LimitOrder extends BaseOrder {
private readonly _type;
readonly _origSize: number;
private _price;
private readonly _timeInForce;
private readonly _makerQty;
private readonly _takerQty;
private readonly _postOnly;
private readonly _ocoStopPrice?;
constructor(options: InternalLimitOrderOptions);
get type(): OrderType.LIMIT;
get price(): number;
set price(price: number);
get timeInForce(): TimeInForce;
get postOnly(): boolean;
get origSize(): number;
get makerQty(): number;
get takerQty(): number;
get ocoStopPrice(): number | undefined;
toString: () => string;
toJSON: () => string | null;
toObject: () => ILimitOrder;
}
export declare class StopMarketOrder extends BaseOrder {
private readonly _type;
private readonly _stopPrice;
constructor(options: InternalStopMarketOrderOptions);
get type(): OrderType.STOP_MARKET;
get stopPrice(): number;
toString: () => string;
toJSON: () => string | null;
toObject: () => IStopMarketOrder;
}
export declare class StopLimitOrder extends BaseOrder {
private readonly _type;
private _price;
private readonly _stopPrice;
private readonly _timeInForce;
private readonly _isOCO;
constructor(options: InternalStopLimitOrderOptions);
get type(): OrderType.STOP_LIMIT;
get price(): number;
set price(price: number);
get stopPrice(): number;
get timeInForce(): TimeInForce;
get isOCO(): boolean;
toString: () => string;
toJSON: () => string | null;
toObject: () => IStopLimitOrder;
}
export declare const OrderFactory: {
createOrder<T extends OrderOptions>(options: T): T extends InternalLimitOrderOptions ? LimitOrder : T extends InternalStopLimitOrderOptions ? StopLimitOrder : T extends InternalStopMarketOrderOptions ? StopMarketOrder : never;
};
export {};