概述
基于时间的资金耕作策略允许您在资金费率事件前后自动开仓和平仓。 该策略通过在与资金周期相关的精确时间进行交易,帮助以最小的市场风险捕获资金费用。
您可以配置系统以实现以下功能:
- 开仓交易 在资金事件之前(例如,提前60分钟)
- 平仓交易 在资金分配后不久(例如,10分钟后)
- 使用 UTC 时区 确保跨交易所的统一操作(00:00、08:00、16:00 UTC)
⚙️ 配置
所有配置值都在您的 YAML 设置文件的 funding_farming_settings 部分中定义。
funding_farming_settings:
is_enabled: true
max_open_trades: 5
max_symbols_to_pick: 10
funding_rate_threshold: 0.0003 # 最低 0.03%
spot_order_size: 100.0
future_order_size: 100.0
liquidation_percent: 5.0
# 时间控制
open_trade_before: 60 # 在资金时间前 60 分钟开仓交易
close_trade_after: 10 # 在资金支付后 10 分钟平仓交易
🧭 常见配置场景
| 场景 | 描述 | 推荐用途 |
|---|---|---|
| 精确时间(推荐) | 提前 1 小时开仓,10 分钟后平仓 | 最适合持续捕获资金费用 |
| 快速进出 | 提前 15 分钟开仓,5 分钟后平仓 | 适合活跃交易者 |
| 持续交易 | 无时间限制 | 适用于基于资金的持续交易 |
| 扩展时间窗口 | 提前 2 小时开仓,30 分钟后平仓 | 适用于较慢的交易所或高波动性市场 |
配置示例
1. 精确时间
open_trade_before: 60
close_trade_after: 10
开仓:23:00、07:00、15:00 UTC
平仓:00:10、08:10、16:10 UTC
2. 快速进出
open_trade_before: 15
close_trade_after: 5
开仓:23:45、07:45、15:45 UTC
平仓:00:05、08:05、16:05 UTC
3. 持续交易
open_trade_before: 0
close_trade_after: 0
当资金费率达到阈值时随时开仓
无自动平仓时间限制
4. 扩展时间窗口
open_trade_before: 120
close_trade_after: 30
开仓:22:00、06:00、14:00 UTC
平仓:00:30、08:30、16:30 UTC
🔄 工作原理
1. 开仓
资金时间每天发生 三次:00:00、08:00 和 16:00 UTC。
系统在每次资金事件前开始监控,仅在 open_trade_before 定义的时间窗口内开仓交易。
示例: 对于 open_trade_before: 60,交易在 23:00–00:00 UTC 之间开仓。
2. 平仓
资金分配后,系统将持仓保持由 close_trade_after 定义的持续时间。
然后在延迟到期时自动平仓。
3. 检查间隔
| 开仓窗口 | 检查频率 |
|---|---|
| 0 分钟 | 每 10 分钟 |
| 1–10 分钟 | 每 2 分钟 |
| 11–30 分钟 | 每 5 分钟 |
| 31 分钟以上 | 每 10 分钟 |
📋 日志示例
✅ 开仓窗口激活:距离 16:00 UTC 资金事件还有 45 分钟
🎯 匹配到 BTCUSDT(资金费率:0.0850%)
✅ 在 15:15 UTC 为 BTCUSDT 开仓
⏳ 未处于开仓窗口。下一窗口将在 85 分钟后于 15:00 UTC 开启。
📍 监控活跃头寸...
⚠️ 资金分配后 BTCUSDT 头寸关闭(已过去 12 分钟)
✅ 头寸成功关闭。
🛡️ 风险管理
- 资金费率阈值 – 仅当费率达到最低值时交易
- 清算保护 – 关闭接近清算的交易
- 价差验证 – 避免较大的买卖价差
- 价格变动检查 – 对突发波动发出警告
- 最大交易限制 – 遵守配置的交易限制
⏱️ 平仓优先级
- ✅ 基于时间的平仓(资金分配 + 延迟)
- ⚠️ 资金费率低于阈值
- 🚨 接近清算
- ⚡ 市场大幅波动(仅警告)
💡 优势
优点
- 可预测的交易时间表
- 减少市场风险
- 保证捕获资金费用
- 完全自动化的循环
- 每日多重机会
注意事项
- 可能错过短时间窗口内的交易
- 资金更新可能延迟
- 资金分配期间竞争更激烈
- 资金时间附近可能出现滑点
✅ 最佳实践
- 从较宽的时间窗口(60–120 分钟)开始
- 监控日志以确认准确的时间
- 在较慢的交易所增加 10–15 分钟的缓冲时间
- 在每个周期后验证资金支付
- 使用限价/仅挂单来减少费用
- 测试策略时从小额开始
🧩 故障排除
| 问题 | 可能原因 | 建议修复 |
|---|---|---|
| 头寸未开仓 | 超出窗口 / 资金费率过低 / 达到最大交易限制 | 检查时间和阈值 |
| 头寸未平仓 | close_trade_after = 0 或资金尚未处理 |
调整时间,查看日志 |
| 错过资金支付 | 开仓太晚或资金延迟 | 提前开仓或验证交易所时间表 |
🕓 示例时间线
设置:open_trade_before: 60close_trade_after: 10
| 时间 (UTC) | 事件 |
|---|---|
| 22:30 | 系统空闲,等待窗口 |
| 23:00 | 开仓窗口开始 |
| 23:05 | 开仓 BTCUSDT 交易 |
| 00:00 | 资金支付已处理 |
| 00:10 | 触发自动平仓 |
| 00:15 | 交易记录完成,准备下一周期 |
下一窗口将于 07:00 UTC 开始,为 08:00 UTC 资金事件做准备。
📊 性能跟踪
| 指标 | 描述 |
|---|---|
| 资金收入 | 收集的资金费用总额 |
| 净损益 | 扣除费用和滑点后的利润 |
| 胜率 | 盈利周期的百分比 |
| 平均持有时间 | 应与配置的窗口一致 |
| 执行率 | 每个资金周期的成功交易 |
🚀 高级配置
动态时间(计划功能)
- 根据资金费率大小进行调整
- 适应市场波动
- 使用历史滑点数据
- 考虑交易所延迟
多交易所策略
- 在具有不同资金时间的多个交易所运行
- 捕获更多每日机会
- 通过多元化降低风险