import { apiClient } from './client' export interface StrategyCfg { name: string params: Record match_session: string symbol: string listing_days?: number } export interface PaperCreate { mode: string interval: string symbols: string[] strategies: StrategyCfg[] initial_capital: number start: string end: string } export interface PaperAccount { id: number name: string mode: string interval: string status: string symbols?: string initial_capital?: number start_date?: string end_date?: string last_run_date?: string | null next_run_at?: string | null checkpoint_date?: string | null error_msg?: string | null /** 列表端点附带的最新净值 / 收益(单账户 GET 不含) */ latest_equity?: number | null latest_date?: string | null total_return?: number | null instance?: string } export interface BalancePoint { date: string cash: number market_value: number total_equity: number is_checkpoint: number } export interface PaperTrade { strategy_id: string symbol: string direction: string price: number volume: number commission: number rejected: number reject_reason: string bar_date: string } export interface StrategySummary { strategy_id: string total_orders: number filled: number rejected: number commission: number } export interface PositionRow { symbol: string volume: number frozen: number avg_price: number } export interface PendingOrder { strategy_id: string symbol: string side: string price: number volume: number is_market: boolean match_session: string listing_days: number } export async function createPaper(req: PaperCreate): Promise { const { data } = await apiClient.post<{ account_id: number }>('/paper/create', req) return data.account_id } export async function listPapers(): Promise { const { data } = await apiClient.get<{ accounts: PaperAccount[] }>('/paper') return data.accounts } export async function getPaper(aid: number): Promise { const { data } = await apiClient.get(`/paper/${aid}`) return data } export async function getEquity(aid: number): Promise { const { data } = await apiClient.get(`/paper/${aid}/equity`) return data } export async function getTrades(aid: number): Promise { const { data } = await apiClient.get(`/paper/${aid}/trades`) return data } export async function getStrategies(aid: number): Promise { const { data } = await apiClient.get(`/paper/${aid}/strategies`) return data } export async function getPositions(aid: number): Promise { const { data } = await apiClient.get(`/paper/${aid}/positions`) return data } export async function getPending(aid: number): Promise { const { data } = await apiClient.get(`/paper/${aid}/pending`) return data }