@fuzefinance/orderbook-bignumber
Version:
Node.js Lmit Order Book for high-frequency trading (HFT).
73 lines (72 loc) • 2.64 kB
TypeScript
import type BigNumber from "bignumber.js";
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: BigNumber;
_time: number;
constructor(options: OrderOptions);
get id(): string;
get side(): Side;
get size(): BigNumber;
set size(size: BigNumber);
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: BigNumber;
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(): BigNumber;
set price(price: BigNumber);
get timeInForce(): TimeInForce;
get postOnly(): boolean;
get origSize(): BigNumber;
get makerQty(): BigNumber;
get takerQty(): BigNumber;
get ocoStopPrice(): BigNumber | 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(): BigNumber;
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(): BigNumber;
set price(price: BigNumber);
get stopPrice(): BigNumber;
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 {};