以下是如何使用 API 在世界著名的比特幣幣安交易所進行自動交易。
API應用
啟動 Binance 應用程序並將您的 API 輸入到搜索中。
在 Functions 類別中選擇 API Management 項。
選擇創建 API。
輸入適當的鍵標籤並選擇下一步按鈕。
安裝拼圖以確保安全。
然後繼續進行電話文本驗證和電子郵件驗證。
完成後,您將獲得一個 API Key 和 Secret Key。
我檢查了期貨交易的啟用期貨和現貨和期貨交易之間的存款和取款的允許通用轉移。
安裝 ccxt 庫
接下來,讓我們安裝 ccxt,一個 Python 庫,以輕鬆使用 Binance API。
我們假設您知道如何使用 Python 並繼續。
說明和安裝說明可在以下站點找到:
CCXT – CryptoCurrency eXchange 交易庫
您可以使用以下命令安裝它。
pip install ccxt
準備使用幣安 API
首先,導入 ccxt 庫。
import ccxt
這是使用之前請求的 API Key 值創建 Binance 實例的代碼。期權部分的默認類型為現貨,輸入future即可進行期貨交易。
binance_access_key = "xxxxxxxxx"
binance_secret_key = "yyyyyyyyy"
binance = ccxt.binance(config={
'apiKey': binance_access_key,
'secret': binance_secret_key,
'enableRateLimit': True,
'options': {
'defaultType': 'future'
}
})
當前價格查詢
您可以簡單地搜索如下。
binance.fetch_ticker('BTC/USDT')
餘額查詢
首先,讓我們看一下檢索期貨交易的 USDT 餘額的代碼。在參數類型中輸入future。進入現貨查看現貨交易餘額。
balance = binance.fetch_balance(params={"type": "future"})
print(balance['USDT']['free'])
讓我們也編寫一些代碼來獲取現貨交易中持有的硬幣數量。
balance_info = binance.fetch_balance(params={"type": "spot"})
for balance in balance_info['info']['balances']:
if market['id'].find(balance['asset']) > -1:
print(abs(float(balance['free'])))
以下代碼獲取在期貨交易中進入空頭頭寸的硬幣的交易量。請注意與現貨交易代碼的區別。
balance_info = binance.fetch_balance(params={"type": "future"})
for position in balance_info['info']['positions']:
if position['symbol'] == market['id']:
print(abs(float(position['positionAmt'])))
進入和清算期貨交易
以下是進入空頭頭寸的代碼。市場交易和限價交易都是可能的。
symbol='BTC/USDT'
# market sell order
sell_order = binance.create_market_sell_order(symbol=symbol, amount=0.1)
# limit sell order
btc = binance.fetch_ticker(symbol)
sell_order = binance.create_limit_sell_order(symbol=symbol, amount=0.1, price=btc['last'])
這是空頭頭寸清理代碼。同樣,可以進行市價交易和限價交易。
symbol='BTC/USDT'
# market buy order
buy_order = binance.create_market_buy_order(symbol=symbol, amount=0.1)
# limit buy order
btc = binance.fetch_ticker(symbol)
buy_order = binance.create_limit_buy_order(symbol=symbol, amount=0.1, price=btc['last'])
建立和關閉多頭頭寸可以以相反的方式進行,現貨交易也可以使用相同的方法進行。
現貨和期貨之間的電匯
要將現金從現貨賬戶轉移到期貨賬戶,您只需查詢現金賬戶餘額並將價值直接轉移到您的期貨賬戶。從幣安交易所內的賬戶轉賬不收取任何費用。
balance_spot = binance.fetch_balance(params={"type": "spot"})
balance_spot_free = balance_spot['USDT']['free']
if balance_spot_free > 0:
transfer = binance.transfer('USDT', balance_spot_free, 'spot', 'future')
反之亦然。
balance_future = binance.fetch_balance(params={"type": "future"})
balance_future_free = balance_future ['USDT']['free']
if balance_future_free > 0:
transfer = binance.transfer('USDT', balance_future_free, 'future', 'spot')
槓桿設置
對於期貨交易,您可以設置槓桿。這是代碼:只需更改槓桿部分中的數字即可。
markets = binance.load_markets()
market = binance.market('BTC/USDT')
resp = binance.fapiPrivate_post_leverage({
'symbol': market['id'],
'leverage': 2
})
查看交易數據
您可以通過編寫以下代碼查詢1000 BTC每日交易數據:
candles = binance.fetch_ohlcv(
symbol='BTC/USDT',
timeframe='1d',
since=None,
limit=1000)