starchild-widget
Version:
Starchild Widget
274 lines • 7.46 kB
TypeScript
/**
* Trade API 类型定义
* 基于 Orderly Network API 文档
*/
export type OrderSide = 'BUY' | 'SELL';
export type OrderType = 'LIMIT' | 'MARKET' | 'IOC' | 'FOK' | 'POST_ONLY' | 'ASK' | 'BID' | 'CLOSE_POSITION';
export type AlgoOrderType = 'STOP' | 'TP_SL' | 'POSITIONAL_TP_SL' | 'BRACKET' | 'TAKE_PROFIT' | 'STOP_LOSS';
export type TriggerPriceType = 'MARK_PRICE';
export type OrderStatus = 'NEW' | 'CANCELLED' | 'PARTIAL_FILLED' | 'FILLED' | 'REJECTED' | 'INCOMPLETE' | 'COMPLETED';
export type AlgoOrderStatus = 'NEW' | 'CANCELLED' | 'PARTIAL_FILLED' | 'FILLED' | 'REJECTED' | 'INCOMPLETE' | 'COMPLETED';
export type SortBy = 'CREATED_TIME_DESC' | 'CREATED_TIME_ASC' | 'UPDATED_TIME_DESC' | 'UPDATED_TIME_ASC';
export interface GetPendingOrdersParams {
symbol?: string;
side?: OrderSide;
order_type?: 'LIMIT' | 'MARKET';
order_tag?: string;
start_t?: number;
end_t?: number;
page?: number;
size?: number;
sort_by?: SortBy;
}
export interface GetPendingAlgoOrdersParams {
symbol?: string;
order_type?: 'LIMIT' | 'MARKET';
status?: AlgoOrderStatus;
order_tag?: string;
start_t?: number;
end_t?: number;
page?: number;
size?: number;
side?: OrderSide;
algo_type?: AlgoOrderType;
is_triggered?: string;
}
export interface CreateOrderParams {
symbol: string;
order_type: OrderType;
side: OrderSide;
client_order_id?: string;
order_price?: number;
order_quantity?: number;
order_amount?: number;
visible_quantity?: number;
reduce_only?: boolean;
slippage?: number;
order_tag?: string;
level?: number;
post_only_adjust?: boolean;
}
export interface AlgoChildOrderParams {
symbol: string;
algo_type: AlgoOrderType;
side: OrderSide;
type: OrderType;
trigger_price: number;
trigger_price_type?: TriggerPriceType;
price?: number;
quantity?: number;
reduce_only?: boolean;
child_orders?: AlgoChildOrderParams[];
}
export interface CreateAlgoOrderParams {
symbol: string;
algo_type: AlgoOrderType;
side?: OrderSide;
type?: OrderType;
price?: number;
quantity?: number;
trigger_price?: number;
trigger_price_type?: TriggerPriceType;
reduce_only?: boolean;
visible_quantity?: boolean;
order_tag?: string;
client_order_id?: string;
child_orders?: AlgoChildOrderParams[];
}
export interface OrderInfo {
order_id: number;
user_id: number;
price: number;
type: string;
quantity: number;
amount: number;
executed_quantity: number;
total_executed_quantity: number;
visible_quantity: number;
symbol: string;
side: OrderSide;
status: OrderStatus;
total_fee: number;
fee_asset: string;
client_order_id: number | string;
average_executed_price: number;
created_time: number;
updated_time: number;
realized_pnl: number;
}
export interface AlgoOrderInfo {
algo_order_id: number;
algo_status: AlgoOrderStatus;
algo_type: AlgoOrderType;
fee_asset: string;
is_triggered: string;
order_tag: string;
parent_algo_order_id: number;
quantity: number;
root_algo_order_id: number;
root_algo_order_status: AlgoOrderStatus;
side: OrderSide;
symbol: string;
executed_quantity: number;
total_executed_quantity: number;
total_fee: number;
trigger_price: number;
trigger_price_type: TriggerPriceType;
type: OrderType;
created_time: number;
updated_time: number;
visible_quantity: number;
realized_pnl: number;
child_orders: any[];
}
export interface ApiResponseMeta {
total: number;
records_per_page: number;
current_page: number;
}
export interface GetOrdersResponse {
success: boolean;
timestamp: number;
data: {
meta: ApiResponseMeta;
rows: OrderInfo[];
};
}
export interface GetAlgoOrdersResponse {
success: boolean;
timestamp: number;
data: {
meta: ApiResponseMeta;
rows: AlgoOrderInfo[];
};
}
export interface CreateOrderResponse {
success: boolean;
timestamp: number;
data: {
order_id: number;
client_order_id: string | number;
status: OrderStatus;
};
}
export interface CreateAlgoOrderResponse {
success: boolean;
timestamp: number;
data: {
rows: {
order_id: number;
client_order_id: string | number;
algo_type: AlgoOrderType;
quantity: number;
}[];
};
}
export interface ApiErrorResponse {
success: false;
code: number;
message: string;
timestamp: number;
}
export interface GetLeverageSettingResponse {
success: boolean;
timestamp: number;
data: {
symbol: string;
leverage: number;
};
}
export interface UpdateLeverageSettingResponse {
success: boolean;
timestamp: number;
data: {
symbol: string;
leverage: number;
};
}
export interface OriginSymbolOrderRulesInfo {
symbol: string;
quote_min: number;
quote_max: number;
quote_tick: number;
base_min: number;
base_max: number;
base_tick: number;
min_notional: number;
price_range: number;
price_scope: number;
std_liquidation_fee: number;
liquidator_fee: number;
claim_insurance_fund_discount: number;
funding_period: number;
cap_funding: number;
floor_funding: number;
cap_ir: number;
floor_ir: number;
interest_rate: number;
imr_factor: number;
created_time: number;
updated_time: number;
base_mmr: number;
base_imr: number;
liquidation_tier: number;
global_max_oi_cap: number;
}
export interface GetSymbolOrderRulesResponse {
success: boolean;
timestamp: number;
data: OriginSymbolOrderRulesInfo;
}
export interface SymbolMarketInfo {
symbol: string;
index_price: number;
mark_price: number;
sum_unitary_funding: number;
est_funding_rate: number;
last_funding_rate: number;
next_funding_time: number;
open_interest: string | number;
'24h_open': number;
'24h_close': number;
'24h_high': number;
'24h_low': number;
'24h_amount': number;
'24h_volume': number;
}
export interface GetSymbolMarketInfoResponse {
success: boolean;
timestamp: number;
data: SymbolMarketInfo;
}
/**
* 扩展的 SymbolOrderRulesInfo 接口,包含预计算的 decimal 值和解析的代币信息
*/
export interface SymbolInfo extends OriginSymbolOrderRulesInfo {
/** 数量小数位数 (基于 base_tick) */
quantityDecimal: number;
/** 价格小数位数 (基于 quote_tick) */
priceDecimal: number;
/** 基础代币 (从 symbol 解析得到, 如 PERP_BTC_USDC 中的 BTC) */
baseToken: string;
/** 报价代币 (从 symbol 解析得到, 如 PERP_BTC_USDC 中的 USDC) */
quoteToken: string;
}
export interface AccountInfo {
account_id: string;
email: string;
account_mode: string;
max_leverage: number;
taker_fee_rate: number;
maker_fee_rate: number;
futures_taker_fee_rate: number;
futures_maker_fee_rate: number;
maintenance_cancel_orders: boolean;
imr_factor: Record<string, number>;
max_notional: Record<string, number>;
}
export interface GetAccountInfoResponse {
success: boolean;
timestamp: number;
data: AccountInfo;
}
export type ApiResponse<T> = T | ApiErrorResponse;
//# sourceMappingURL=trade.d.ts.map