Код для скачивания данных OHLCV (свечей)
Но прежде вам нужно в терминале скачать библиотеку
pip install requests pandas
Код:
import requests
import pandas as pd
import time
def fetch_ohlcv(symbol="AVAXUSDT", interval="1", limit=1000, start_time=None, end_time=None):
url = "https://api.bybit.com/v5/market/kline"
params = {
"category": "linear", # для фьючерсов USDT
"symbol": symbol,
"interval": interval, # "1" = 1m свечи
"limit": limit
}
if start_time:
params["start"] = start_time
if end_time:
params["end"] = end_time
r = requests.get(url, params=params)
data = r.json()
return data["result"]["list"] if "result" in data else []
def download_history(symbol="AVAXUSDT", interval="1", days=30):
all_data = []
end_time = int(time.time() * 1000)
start_time = end_time - days * 24 * 60 * 60 * 1000
while start_time < end_time:
ohlcv = fetch_ohlcv(symbol, interval, 1000, start_time, end_time)
if not ohlcv:
break
all_data.extend(ohlcv)
# данные идут в обратном порядке
last_ts = int(ohlcv[-1][0])
start_time = last_ts + 60 * 1000
time.sleep(0.2)
df = pd.DataFrame(all_data, columns=["timestamp","open","high","low","close","volume","turnover"])
df["timestamp"] = pd.to_datetime(df["timestamp"], unit="ms")
return df
if __name__ == "__main__":
df = download_history(days=7) # например, за последние 7 дней
df.to_csv("avax_ohlcv.csv", index=False)
print("Сохранено:", len(df), "свечей")
import requests
import pandas as pd
import time
def fetch_ohlcv(symbol="AVAXUSDT", interval="1", limit=1000, start_time=None, end_time=None):
url = "https://api.bybit.com/v5/market/kline"
params = {
"category": "linear", # для фьючерсов USDT
"symbol": symbol,
"interval": interval, # "1" = 1m свечи
"limit": limit
}
if start_time:
params["start"] = start_time
if end_time:
params["end"] = end_time
r = requests.get(url, params=params)
data = r.json()
return data["result"]["list"] if "result" in data else []
def download_history(symbol="AVAXUSDT", interval="1", days=30):
all_data = []
end_time = int(time.time() * 1000)
start_time = end_time - days * 24 * 60 * 60 * 1000
while start_time < end_time:
ohlcv = fetch_ohlcv(symbol, interval, 1000, start_time, end_time)
if not ohlcv:
break
all_data.extend(ohlcv)
# данные идут в обратном порядке
last_ts = int(ohlcv[-1][0])
start_time = last_ts + 60 * 1000
time.sleep(0.2)
df = pd.DataFrame(all_data, columns=["timestamp","open","high","low","close","volume","turnover"])
df["timestamp"] = pd.to_datetime(df["timestamp"], unit="ms")
return df
if __name__ == "__main__":
df = download_history(days=7) # например, за последние 7 дней
df.to_csv("avax_ohlcv.csv", index=False)
print("Сохранено:", len(df), "свечей")
Статья была написана при поддержке сообщества - ссылка