交易工具

幣安 API 套利策略框架 現貨 + 永續怎麼寫

2026-04-23 · 6 分鐘閱讀

API 套利的最簡框架程式碼本文給出現貨 + 永續 Delta 中性策略的虛擬碼與關鍵風控。

API 套利不復雜,但要寫好。先在 幣安官網 建立 API Key,APP 監控用 幣安官方APP(iOS 見 iOS安裝教程)。

最簡策略:現貨 + 永續

思路

資金費率高時:

  1. 現貨買入 1 BTC
  2. 永續做空 1 BTC
  3. 等收資金費
  4. 費率降到合理時平掉兩邊

Delta 中性,不賭價格。

虛擬碼

from binance.client import Client
client = Client(api_key, secret)

target_funding = 0.0003  # 萬 8 / 8h

# 1. 檢查當前資金費率
fr = client.futures_funding_rate(symbol='BTCUSDT', limit=1)[0]
current_rate = float(fr['fundingRate'])

if current_rate > target_funding:
    # 2. 現貨買入 1 BTC
    client.order_market_buy(symbol='BTCUSDT', quantity=1)
    
    # 3. 永續做空 1 BTC
    client.futures_create_order(
        symbol='BTCUSDT',
        side='SELL',
        type='MARKET',
        quantity=1
    )
    print("倉位已開")

短短几十行已經是雛形。

加風控

1. 資金檢查

下單前確認現貨賬戶和合約賬戶餘額夠用。

2. 滑點保護

用限價 IOC(Immediate or Cancel):能成則成,不成立刻取消。

3. 數量精度

幣安每個交易對的數量精度不同。BTC 精確到 0.00001。處理:

quantity = round(quantity, 5)

4. 異常重試

網路抖動會讓 API 呼叫失敗。加 try / except + 重試。

監控迴圈

import time
while True:
    fr = client.futures_funding_rate(symbol='BTCUSDT', limit=1)[0]
    rate = float(fr['fundingRate'])
    
    print(f"當前費率: {rate}")
    
    if rate > 0.0005:
        open_positions(1)  # 開倉
    elif rate < 0.0001 and have_position():
        close_positions()  # 平倉
    
    time.sleep(60)  # 每分鐘檢查

平倉

def close_positions():
    # 現貨賣出
    client.order_market_sell(symbol='BTCUSDT', quantity=1)
    # 永續平空(買回)
    client.futures_create_order(
        symbol='BTCUSDT', side='BUY', type='MARKET', quantity=1, reduceOnly=True
    )

關鍵引數

引數 含義
target_funding 目標資金費率閾值
close_funding 平倉閾值
size 單次倉位
max_position 最大持倉
leverage 合約槓桿

每個引數都需要測試調整。

槓桿設定

合約保證金不需要 1:1:

  • 1 BTC 現貨 = 60000 USDT
  • 1 BTC 合約空 + 5x 槓桿 = 12000 USDT 保證金

總佔用:72000 USDT。

降低槓桿增加保證金 → 更安全但資金效率低。

平衡點 5-10x。

計算每次套利收益

收益 = 資金費 × 倉位價值 - 4 筆交易手續費

例:

  • 1 BTC 倉位 = 60000 USDT
  • 8 小時資金費 0.05% = 30 USDT
  • 4 筆手續費(現貨開 + 現貨平 + 合約開 + 合約平)= ≈ 60 USDT

淨收益:30 - 60 = -30。

只持倉 1 次費率結算 = 虧

持倉時間

至少持倉收 3-5 次資金費才能覆蓋手續費。即 24-40 小時。

策略:

  • 進場後至少持 36 小時
  • 資金費率仍然 > target 才繼續
  • 跌到 target 一半時平倉

資金費率歷史

策略測試:

hist = client.futures_funding_rate(symbol='BTCUSDT', limit=1000)
# 1000 條歷史費率(最近 333 天)

回測你的策略在歷史資料上是否盈利。

實盤前必做

  • [ ] testnet 跑 1 周
  • [ ] 實盤小額(1000 USDT)跑 1 月
  • [ ] 驗證:每月收益 > 0
  • [ ] 檢查日誌沒有異常
  • [ ] 確認風控真的能 trigger
  • [ ] 加大資金

持倉監控

def health_check():
    spot = client.get_asset_balance('BTC')
    fut = client.futures_position_information(symbol='BTCUSDT')
    
    if abs(float(spot['free']) - abs(float(fut[0]['positionAmt']))) > 0.001:
        alert("Delta 偏離!")

定期檢查現貨和合約持倉是否一致。

異常處理

情況 處理
API 超時 重試 3 次
餘額不足 等下次迴圈
倉位偏差 立刻調整
大額波動 報警
系統宕機 自動關機 + 簡訊

部署

跑在自己電腦會因為:

  • 關機斷電
  • 重啟更新

最好放 VPS:

  • DigitalOcean / Vultr / AWS
  • Linux + Python
  • pm2 / systemd 守護程序
  • 監控 + 報警

進階

1. 多交易對

同時跑 BTC、ETH、SOL 資金費。分散收益。

2. 智慧進出

不僅看費率,看 OI、funding/spot 比、市場情緒。

3. 跨所對沖

幣安 + Bybit 等多所聯動。

4. 期權對沖

加期權降低波動率風險。

常見問題

問:API 套利合法嗎? 答:合法。幣安鼓勵演算法交易。

問:策略能賺多少? 答:正常市場 5-15% 年化。極端時段更高。

問:要懂多少程式碼? 答:能寫 200 行 Python 即可起步。

問:能不寫程式碼用現成機器人嗎? 答:可以。但你不掌握邏輯就不知道何時停。

問:會不會爆倉? 答:風控做得好不會。但極端行情仍要關注。

延伸閱讀

API 套利是技術 + 資金的護城河。學好之後能讓錢睡著也幫你賺。