// 1. 简单金叉策略(只有买入信号)
const result = await client.quant.backtest({
startDate: '2023-01-01',
endDate: '2024-01-01',
symbol: '000001',
entryFormula: 'CROSS(MA(CLOSE, 5), MA(CLOSE, 20))'
});
console.log(`总收益: ${result.total_return.toFixed(2)}`);
console.log(`收益率: ${(result.total_return_pct * 100).toFixed(2)}%`);
console.log(`最大回撤: ${(result.max_drawdown * 100).toFixed(2)}%`);
console.log(`胜率: ${(result.win_rate * 100).toFixed(2)}%`);
console.log(`盈亏比: ${result.profit_factor.toFixed(2)}`);
console.log(`交易次数: ${result.total_trades}`);
// 2. 买入和卖出信号都指定
const result2 = await client.quant.backtest({
startDate: '2023-01-01',
endDate: '2024-01-01',
symbol: '000001',
entryFormula: 'CROSS(MA(CLOSE, 5), MA(CLOSE, 20))', // 金叉买入
exitFormula: 'CROSSDOWN(MA(CLOSE, 5), MA(CLOSE, 20))' // 死叉卖出
});
// 3. RSI 超卖超买策略
const result3 = await client.quant.backtest({
startDate: '2023-01-01',
endDate: '2024-01-01',
symbol: '000001',
entryFormula: 'RSI(14) < 30', // RSI 低于 30 买入
exitFormula: 'RSI(14) > 70' // RSI 高于 70 卖出
});
// 4. 使用 labels 记录额外指标
const result4 = await client.quant.backtest({
startDate: '2023-01-01',
endDate: '2024-01-01',
symbol: '000001',
entryFormula: 'CROSS(RSI(14), 30)',
labels: {
rsi: 'RSI(14)',
ma20: 'MA(CLOSE, 20)',
ma60: 'MA(CLOSE, 60)'
}
});
// 每日数据中会包含 rsi、ma20、ma60 的值