UNPKG

hft-js

Version:

High-Frequency Trading in Node.js

111 lines (110 loc) 4.49 kB
import { CTPProvider } from "./provider.js"; import type { OffsetType, OrderData, OrderFlag, ProductType, SideType, TickData } from "./typedef.js"; import type { ICancelOrderResultReceiver, ICommissionRateReceiver, IInstrumentReceiver, IInstrumentsReceiver, ILifecycleListener, IMarginRateReceiver, IOrderReceiver, IOrdersReceiver, IPlaceOrderResultReceiver, IPositionDetailsReceiver, IPositionReceiver, IPositionsReceiver, ITraderProvider, ITradingAccountsReceiver } from "./interfaces.js"; export type CTPUserInfo = { BrokerID: string; UserID: string; Password: string; InvestorID: string; UserProductInfo: string; AuthCode: string; AppID: string; }; export type FastQueryLastTickFunc = (instrumentId: string) => TickData | undefined; export type TraderOptions = { fastQueryLastTick?: FastQueryLastTickFunc; }; export declare class Trader extends CTPProvider implements ITraderProvider { private traderApi?; private tradingDay; private frontId; private sessionId; private orderRef; private accountsQueryTime; private positionDetailsChanged; private readonly fastQueryLastTick?; private readonly userInfo; private readonly receivers; private readonly accounts; private readonly positionDetails; private readonly instruments; private readonly positions; private readonly orders; private readonly trades; private readonly marginRates; private readonly commRates; private readonly placeOrders; private readonly cancelOrders; private readonly marketOrdersQueue; private readonly priceLimit; private readonly orderStatistics; private readonly marginRatesQueue; private readonly commRatesQueue; private readonly accountsQueue; private readonly positionDetailsQueue; constructor(flowTdPath: string, frontTdAddrs: string | string[], userInfo: CTPUserInfo, options?: TraderOptions); open(lifecycle: ILifecycleListener): boolean; close(lifecycle: ILifecycleListener): void; addOrderReceiver(receiver: IOrderReceiver): void; removeOrderReceiver(receiver: IOrderReceiver): 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, type?: ProductType): void; queryTradingAccounts(receiver: ITradingAccountsReceiver): void; queryPositionDetails(receiver: IPositionDetailsReceiver): void; queryPositions(receiver: IPositionsReceiver): void; queryOrders(receiver: IOrdersReceiver): void; private _placeLimitOrder; private _clearAllMarketOrders; private _placeMarketOrder; placeOrder(symbol: string, offset: OffsetType, side: SideType, volume: number, price: number, flag: OrderFlag, receiver: IPlaceOrderResultReceiver): void; cancelOrder(order: OrderData, receiver: ICancelOrderResultReceiver): void; private _toSymbol; private _calcOrderId; private _calcReceiptId; private _calcOrderStatus; private _calcOrderFlag; private _calcSideType; private _toDirection; private _calcOffsetType; private _toOffsetFlag; private _calcProductType; private _calcOptionsType; private _ensurePositionInfo; private _ensureOrderStatistic; private _calcPosition; private _recordPending; private _recoverPending; private _freezePosition; private _unfreezePosition; private _toTradeData; private _toOrderData; private _toInstrumentData; private _toCommissionRate; private _toMarginRate; private _toTradingAccount; private _toPositionDetail; private _toPositionData; private _processMarginRatesQueue; private _processCommissionRatesQueue; } export declare const createTrader: (flowTdPath: string, frontTdAddrs: string | string[], userInfo: CTPUserInfo, options?: TraderOptions) => Trader;