名称: 策略
描述: “使用自然语言构建和管理自定义交易策略”
表情符号: “🎯”
策略 - 完整 API 参考
使用自然语言或模板创建自定义交易策略,然后部署到实时交易。
聊天命令
创建策略
/策略 创建 "当价格在1小时内下跌5%时买入"
/策略 创建 动量 --回顾期 14 --阈值 2%
/策略 从模板 均值回归
管理策略
/策略列表 列出所有策略
/策略 <名称> 查看策略详情
/策略 编辑 <名称> 修改策略
/策略 删除 <名称> 移除策略
激活/停用
/策略 激活 <名称> 开始运行策略
/策略 停用 <名称> 停止策略
/策略 暂停 <名称> 临时暂停
/策略 恢复 <名称> 恢复暂停的策略
测试与验证
/策略 测试 <名称> --模拟运行 测试而不进行真实交易
/策略 回测 <名称> 运行回测
/策略 验证 <名称> 检查错误
TypeScript API 参考
创建策略构建器
import { createStrategyBuilder } from 'clodds/strategy';
const builder = createStrategyBuilder({
// 验证
requireDryRun: true,
validateParameters: true,
// 存储
storage: 'sqlite',
dbPath: './strategies.db',
});
自然语言策略
// 从自然语言创建
const strategy = await builder.fromNaturalLanguage({
description: `
在任何市场上买入YES当:
- 价格在过去一小时内下跌超过5%
- 成交量高于平均水平
- 价差小于2%
卖出当:
- 价格从入场点恢复3%
- 或24小时后(超时)
风险:每笔交易最大投资组合的5%
`,
name: 'dip-buyer',
});
console.log(`已创建: ${strategy.name}`);
console.log(`条件数量: ${strategy.conditions.length}`);
基于模板的策略
// 动量策略
const momentum = await builder.fromTemplate('momentum', {
lookbackPeriod: 14,
entryThreshold: 0.02,
exitThreshold: 0.01,
stopLoss: 0.05,
takeProfit: 0.10,
maxPositionPct: 10,
});
// 均值回归策略
const meanReversion = await builder.fromTemplate('mean-reversion', {
lookbackPeriod: 20,
deviationThreshold: 2, // 标准差
exitOnMean: true,
stopLoss: 0.08,
});
// 套利策略
const arbitrage = await builder.fromTemplate('arbitrage', {
minSpread: 0.02,
platforms: ['polymarket', 'kalshi'],
maxSlippage: 0.01,
});
// 突破策略
const breakout = await builder.fromTemplate('breakout', {
rangePeriod: '7d',
breakoutThreshold: 0.05,
confirmationVolume: 1.5, // 1.5倍平均成交量
});
自定义策略代码
// 完整自定义策略
const custom = await builder.create({
name: 'my-custom-strategy',
description: '买入低价格、高成交量的市场',
// 入场条件(所有必须为真)
entryConditions: [
{ type: 'price', operator: '<', value: 0.30 },
{ type: 'volume24h', operator: '>', value: 50000 },
{ type: 'spread', operator: '<', value: 0.02 },
],
// 出场条件(任何触发出场)
exitConditions: [
{ type: 'profit', operator: '>=', value: 0.15 },
{ type: 'loss', operator: '>=', value: 0.10 },
{ type: 'holdTime', operator: '>=', value: '48h' },
],
// 风险管理
risk: {
maxPositionPct: 5,
stopLoss: 0.10,
takeProfit: 0.20,
maxConcurrentPositions: 5,
},
// 执行
execution: {
orderType: 'limit',
limitBuffer: 0.005,
retries: 3,
},
});
验证策略
const validation = await builder.validate(strategy);
if (validation.valid) {
console.log('✅ 策略有效');
} else {
console.log('❌ 验证错误:');
for (const error of validation.errors) {
console.log(` - ${error}`);
}
}
// 警告(非阻塞)
for (const warning of validation.warnings) {
console.log(`⚠️ ${warning}`);
}
激活策略
// 首先进行模拟运行(必需)
await builder.activate(strategy.name, {
dryRun: true,
notifyOnTrade: true,
});
// 验证后,进行实时交易
await builder.activate(strategy.name, {
dryRun: false,
capital: 5000, // 分配5000美元
});
监控策略
const status = await builder.getStatus(strategy.name);
console.log(`状态: ${status.status}`); // 'active' | 'paused' | 'stopped'
console.log(`交易次数: ${status.trades}`);
console.log(`盈亏: $${status.pnl}`);
console.log(`胜率: ${status.winRate}%`);
console.log(`活跃头寸: ${status.activePositions}`);
console.log(`上次信号: ${status.lastSignal}`);
列出策略
const strategies = await builder.list();
for (const s of strategies) {
console.log(`${s.name}: ${s.status}`);
console.log(` 类型: ${s.template || 'custom'}`);
console.log(` 盈亏: $${s.pnl}`);
console.log(` 交易次数: ${s.trades}`);
}
内置模板
| 模板 |
描述 |
momentum |
跟随价格趋势 |
mean-reversion |
买入低点,卖出高点 |
arbitrage |
跨平台价差套利 |
breakout |
范围突破入场 |
pairs |
相关市场对交易 |
news-reactive |
对新闻事件反应 |
volume-spike |
基于成交量激增交易 |
条件类型
| 类型 |
描述 |
示例 |
price |
当前价格 |
< 0.30 |
volume24h |
24小时成交量 |
> 50000 |
spread |
买卖价差 |
< 0.02 |
profit |
未实现利润 |
>= 0.15 |
loss |
未实现亏损 |
>= 0.10 |
holdTime |
持仓时间 |
>= 48h |
priceChange |
价格变化百分比 |
< -0.05 (下跌5%) |
最佳实践
- 始终先进行模拟运行 — 在真实资金前测试
- 从小开始 — 低资本直到验证成功
- 设置止损 — 保护免受坏交易
- 主动监控 — 检查策略性能
- 迭代改进 — 基于结果优化