hft-js
Version:
High-Frequency Trading in Node.js
53 lines (52 loc) • 2.96 kB
TypeScript
import type { OffsetType, OrderData, OrderFlag, SideType } from "./typedef.js";
import type { ICancelOrderResultReceiver, ICancelOrderRiskManager, ICommissionRateReceiver, IErrorReceiver, IInstrumentReceiver, IInstrumentsReceiver, IMarginRateReceiver, IMarketProvider, IOrdersReceiver, IPlaceOrderRiskManager, IPositionsReceiver, IRuntimeEngine, IStrategy, ITickReceiver, ITraderProvider, ITradingAccountsReceiver, IPlaceOrderResultReceiver, IPositionReceiver, IPositionDetailsReceiver, IBarReceiver } from "./interfaces.js";
export declare class Broker implements IRuntimeEngine {
private readonly trader;
private readonly market;
private readonly traderLifecycle;
private readonly marketLifecycle;
private readonly strategies;
private readonly placeOrderRiskManagers;
private readonly cancelOrderRiskManagers;
private readonly generators;
constructor(trader: ITraderProvider, market: IMarketProvider, errorReceiver?: IErrorReceiver);
start(): boolean;
stop(): void;
addStrategy(strategy: IStrategy): void;
removeStrategy(strategy: IStrategy): void;
addPlaceOrderRiskManager(riskMgr: IPlaceOrderRiskManager): void;
addCancelOrderRiskManager(riskMgr: ICancelOrderRiskManager): void;
subscribe(symbols: string[], receiver: ITickReceiver): void;
unsubscribe(symbols: string[], receiver: ITickReceiver): void;
subscribeBar(symbols: string[], receiver: IBarReceiver): void;
unsubscribeBar(symbols: string[], receiver: IBarReceiver): void;
placeOrder(strategy: IStrategy, symbol: string, offset: OffsetType, side: SideType, volume: number, price: number, flag: OrderFlag, receiver: IPlaceOrderResultReceiver): void;
cancelOrder(strategy: IStrategy, order: OrderData, receiver: ICancelOrderResultReceiver): void;
getTradingDay(): number;
getOrderStatistics(): Readonly<{
symbol: string;
places: number;
entrusts: number;
filleds: number;
cancels: number;
rejects: number;
}>[];
getOrderStatistic(symbol: string): Readonly<{
symbol: string;
places: number;
entrusts: number;
filleds: number;
cancels: number;
rejects: number;
}>;
queryCommissionRate(symbol: string, receiver: ICommissionRateReceiver): void;
queryMarginRate(symbol: string, receiver: IMarginRateReceiver): void;
queryInstrument(symbol: string, receiver: IInstrumentReceiver): void;
queryPosition(symbol: string, receiver: IPositionReceiver): void;
queryInstruments(receiver: IInstrumentsReceiver): void;
queryTradingAccounts(receiver: ITradingAccountsReceiver): void;
queryPositions(receiver: IPositionsReceiver): void;
queryPositionDetails(receiver: IPositionDetailsReceiver): void;
queryOrders(receiver: IOrdersReceiver): void;
}
export declare const createBroker: (trader: ITraderProvider, market: IMarketProvider, errorReceiver?: IErrorReceiver) => Broker;