资金费套利 · 无人值守做市系统
载入中…
运行状态
运行模式
持仓数
空仓待机
已完成轮次
心跳新鲜度
采集器

启动 / 停止

这两个按钮控制守护进程的启停(systemd 服务)。停止走优雅信号:守护进程跑完当前这一轮再干净退出,绝不半路撕单。 运行模式(只预览/演练/真单)由下方“运行模式”面板决定。
自动刷新中…

运行模式(真假单切换)

模式决定守护进程是否动用真实资金,切换会重启守护进程(优雅,不撕单)。三档: 只预览=只算计划不下单(最安全)·演练=走完整执行逻辑但不下真实单· 🔴真单=下真实订单、动用真实资金。切真单需在弹窗输入 LIVE 二次确认。

当前持仓

空仓待机中 —— 系统在等待“现货可买 + 盘口够深 + funding 张开”的币出现才会开仓。

本轮决策快照

regime 是否开放
值得做的币数
计划开仓
计划平仓
最近一轮时间

账户总览

预估总资产
USDT钱包 + 现货市值 + 永续浮盈
可用现金
crossMarginFree(可买现货腿)
现货腿市值
非USDT资产 × 现价合计
USDT 钱包
totalWalletBalance(含抵押)
永续未实现盈亏
UM 空腿浮动(carry 对冲腿)
现货未实现(估)
现货市值随价波动(无成本价时只报市值)
守护进程已运行
本次启动至今
carry 以来净现金流
carry 上线(2026-06-28)后交易净流(资金费+已实现+手续费,不含充值)

资产拆解

当前候选 · funding 排名(满足筛选要求,与 daemon 同口径)

加载中…

当前持仓 · carry 配对(现货多 ↔ 永续空,交易所真值)

基差收敛仓 / 补仓(专门视图)

收敛仓=进场基差≥收敛阈的高正基差仓(靠基差一次性收敛赚,收敛到位即提前平,不等 min_hold)。 补仓=已持仓的币当前基差比进场时大 ≥ 补仓阈时,以更高基差叠开的额外仓(独立记账、可单独平)。 两者默认,在「参数设置」页的【基差收敛】/【基差补仓】分组开启。下表只读展示交易所真值。

现货持仓明细(全部非 USDT 资产)

永续持仓明细

历史持仓(carry 以来全部开/平记录)

收益曲线 · carry 以来累计现金流

这条线是 carry 系统上线()以来的账户真实现金流累计 (币安 UM income:资金费 + 已实现盈亏 + 手续费)。鼠标悬停看每日明细。

每币资金费明细(carry 以来)

前向总资产快照(预估总资产 · carry 以来)

每 15 分钟记一次账户【预估总资产】(USDT钱包+现货市值+永续浮盈),carry 上线(2026-06-28)以来累积成曲线。鼠标悬停看快照点。

首次建仓(不设卡)

正常运行时系统受进场闸门约束(只在 funding 张开、≥N 个币越阈值时才开仓)。 点下方按钮可武装一次性"不设卡"标志:守护进程下一轮会放开闸门建仓一次(仍受 has_spot 现货筛/深度/上限等硬门约束),之后自动恢复正常闸门。

⚠️ 仅当系统处于 真单(LIVE)模式时,武装后才会下真实订单。当前模式见“概览”页。 武装本身不切换真单开关,也不强制启动守护进程。

策略参数

改完点“保存”即写入配置中心,守护进程每轮热读、即时生效,无需重启。每项显示当前值,占位符是出厂默认值。越界/类型错会被服务端拒绝(绝不写坏值动真钱)。 真单开关不在这里——切真单走“概览”的启停 + 二次确认,绝不和普通参数混改。

加载中…

一句话:这是什么

