mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-11 09:18:08 +00:00
- Introduced a clientOrderId system for better order identification. - Updated order creation logic to ensure unique clientOrderIds. - Improved order cancellation methods to maintain accurate current orders. - Added tests for new clientOrderId functionality and level state tracking. - Ensured that desired orders have an intent field set for clarity. - Enhanced snapshot functionality to include level states for grid lines.
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import type { ExchangeAdapter } from "./adapter";
|
|
import type { OrderSide, TimeInForce } from "./types";
|
|
|
|
export interface BaseOrderIntent {
|
|
adapter: ExchangeAdapter;
|
|
symbol: string;
|
|
side: OrderSide;
|
|
quantity: number;
|
|
reduceOnly?: boolean;
|
|
closePosition?: boolean;
|
|
timeInForce?: TimeInForce | "GTX";
|
|
clientOrderId?: string;
|
|
}
|
|
|
|
export interface LimitOrderIntent extends BaseOrderIntent {
|
|
price: number;
|
|
slPrice?: number;
|
|
tpPrice?: number;
|
|
}
|
|
|
|
export interface MarketOrderIntent extends BaseOrderIntent {
|
|
expectedPrice?: number | null;
|
|
}
|
|
|
|
export interface StopOrderIntent extends BaseOrderIntent {
|
|
stopPrice: number;
|
|
triggerType?: "UNSPECIFIED" | "TAKE_PROFIT" | "STOP_LOSS";
|
|
}
|
|
|
|
export interface TrailingStopOrderIntent extends BaseOrderIntent {
|
|
activationPrice: number;
|
|
callbackRate: number;
|
|
}
|
|
|
|
export interface ClosePositionIntent extends BaseOrderIntent {
|
|
expectedPrice?: number | null;
|
|
}
|
|
|
|
export type ExchangeOrderType = "limit" | "market" | "stop" | "trailingStop" | "close";
|
|
|
|
export function toStringBoolean(value: boolean | undefined): "true" | "false" | undefined {
|
|
if (value === undefined) return undefined;
|
|
return value ? "true" : "false";
|
|
}
|
|
|