from okx import PublicData

flag = "0"  # 實盤

api = PublicData.PublicAPI(flag=flag)

# 取得 SWAP 合約清單
swap_data = api.get_instruments(instType="SWAP")['data']
usdt_swap_pairs = set()

for item in swap_data:
    inst_id = item['instId']  # 例如 BTC-USDT-SWAP
    if inst_id.endswith('-USDT-SWAP'):
        # 去掉 -SWAP，得到像 BTC-USDT
        spot_like_id = inst_id.replace('-SWAP', '')
        usdt_swap_pairs.add(spot_like_id)

# 取得 SPOT 現貨清單
spot_data = api.get_instruments(instType="SPOT")['data']
spot_pairs = set(item['instId'] for item in spot_data)

# 找出兩邊都有的交易對
common_pairs = sorted(usdt_swap_pairs & spot_pairs)

# ✅ 顯示數量
print(f"USDT 合約交易對數量: {len(usdt_swap_pairs)}")
print(f"SPOT 現貨交易對數量: {len(spot_pairs)}")
print(f"可套利的交易對數量: {len(common_pairs)}")

# （選擇性）印出交易對清單
print("\n可套利交易對:")
for pair in common_pairs:
    print(pair)
