import { apiClient } from './client' export interface PortfolioBacktestReq { pool: string start_date: string end_date: string initial_cash: number benchmark?: string } export interface EquityPoint { date: string equity: number } export interface StockPicked { code: string name: string amount: number avg_cost: number price: number value: number } export interface PortfolioTrade { datetime?: string date?: string code?: string side?: string action?: string amount?: number filled_amount?: number price?: number filled_price?: number commission?: number status?: string } export interface PortfolioMetrics { total_return: number | null annual_return: number | null max_drawdown: number | null sharpe: number | null win_rate_daily: number | null win_rate_trade: number | null trading_days: number | null } export interface PortfolioBacktestResult { strategy: string period: { start: string; end: string; trading_days: number } stocks_selected: StockPicked[] trades: PortfolioTrade[] equity_curve: EquityPoint[] metrics: PortfolioMetrics raw_summary?: Record } export async function postPortfolioBacktest( req: PortfolioBacktestReq, ): Promise { const { data } = await apiClient.post( '/portfolio/backtest', req, { timeout: 600000 }, ) return data }