UNPKG

hft-js

Version:

High-Frequency Trading in Node.js

53 lines (52 loc) 2.96 kB
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;