Fix Binance option top-of-book via depth limit and ticker fallback.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user