/** * 端到端研究管线(dsh-execution 域):一条函数跑通 PDAT→PET 全链路。 * * 数据 → 质量 → 统计 → 指标 → 回测 → 指标库 → 风控 → 回撤 → 基金 → * 因子 → 报告 → 图表。所有环节复用各域纯函数,输出一个可直接写进 * 研究报告/UI 的结果包。 */ import type { Candle, Interval, MarketProvider } from '../dsh-data/market.js'; import { candlesCheck, seriesStats } from '../dsh-data/stats.js'; import { factorEvaluate } from '../dsh-alpha/factor.js'; import { equityMetrics, tradeMetrics } from '../dsh-ml/metrics.js'; import { riskMetrics } from '../dsh-risk/risk.js'; import { drawdownAnalysis } from '../dsh-risk/drawdown.js'; import { fundSimulate } from './fund.js'; import type { ChartData } from './chart.js'; export interface PipelineOptions { /** 直接提供 K 线则跳过网络获取 */ candles?: readonly Candle[]; symbol?: string; interval?: Interval; limit?: number; provider?: MarketProvider; /** 双均线参数(默认 5/20) */ fast?: number; slow?: number; feeRate?: number; stopLoss?: number; takeProfit?: number; /** 因子评估窗口(默认 20) */ factorWindow?: number; /** 基金初始资金(默认 1 亿) */ initialCapital?: number; } export interface PipelineResult { symbol: string; provider: string; interval: string; candles: { count: number; from: number; to: number; }; quality: ReturnType; stats: ReturnType; metrics: ReturnType & { trades: ReturnType; }; risk: ReturnType; drawdown: ReturnType; fund: ReturnType; factor: ReturnType; report: string; charts: { candles: ChartData; equity: ChartData; underwater: ChartData; }; } /** 跑通全链路研究:返回可直接消费的结果包(含 Markdown 报告与图表数据)。 */ export declare function researchPipeline(options: PipelineOptions, signal: AbortSignal): Promise; export interface MultiAssetItem { symbol: string; result: PipelineResult | null; error: string | null; } export interface MultiAssetResult { items: MultiAssetItem[]; succeeded: number; failed: number; } /** * 多标的并行研究:每个标的一条 researchPipeline,Promise.all 并行执行, * 单标的失败不阻断其他标的。 * * 在 dsh 会话中的规模化用法:把每个 symbol 交给一个 subagent(官方 * subagent 包),subagent 内部调用 quant_research_pipeline;本函数是 * 纯 TS 侧的并行实现与离线测试载体。 */ export declare function researchMultiAsset(symbols: readonly string[], options: Omit, signal: AbortSignal, candlesBySymbol?: Readonly>): Promise;