{"openapi": "3.0.3", "info": {"title": "Backtest Reconcile", "version": "0.1.0", "description": "Recompute backtest metrics from the trade list and compare them with the claimed numbers."}, "servers": [{"url": "https://backtest.pokt-agent.com"}], "paths": {"/v1/version": {"get": {"summary": "Identity", "responses": {"200": {"description": "service id and version"}}}}, "/v1/health": {"get": {"summary": "Readiness", "responses": {"200": {"description": "{status: ok}"}}}}, "/v1/rules": {"get": {"summary": "Finding codes and comparable metrics", "responses": {"200": {"description": "backtest-reconcile-rules/v1"}}}}, "/v1/reconcile": {"post": {"summary": "Reconcile claimed metrics with the trades", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"trades_csv": {"type": "string", "description": "TradingView Strategy Tester 'List of trades' CSV export"}, "trades": {"type": "array", "items": {"type": "object", "properties": {"n": {}, "side": {"type": "string", "enum": ["long", "short"]}, "entry_time": {"type": "string"}, "exit_time": {"type": "string"}, "entry_price": {"type": "number"}, "exit_price": {"type": "number"}, "qty": {"type": "number"}, "commission": {"type": "number"}, "reported_pnl": {"type": "number"}}}}, "initial_capital": {"type": "number"}, "commission": {"type": "object", "properties": {"type": {"type": "string", "enum": ["percent", "per_contract", "cash_per_order"]}, "value": {"type": "number"}}}, "claimed": {"type": "object", "description": "any of: net_profit, net_profit_pct, gross_profit, gross_loss, total_trades, win_rate, profit_factor, max_drawdown, max_drawdown_pct, avg_trade, largest_win, largest_loss"}, "tolerance_pct": {"type": "number", "default": 0.5}, "single_position": {"type": "boolean", "default": true}}}}}}, "responses": {"200": {"description": "backtest-reconcile/v1"}, "400": {"description": "BAD_REQUEST"}}}}}}