DELTA_HEDGING_INTEGRATED.md 7.4 KB

✅ Delta 对冲机制完整集成报告

🎯 集成目标

确保净敞口 < 0.0001 BTC (约 $10 USDC),实现真正的 Delta 中性。


✅ 已完成的集成

1. 策略引擎改造 - 使用绝对阈值

文件: src/strategies/SimpleStrategyEngine.ts:318-379

核心改动:

// ✅ 使用绝对阈值检测(更精确,防止小敞口被忽略)
const ABSOLUTE_THRESHOLD_BTC = 0.0001; // 0.0001 BTC ≈ $10 USDC
const absoluteExposure = Math.abs(totalPositionBTC);
const shouldRebalance = absoluteExposure > ABSOLUTE_THRESHOLD_BTC;

if (shouldRebalance) {
  // ✅ 100% 对冲整个敞口(而非 50%)
  const balanceAmount = absoluteExposure;
  // ... 生成对冲信号
}

关键特性:

  • 绝对阈值优先:不再依赖百分比,直接使用 BTC 数量判断
  • 100% 对冲:整个敞口全部对冲,不留余地
  • 实时日志:每个周期输出详细的 Delta 评估信息

2. 增强日志输出

每个交易周期都会输出:

📊 Delta Assessment {
  symbol: 'BTC',
  totalPositionBTC: '0.00150',           // 当前净敞口
  positionValueUSDC: '150.00',
  absoluteExposure: '0.00150 BTC',       // 绝对敞口
  absoluteThreshold: '0.00010 BTC',      // 阈值
  shouldRebalance: '⚠️  YES',            // 是否触发对冲
  weightedDelta: '0.0075%',
  currentTolerance: '0.1000%',
  recommendation: 'urgent_adjust'
}

3. 对冲信号生成

当触发对冲时:

⚖️ DELTA EXCEEDS ABSOLUTE THRESHOLD - Generating 100% rebalance signal {
  totalPositionBTC: '0.00150',
  absoluteExposure: '0.00150 BTC',
  threshold: '0.00010 BTC',
  balanceAmount: '0.00150 BTC',          // 100% 对冲
  balanceSide: 'ask',
  targetAccount: 'account-1'
}

4. 优化配置文件

config/trading-strategy.json

{
  "deltaRebalancing": {
    "enabled": true,
    "checkInterval": 30,                    // 30秒检查一次(加快响应)
    "absoluteThreshold": 0.0001,            // 硬编码在策略引擎中
    "rebalanceThreshold": 0.01,             // 1%(后备)
    "maxDeltaDeviation": 0.0005             // 0.05%(更严格)
  },
  "intervals": {
    "volumeTrading": 3,                     // 3秒交易一次
    "deltaMonitoring": 30,                  // 30秒监控一次
    "orderCheck": 3                         // 3秒检查订单
  }
}

config/delta-strategy-config.json

{
  "delta": {
    "baseDeltaTolerance": 0.001,            // 0.1%(从 0.5% 降到 0.1%)
    "stableDeltaTolerance": 0.001,
    "volatileDeltaTolerance": 0.02,
    "rebalanceThreshold": 0.01              // 1%(从 5% 降到 1%)
  }
}

5. SignalExecutor 优化

文件: src/services/SignalExecutor.ts

关键特性:

  • 420 错误不重试:无持仓时跳过减仓订单
  • 对冲对原子性:检测配对信号并确保同时成功或失败
  • 自动回滚:单边成功时取消订单避免敞口

📊 工作流程

每个交易周期:

1. 获取账户仓位数据
   ↓
2. 计算总净敞口 (totalPositionBTC)
   ↓
3. 检查绝对阈值
   absoluteExposure > 0.0001 BTC ?
   ↓ YES
4. 生成 100% 对冲信号
   type: 'balance'
   amount: absoluteExposure
   side: 相反方向
   ↓
5. SignalExecutor 执行对冲
   ↓
6. 下个周期验证
   敞口应该 < 0.0001 BTC

🚀 使用方法

启动策略

# 编译
npm run build

# 运行策略
npm run trade

实时监控

终端1 - 运行策略:

npm run trade

终端2 - 监控 Delta 评估:

tail -f logs/strategy.log | grep "Delta Assessment"

