Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

stock-arb-paper

股票永续合约(stock perp)跨平台套利 · 纯模拟盘引擎。单文件,零依赖(Python 标准库),零私钥,只读公开行情 API,只记账不下单。

2026 年起,Binance / Bybit / OKX / Gate / Bitget / Hyperliquid 陆续上了几百个股票类永续合约(NVDA/TSLA/SK海力士/港股AI公司/pre-IPO 合成标的都有)。同一只股票在 6 个平台各有一个价格,休市的时候没有真实股价当锚,价差就会漂出来——这个引擎就是用来量化"这些价差到底能不能赚到钱"的。

两个策略

策略 逻辑 收敛锚
S1 价差收敛 同一股票的 perp 跨所出现价差 → 空贵腿+多便宜腿 开盘时刻所有 perp 被强制拽回同一真实股价
S3 正股锚溢价 休市时 perp 对正股收盘价溢价 ≥1.5% → 空 perp+买正股(模拟) 开盘后溢价归位(实测港股标的开盘 3 分钟内收敛)

曾经还有个 S2(跨所资金费差套利),上线一天 36 笔只赢 1 笔就被处决了:入场时看到的费差中位 0.14%/8h,实际只收到 0.01%——快照上的费差是噪音,你看到它的那一刻就是它消失的前夜。尸检数字都写在代码注释里,这也是这个仓库最想传达的一件事:说不出"什么时候、因为什么必须收敛"的价差,不是套利

内置的防错闸门(每条背后都是真实亏损换来的)

  • 净 edge 过闸:毛价差扣完 4 腿手续费+滑点+持仓期资费拖累还有肉才准入场(按毛收益排序会系统性选中隐藏成本最高的标的)
  • 基准自检:同名合约在不同所可能是不同份额基准(实测见过"同一家公司"两所报价差 8.7 倍),组内腿价偏中位数 >10% 自动隔离
  • 墓碑过滤:有的市场早就关停了但 API 还在返回冻结价,存活判据 = 持仓量>0 且 24h 成交>0
  • 二连确认:信号连续 2 轮在场才开仓,防瞬时假价差
  • 每腿独立结算周期累加:同一股票在不同所的资金费周期可以是 1h/4h/8h,混用统一周期会把亏损记成盈利
  • 合成指数禁入:各所的"同名指数"成分定义可能不同,价差或永不收敛
  • 标的黑名单:同标的平 3 笔累计亏就拒入

快速开始

python3 stock_arb_paper.py          # 跑一轮(建议 cron 每 15 分钟)
python3 stock_arb_paper.py --stats  # 看战绩

数据落在 ./stock_paper/state.json(在场仓位)+ ledger.jsonl(每笔开平仓全记录)。

账本里最值钱的一列:每笔开仓都记录了入场时的预期 edge(expect_edge),平仓后拿实现净值逐笔对——预期和实现的差值持续为负,说明入场模型在骗你自己。

免责

教学与研究用途,不构成投资建议。真实交易的滑点、费率梯度、流动性深度、强平机制都比模拟复杂得多;paper 赚钱 ≠ 实盘赚钱(经验折算系数大约 ×0.4~0.6,而且这还是乐观的)。

License

MIT

About

No description, website, or topics provided.

Resources

Stars

28 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages