Fix Binance option top-of-book via depth limit and ticker fallback.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-25 12:08:33 +08:00
parent 78fd046fb6
commit d701d30c04
4 changed files with 134 additions and 12 deletions
+56
View File
@@ -0,0 +1,56 @@
"""服务器上探测币安期权盘口(只读)。用法: python scripts/probe_binance_options.py"""
from __future__ import annotations
import json
import sys
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT / "backend"))
import httpx # noqa: E402
def main() -> None:
proxy = None
env = ROOT / ".env"
if env.exists():
for line in env.read_text(encoding="utf-8").splitlines():
if line.startswith("BINANCE_HTTP_PROXY=") or line.startswith("OKX_HTTP_PROXY="):
v = line.split("=", 1)[1].strip().strip('"').strip("'")
if v:
proxy = v
print("proxy=", proxy)
kw: dict = {"timeout": 30, "trust_env": False}
if proxy:
kw["proxy"] = proxy
with httpx.Client(**kw) as cli:
info = cli.get("https://eapi.binance.com/eapi/v1/exchangeInfo")
print("exchangeInfo", info.status_code)
opts = (info.json() or {}).get("optionSymbols") or []
near = [
x
for x in opts
if str(x.get("symbol", "")).startswith("ETH-260726-1850")
or str(x.get("symbol", "")).startswith("ETH-250726-1850")
]
print("near1850", [x.get("symbol") for x in near[:6]])
if not near:
near = [x for x in opts if str(x.get("symbol", "")).startswith("ETH-") ][:4]
print("fallback sample", [x.get("symbol") for x in near])
for row in near[:4]:
sym = row["symbol"]
for limit in (5, 10, 20):
d = cli.get(
"https://eapi.binance.com/eapi/v1/depth",
params={"symbol": sym, "limit": limit},
)
print(f"depth limit={limit}", sym, d.status_code, d.text[:180])
t = cli.get("https://eapi.binance.com/eapi/v1/ticker", params={"symbol": sym})
print("ticker", sym, t.status_code, t.text[:240])
print("---")
if __name__ == "__main__":
main()