UNPKG

@thoshpathi/utils-smartapi-order

Version:

Utility functions for placing live and dummy orders using Angel One's SmartAPI, with helper methods for streamlined trading workflows.

54 lines (50 loc) 3.13 kB
import { SmartApiEnhanced, OrderStatus, InstrumentDump, ScripLtpMap, CandleInterval } from '@thoshpathi/utils-smartapi'; import { Logger } from '@thoshpathi/utils-core'; import { InstrumentDumpRepo, IndexScripRepo, OrderRepo, IndexTrendMapData, Order, CloseOrderParams, NewOrder, OpenOrderParams, OrderCloseTrackData, ResultSetHeader } from '../types.mjs'; interface IOrderHelper { handleScripsTrendReversal(data: IndexTrendMapData): Promise<void>; handleDaySquareoff(): Promise<boolean | undefined>; processOrdersSquareoff(openOrders: Order[], status: OrderStatus): Promise<boolean | undefined>; handleOpenOrdersTracking(): Promise<void>; } interface OrderHelperParams { smartapi: SmartApiEnhanced; logger: Logger; instrumentDumpRepo: InstrumentDumpRepo; indexScripRepo: IndexScripRepo; orderRepo: OrderRepo; orderVerfiyWaitMs?: number; strikeRoundBy?: 50 | 100; minimumPremium?: number; } declare abstract class OrderHelper implements IOrderHelper { protected readonly smartapi: SmartApiEnhanced; protected readonly logger: Logger; protected readonly instrumentDumpRepo: InstrumentDumpRepo; protected readonly indexScripRepo: IndexScripRepo; protected readonly orderRepo: OrderRepo; protected readonly orderVerfiyWaitMs: number; protected readonly strikeRoundBy: number; protected readonly minimumPremium: number; constructor(params: OrderHelperParams); abstract handleScripsTrendReversal(indexTrendData: IndexTrendMapData): Promise<void>; abstract handleDaySquareoff(): Promise<boolean | undefined>; abstract processOrdersSquareoff(openOrders: Order[], status: OrderStatus): Promise<boolean | undefined>; abstract handleOpenOrdersTracking(): Promise<void>; protected abstract closeTrendOpenOrders(...args: unknown[]): Promise<boolean | undefined>; protected abstract placeNewTrendOrders(...args: unknown[]): Promise<void>; protected abstract generateCloseOrderParams(openOrders: Order[], status: OrderStatus, ...args: unknown[]): Promise<CloseOrderParams[] | undefined>; protected getScripLtpMap(symbols: string[], instrumentDumps: InstrumentDump[]): Promise<ScripLtpMap>; protected getOrdersLtpMap(orders: Array<Order | NewOrder>): Promise<ScripLtpMap>; protected generateOrderId(): string; protected getStrike(ltp: number): number; private getNakedFixedPremiumScrips; private getStrategyScripMap; protected getTrendNewOrders({ candleInterval, scripTrendMap, }: IndexTrendMapData): Promise<NewOrder[] | undefined>; protected updateEntryPriceOfOrders(newOrders: NewOrder[]): Promise<NewOrder[]>; protected getOpenOrders(params: OpenOrderParams): Promise<undefined | Order[]>; protected getOrderCloseTrackDatas(): Promise<undefined | OrderCloseTrackData[]>; protected createOrders(newOrders: NewOrder[], candleInterval: CandleInterval): Promise<ResultSetHeader | undefined>; protected updateOrdersClose(closeOrders: CloseOrderParams[]): Promise<ResultSetHeader[] | undefined>; } export { type IOrderHelper, OrderHelper, type OrderHelperParams, OrderHelper as default };