Lấy giá token trên FTX

Newsletter Aug 14, 2022

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)

Tags