现货多 + 永续空,做成 delta 中性,只赚资金费(funding)。 价格涨跌两腿对冲掉,赚的是“永续空头每个结算周期收到的资金费”。 这是经过五年样本外回测筛选后,本项目认定的唯一真实 alpha
核心机制:cash-and-carry(现金套利)
  • 两条腿:在现货买入等量标的(多头),同时在 U 本位永续开等量空头。两腿名义相等 → delta ≈ 0,价格波动被对冲。
  • 赚什么:永续合约每隔固定周期(币安多为 4h 或 8h)结算一次资金费。当 funding 为正 → 多头付给空头 → 我们持空腿,资金费。
  • 为何 short-only:5 年回测裁决 —— 在“只在 funding 张开时进场 + 低换手持有”的结构下,做空腿吃正资金费是稳健正期望;反向(funding 负时做多腿)换手高、被噪声吃掉。
  • delta 中性的工程细节:现货腿与永续腿的最小下单步长(lot_step)不同(例:SOL 现货 0.001 vs 永续 0.01;ADA 现货 0.1 vs 永续整数 1)。两腿必须同量才中性,所以系统统一取较粗的步长(pair_step = max),否则细腿能下、粗腿被拒,两腿错位破坏对冲。
进场门控:只在 edge 真出现时才动手

系统每 15 分钟扫一轮全市场永续。一个币要进入候选,必须同时过三道筛:

  • ① 有现货:必须能在现货市场买到对冲腿。无现货 = 只能裸做空 = 承担全部价格风险(这正是早期“裸空 SOL”踩过的坑),直接挡掉。
  • ② 盘口够深:24h 成交额 ≥ 500 万美元。薄盘币滑点 + 插针爆仓风险大,挡掉。
  • ③ funding 够张开:8h 等效资金费要明显为正、盖得过往返摩擦才值得开。
calm 不硬铺:这是铁律。当下若全市场没有同时满足三筛的币,系统就正确待机(regime_open=False),一个单都不开。 待机不是故障 —— 是“没有正期望机会时绝不强行铺量”的设计。
低换手:min_hold 防止来回 churn
  • 资金费是慢变量,频繁换仓 = 反复吃进出场摩擦(手续费 + 滑点 + 进场逆选)。
  • 系统给每个持仓记 entry_ts(开仓时刻落盘),据此算 days_held;未到最小持有期不轻易换。
  • 状态文件 carry_positions.json 原子写(.tmp → rename),崩溃/重启不丢、不半写。重启后用交易所真实持仓对账(reconcile):交易所有的为准,孤儿仓保守处置。
风控硬护栏
全账户名义上限
200 USDT
最多同时持币
5 个
单币占比上限
单笔最小名义
最小盘口成交额
扫描周期
900 秒

执行顺序永远是先平后开:先释放保证金 → 重读可用现金 → 再按预算切分开新仓,杜绝瞬时超额敞口。

三档运行模式(看板可切,双重确认)
模式含义
PLAN_ONLY只算“打算做什么”,不执行(最安全;无 CARRY_MODE 文件时的默认)。
DRY_RUN走执行流程,但两腿 dry-run 不下真实单。
LIVE🔴 真单:下真实订单。
daemon 启动读 CARRY_MODE 文件决定模式。看板“概览”页【运行模式】面板可切换,写文件 + 优雅重启 daemon。
切 LIVE 的双重闸:前端弹窗须输入大写 LIVE + 后端校验 confirm=LIVE token,缺一即拒。 AI 永不自动切 LIVE —— 切换始终是用户点按钮的动作。普通参数在“参数设置”页改,真单开关只在概览模式面板、与参数隔离。
无人值守的自愈与失败安全
  • 网络抖动 → 单轮异常被吞住 + 指数退避重试,不让一次抖动打死进程。
  • 连续失败达上限 → 主动停机(防带病空转/反复下错单),等人介入。
  • 进程崩溃 → systemd 30s 自动拉起(限速防循环重启)。
  • 优雅停 → 收到 SIGTERM 或 stop_file 出现 → 跑完当前轮再退,绝不半路撕单。
  • 心跳 → 每轮成功写一次时间戳,外部巡检看新鲜度即知死活。
诚实优先。 这是一个研究/验证系统,不是“稳赚”承诺。下面是真金白银 + 5 年样本外数据得到的结论, 包括对我们自己最不利的那些。

为什么不做传统做市(被证伪的那条路)

7 天真实 maker fill
净 −23.07 U
12,679 笔真实成交,配对现金流交叉验证吻合
即便零手续费
仍 −7.69 U
逆向选择独吃价差,非手续费命门
零返佣环境下,被动挂单在平静行情无正期望:成交瞬间 mid 已移到我的报价(最深逆选), 进场实得半价差 ≈ −0.5bps。四个缓解杠杆(快平/深档/分侧/毒性闸门)无一能把净 edge 拉回正。 挂得越宽被挑越狠(2bps −5.68 → 10bps −7.45)。结论:calm 行情被动做市,死路。

