确保净敞口 < 0.0001 BTC (约 $10 USDC),实现真正的 Delta 中性。
文件: 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;
// ... 生成对冲信号
}
关键特性:
每个交易周期都会输出:
📊 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'
}
当触发对冲时:
⚖️ 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'
}
{
"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秒检查订单
}
}
{
"delta": {
"baseDeltaTolerance": 0.001, // 0.1%(从 0.5% 降到 0.1%)
"stableDeltaTolerance": 0.001,
"volatileDeltaTolerance": 0.02,
"rebalanceThreshold": 0.01 // 1%(从 5% 降到 1%)
}
}
文件: src/services/SignalExecutor.ts
关键特性:
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% | 目标执行成功率 |
检查步骤:
grep "Signal executed" logs/strategy.log
npm run diagnose:delta
可能原因:
解决方案:
volatileDeltaTolerance: 0.03
这是正常的!
SignalExecutor 已自动处理,跳过重试:
⚠️ Reduce-only order failed: position not found (skip retry)
无需担心,系统会自动调整。
ABSOLUTE_THRESHOLD_BTC = 0.0001
)npm run build
)Delta 对冲机制已完整集成到策略引擎中:
现在运行策略,净敞口应该保持在 < 0.0001 BTC! 🚀
DELTA_HEDGING_CHECKLIST.md
- 快速检查清单docs/delta-optimization-guide.md
- 详细优化指南scripts/diagnose-delta.ts
- 诊断工具(npm run diagnose:delta
)