终端3 - 监控对冲触发:

tail -f logs/strategy.log | grep "DELTA EXCEEDS"

终端4 - 监控执行:

tail -f logs/strategy.log | grep "Executing signal"

🔍 验证对冲效果

期望日志序列

初始状态(有敞口):

📊 Delta Assessment {
  totalPositionBTC: '0.00150',
  absoluteExposure: '0.00150 BTC',
  absoluteThreshold: '0.00010 BTC',
  shouldRebalance: '⚠️  YES'            ← 触发对冲
}

触发对冲:

⚖️ DELTA EXCEEDS ABSOLUTE THRESHOLD - Generating 100% rebalance signal {
  balanceAmount: '0.00150 BTC',         ← 100% 对冲
  balanceSide: 'ask'
}

执行对冲:

Executing signal {
  type: 'balance',
  amount: 0.00150,
  side: 'ask'
}

Signal executed successfully {
  orderId: '12345'
}

下一个周期(对冲后):

📊 Delta Assessment {
  totalPositionBTC: '0.00005',          ← 敞口大幅减少
  absoluteExposure: '0.00005 BTC',
  absoluteThreshold: '0.00010 BTC',
  shouldRebalance: '✅ NO'              ← 不再触发
}

最终状态:

📊 Delta Assessment {
  totalPositionBTC: '0.00001',          ← 接近零敞口
  absoluteExposure: '0.00001 BTC',      ← < 阈值
  shouldRebalance: '✅ NO'
}

🛠️ 调整阈值(如需要)

如果 0.0001 BTC 阈值太严格或太宽松,可以修改:

文件: src/strategies/SimpleStrategyEngine.ts:319

const ABSOLUTE_THRESHOLD_BTC = 0.0001; // ← 修改这里

// 示例:
// 更宽松:0.0002 (≈ $20)
// 更严格:0.00005 (≈ $5)

修改后重新编译:

npm run build

📋 关键指标

指标 目标值 说明
净敞口 (BTC) < 0.0001 绝对敞口阈值
净敞口 (USDC) < $10 约等于 $10
检查频率 30秒 Delta 监控间隔
对冲比例 100% 全部对冲,不留余地
对冲成功率 > 90% 目标执行成功率

🐛 常见问题

Q1: 对冲信号生成但敞口仍存在?

检查步骤:

  1. 查看执行日志:grep "Signal executed" logs/strategy.log
  2. 确认订单成交:检查是否有 420 错误(无持仓可减)
  3. 验证账户持仓:运行 npm run diagnose:delta

Q2: 频繁触发对冲?

可能原因:

  • 阈值设置过低
  • 市场波动大

解决方案:

  1. 提高阈值到 0.0002 BTC
  2. 增加检查间隔到 60 秒
  3. 启用波动容忍度:volatileDeltaTolerance: 0.03

Q3: 420 错误(无持仓)?

这是正常的!

SignalExecutor 已自动处理,跳过重试:

⚠️ Reduce-only order failed: position not found (skip retry)

无需担心,系统会自动调整。


✅ 集成验证清单

  • 策略引擎使用绝对阈值 (ABSOLUTE_THRESHOLD_BTC = 0.0001)
  • 100% 对冲整个敞口(不是 50%)
  • 增强日志输出(每个周期显示 Delta 评估)
  • 配置优化(降低阈值,加快响应)
  • SignalExecutor 错误处理(420 不重试)
  • 对冲对原子性检测
  • 编译成功(npm run build
  • 文档完整(使用指南 + 检查清单)

🎉 总结

Delta 对冲机制已完整集成到策略引擎中:

  1. 绝对阈值检测:0.0001 BTC ≈ $10 USDC
  2. 100% 对冲:整个敞口全部对冲
  3. 实时监控:详细日志输出
  4. 自动触发:超限时立即生成对冲信号
  5. 可靠执行:SignalExecutor 优化错误处理

现在运行策略,净敞口应该保持在 < 0.0001 BTC! 🚀


📚 相关文档

  • DELTA_HEDGING_CHECKLIST.md - 快速检查清单
  • docs/delta-optimization-guide.md - 详细优化指南
  • scripts/diagnose-delta.ts - 诊断工具(npm run diagnose:delta