唯一活下来的边:横截面资金费套利

扣费后 Sharpe
~1.0
10bps 滑点下仍 0.77
样本币命中
32 / 32
五年样本外全为正
首笔真单验证
机制闭环
整轮净 −0.08U,符合验机制预期
五路 alpha + 自有 9–39 币五年样本全裁完:横截面 funding carry 是唯一真 alpha。 TSMOM 日级真但弱(~0.4);lead-lag / 低特质波动 / 横截面动量均被证伪。 首笔真实 cash-carry 单已验证全机制闭环:两腿 delta 中性扛住价格波动、funding 真入账(对账到小数点后 7 位)。

双 NO_GO 裁决(做市路线)

假设① fill 可模拟性
PASS
AUC 0.958 / 样本外 F1 0.78 / Brier 0.078
假设② 逆向选择
FAIL(瓶颈)
1s −0.35 → 5min −0.78~−1.05 bps,单调恶化

两条独立路径都 NO_GO、死因不同:K 线回测 = 趋势库存流血;真实成交验证 = 逆选吃光价差。两种数据、两个死因、同一结论 = 当前形态被动做市无正期望。瓶颈 100% 锁定在②逆向选择。

方向不可测,但波动可测

放大前的诚实边界:carry 1x 收 funding、回撤近零;放大走组合保证金(PM)2–3x, 分钟级黑天鹅压测扛过所有历史事件,但仍受借贷利率/薄盘可借性约束。Sharpe 4~5 是类债券假象,不可当真。 真正甜点 ~200U 量级先验机,验证正期望后再逐步放大。

上线前清单(只有用户能完成的三步)

当前运行模式以“概览”页 banner 为准。funding calm 时即便在 LIVE,系统也会按闸门正确待机不硬开仓。 下面三步必须由你亲自完成,AI 永不代办:
1
账户充本金 —— 实时余额见“数据 · 账户”页(由 API 读取,不再写死)。验机制阶段够用,放大需加。
2
轮换暴露的 API key + 旧机 8.216 移出币安白名单 —— 安全债,带真钱跑暴露的 key = 真实资金风险,放大前必清。
3
切到真单(LIVE)模式 —— 在“概览”页【运行模式】面板点 🔴真单,弹窗输入大写 LIVE 二次确认即可(daemon 读 CARRY_MODE 文件,无需手动改 service)。AI 永不自动切 LIVE,切换始终是你点按钮的动作。

切真单前一键体检

服务器上 source 你的 key 后运行,只读检查 6 项(key 权限 / 可用现金 / 持仓 / 状态对账 / regime / 名义上限):

/root/zrmm/.venv/bin/python /root/carry_preflight.py

系统组成

守护进程
carry-daemon.service 无人值守循环(本看板启停的就是它)
实盘入口
carry_daemon_live.py 扫描→读持仓→对账→决策→执行→落盘→心跳
数据采集
zrmm-collector.service + 第二采集器(只读,本看板不触碰)
看板后端
carry-dashboard.service 只读聚合 + 受鉴权启停(绑 127.0.0.1)
状态文件
carry_positions.json · carry_heartbeat.txt · carry_daemon.log

守护进程日志(最近 40 行)

载入中…

原始状态(调试)

展开 JSON

Binance API Key

安全须知(务必读)
  • key 保存在服务器 /root/.carry_env(chmod 600,仅 root 可读),绝不进 git、绝不写日志、绝不回显。本页只显示末 4 位。
  • 建议权限:读取 + 合约(Futures/统一账户),禁提现,绑定本机 IP 47.245.55.45。监控阶段可只给读取。
  • 保存后,本看板用它调只读端点(余额/持仓/收益);真正下单仍受守护进程两开关 gate,与本页无关。
  • 经此页保存比贴对话更安全 —— key 不会进入聊天记录。
当前状态

保存 / 更新 key

🔒 修改看板登录密码

控制启停/切模式/平仓/存key/存参数等写操作的登录口令。改后即时生效(存服务器,与反向代理无关)。需先登录当前口令。

🔒

登录以执行操作

查看数据无需登录。启停、切换模式、平仓、保存参数等写操作需要登录。