Lấy giá token trên FTX
Mình dùng các thư viện native của Python để gọi tới API của FTX.
Trong ví dụ này mình sẽ lấy giá của BTC/USD.
import urllib3
http = urllib3.PoolManager()
response = http.request('GET', 'https://ftx.com/api/markets/BTC/USD')
Kiểm tra response
print(response.data)
b'{"success":true,"result":{"name":"BTC/USD","enabled":true,"postOnly":false,"priceIncrement":1.0,"sizeIncrement":0.0001,"minProvideSize":0.0001,"last":24499.0,"bid":24498.0,"ask":24499.0,"price":24499.0,"type":"spot","futureType":null,"baseCurrency":"BTC","isEtfMarket":false,"quoteCurrency":"USD","underlying":null,"restricted":false,"highLeverageFeeExempt":true,"largeOrderThreshold":3000.0,"change1h":-0.00008162932125219379,"change24h":-0.000978673082412429,"changeBod":0.002455092270551168,"quoteVolume24h":319090420.5466,"volumeUsd24h":319090420.5466,"priceHigh24h":25048.0,"priceLow24h":24325.0}}\n'
Data này có dạng json, mình sẽ dùng `json` lib để load lên và lấy giá trị cần thiết
import json
data = json.loads(response.data)
price = data['result']['price']
# 24499.0
Để lấy giá trong 1 thời điểm ở quá khứ ta request dạng như sau
GET /markets/{market_name}/candles?resolution={resolution}&start_time={start_time}&end_time={end_time}
Ví dụ mình cần lấy giá BTC/USD tại thời điểm ngày 19/05/2021 lúc 8:00 AM, mình làm như sau
import datetime
start_time = datetime.datetime(2021, 5, 19, 8, 0)
start_time = int(start_time.timestamp())
response = http.request('GET', f"https://ftx.com/api/markets/BTC/USD/candles?resolution=15&start_time=1559881511&end_time={start_time}&limit=1")
json.loads(response.data)