整合指南

使用 Smart Money API 確認 Bybit 永續合約進場

透過 CCXT 讀取 Bybit 永續合約即時市場數據,詢問 Smart Money API 大額資金流向與衍生品持倉是否支持您的交易方向,再根據建議倍數調整進場規模。

適用對象

在 CCXT 上運行 Bybit USDT 永續合約機器人的 Python 開發者 CCXT 希望在每次進場前獲得獨立市場情境驗證者。Smart Money API 僅提供決策支援,不會代為下單;您的 CCXT 代碼仍完全掌控執行與風險。

必要條件

  • Python 3.9+ 環境 pip install ccxt requests.
  • 已為 CCXT 配置 Bybit API 金鑰(測試時唯讀權限即可)。
  • 一組 Smart Money API 金鑰(免費方案支援 BTC)。

取得您的 API 金鑰

每個請求都需透過 X-API-Key 標頭進行驗證。取得金鑰方式:

  1. 1創建一個免費帳戶,然後開啟您的 儀表板.
  2. 2複製顯示在 API 存取下方的 API 金鑰。免費層級涵蓋 BTC,每日 20 次請求 — 足夠從頭到尾測試本指南。
  3. 3需要更多交易對或更高限額?請在 定價頁面.

上比較各層級。務必保密金鑰 — 將其儲存在環境變數中,切勿提交至原始碼控制。

設定

  1. 1安裝函式庫: pip install ccxt requests.
  2. 2導出您的金鑰: export SMA_API_KEY="sm_your_key_here".
  3. 3使用CCXT開啟Bybit合約交易(ccxt.bybit({"options":{"defaultType":"swap"}})),讓您的策略選擇一個候選方向,然後調用 /v1/confirm 作為最終的上下文閘門。
  4. 4僅當行動是時,使用CCXT放置永續合約入場 CONFIRM,根據規模調整 size_mult.

實際運作範例

此腳本透過CCXT讀取Bybit永續合約標的,推導潛在方向後調用 GET /v1/confirm?symbol=BTC&direction=long 再決定是否執行進場。

bybit_confirm.py
import os
import ccxt
import requests

API_KEY = os.environ["SMA_API_KEY"]            # never hard-code
SMA_BASE = "https://api.smartmoneyapi.com"

exchange = ccxt.bybit({"options": {"defaultType": "swap"}})   # Bybit perpetuals

def confirm(symbol: str, direction: str) -> dict:
    """Ask Smart Money API for market-context confirmation."""
    r = requests.get(
        f"{SMA_BASE}/v1/confirm",
        params={"symbol": symbol, "direction": direction, "source": "bybit-bot"},
        headers={"X-API-Key": API_KEY},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()

# 1. Read Bybit swap market data with CCXT and pick a candidate direction
ticker = exchange.fetch_ticker("BTC/USDT:USDT")
direction = "long" if ticker["percentage"] and ticker["percentage"] > 0 else "short"

# 2. Confirm with Smart Money API before acting
sig = confirm("BTC", direction)
print(sig["action"], sig["confidence"], "size_mult", sig["size_mult"])

# 3. Act on the recommendation (CCXT executes; the API only advises)
if sig["action"] == "CONFIRM":
    base_qty = 0.01
    qty = base_qty * sig["size_mult"]          # scale by suggested multiplier
    # exchange.create_order("BTC/USDT:USDT", "market", direction, qty)
    print(f"Would place {direction} {qty} BTC/USDT:USDT perp")
elif sig["action"] == "REDUCE":
    print("Context is mixed -> trade smaller or wait for a cleaner setup")
else:  # SKIP
    print("Context does not support this trade -> stand aside")

預期回應

成功調用 /v1/confirm 將返回如下JSON:

200 OK · application/json
{
  "ts": 1710940821,
  "symbol": "BTC",
  "direction": "long",
  "composite": 0.74,
  "confidence": "HIGH",
  "action": "CONFIRM",
  "size_mult": 1.5,
  "deriv_score": 0.81,
  "onchain_score": 0.68,
  "whale_score": 0.73,
  "reasons": [
    "Funding rate positive across all venues",
    "LSR favors longs: 1.42",
    "Whales: 67% long consensus",
    "MVRV above 1.0 — on-chain bullish"
  ]
}

composite 範圍從-1.0(強烈反向)至+1.0(強烈確認), confidence 為HIGH或MEDIUM,且 size_mult 為0.0–1.5的建議倉位乘數。完整字段說明請參閱 API文檔.

如何根據回應執行

確認

市場情境支持您的方向。請依自身進場與風險規則執行,可選擇按 size_mult.

縮減

信號混雜。建議縮小倉位、緊縮停損,或等待更明確的時機。

跳過

市場情境不支持此交易。請保持觀望並於下次機會重新確認。

準備開始建構?

取得免費金鑰,一分鐘內完成首次確認調用。

非財務建議。加密貨幣交易存在風險。