160*600

Новости сегодня на DirectAdvert

Новости сегодня от Adwile

Актуальные новости сегодня от ValueImpression.com


Опубликовать свою новость бесплатно - сейчас


<
>

Разобраться со скриптом на питоне

Написан скрипт на python для парсинга данных с биржи OKX за последние 5 лет, всё реализовано согласно документации отсюда: https://www.okx.com/docs-v5/en/#order-book-trading...


Но при работе он отдаёт No data returned, No data available.


Код скрипта:


import requests
import pandas as pd
from datetime import datetime, timedelta
import time

# Function to fetch historical data from OKX API
def fetch_candlesticks(inst_id, bar='1D', start_time=None, end_time=None, limit=100):
url = f"https://www.okx.com/api/v5/market/history-candles"
params = {
'instId': inst_id,
'bar': bar,
'limit': limit,
}
if start_time:
params['after'] = start_time # Параметр для получения данных после этой временной метки
if end_time:
params['before'] = end_time # Параметр для получения данных до этой временной метки

print(f"Requesting data for {inst_id} | Bar: {bar} | After: {start_time} | Before: {end_time}")
response = requests.get(url, params=params)
# Check for rate limit errors (Too many requests)
if response.status_code == 429:
print("Rate limit exceeded. Waiting for 2 seconds before retrying...")
time.sleep(2) # Wait before retrying
return fetch_candlesticks(inst_id, bar, start_time, end_time, limit)

if response.status_code == 200:
data = response.json().get("data", [])
print(f"Received {len(data)} rows of data.")
return data
else:
print(f"Error fetching data for {inst_id} with timeframe {bar}: {response.status_code}")
return []

# Function to get all historical data for a specific timeframe and period
def fetch_full_history(inst_id, bar='1D', years=5):
end_time = int(datetime.now().timestamp() * 1000) # Текущий момент в миллисекундах
start_time = int((datetime.now() - timedelta(days=years * 365)).timestamp() * 1000) # 5 лет назад

all_data = []
while end_time > start_time:
data = fetch_candlesticks(inst_id, bar=bar, end_time=end_time)
if not data:
print(f"No data returned for {inst_id}. Stopping further requests.")
break
all_data.extend(data)
end_time = int(data[-1][0]) # Обновление end_time до временной метки последней свечи
print(f"Updated end_time to {end_time} (millis). Continuing to fetch earlier data.")

return all_data

# Function to save data to Excel
def save_to_excel(inst_id, data_dict, file_name='candlesticks_data.xlsx'):
with pd.ExcelWriter(file_name) as writer:
for timeframe, data in data_dict.items():
if not data:
print(f"No data available for {inst_id} with timeframe {timeframe}. Skipping.")
continue # Этот continue должен быть на том же уровне отступа

# Debug: Print the first row to check structure
print(f"Sample data for {inst_id} [{timeframe}]: {data[0]}")

# Fix for 9 columns: drop duplicate Quote Volume
columns = ['Timestamp', 'Open', 'High', 'Low', 'Close', 'Volume', 'Quote Volume', 'Ignored', 'Number of Trades']
try:
df = pd.DataFrame(data, columns=columns)
# Drop the 'Ignored' column
df.drop(columns=['Ignored'], inplace=True)
except Exception as e:
print(f"Error creating DataFrame for {inst_id} [{timeframe}]: {e}")
continue # Этот continue должен быть на том же уровне отступа

# Convert Timestamp to human-readable format
if 'Timestamp' in df.columns:
df['Timestamp'] = pd.to_numeric(df['Timestamp']) # Преобразование в число
df['Timestamp'] = pd.to_datetime(df['Timestamp'], unit='ms')
df['Date'] = df['Timestamp'].dt.date
df['Time'] = df['Timestamp'].dt.strftime('%H:%M:%S')
df = df[['Date', 'Time', 'Open', 'High', 'Low', 'Close', 'Volume', 'Quote Volume', 'Number of Trades']]

# Save data to the respective sheet
try:
df.to_excel(writer, sheet_name=f'{timeframe}', index=False)
except Exception as e:
print(f"Error writing to Excel for {inst_id} [{timeframe}]: {e}")
continue # Этот continue также должен быть на том же уровне отступа
print(f"Data saved to {file_name}")

# List of trading pairs (instrument IDs) with pairs that include USDT
inst_ids = [
'BTC-USDT', 'ETH-USDT', 'SOL-USDT', 'TON-USDT', 'XRP-USDT', # Use USDT pairs
'1INCH-USDT', 'ADA-USDT', 'ATOM-USDT', 'DOT-USDT', 'EGLD-USDT', # Update to available USDT pairs
'NEAR-USDT', 'TRX-USDT', 'ISP-USDT', 'KSM-USDT', 'ALGO-USDT'
]

# List of timeframes (5m, 15m, 1H, 1D)
timeframes = ['5m', '15m', '1H', '1D'] # Таймфреймы, которые вы указали

# Fetch data and save to Excel for each trading pair
for inst_id in inst_ids:
data_dict = {}
for timeframe in timeframes:
print(f"Fetching data for {inst_id} with timeframe {timeframe}...")
data = fetch_full_history(inst_id, bar=timeframe, years=5)
if data: # Проверяем, что данные не пустые
data_dict[timeframe] = data

if not data_dict:
print(f"No data available for {inst_id}. Skipping.")
continue # Этот continue должен быть на том же уровне отступа

file_name = f"{inst_id}_candlesticks.xlsx"
save_to_excel(inst_id, data_dict, file_name=file_name)

Читайте на 123ru.net

Другие проекты от 123ru.net



Архангельск

Опасная погода с ветром, сильными осадками и метелью накроет несколько регионов России



Здоровье

«Микробиотики микст» с антоцианами удостоены золотой медали на Международном Конкурсе качества




Українські новини

"Миколаївводоканал" хоче збирати гроші з благодійників які надають безкоштовно питтєву воду



Новости 24 часа

Филиал № 4 ОСФР по Москве и Московской области информирует: Отделение СФР по Москве и Московской области оплатило свыше 243 тысяч дополнительных выходных дней по уходу за детьми с инвалидностью



Game News

My summer car(my satsuma) теперь на телефоне!!!



Москва

Нижегородский ХК «Торпедо» разгромил «Спартак»



News Every Day

Michail Antonio reveals he was barred from entering the UK after passport blunder in nightmare international break



Происшествия

Водитель иномарки расстрелял двоих мужчин, ехавших поздравлять своих мам с Днем матери



Москва

Стартовал шестой сезон Усинской футбольной лиги



Pink Floyd

Pink Floyd — On The Turning Away



Москва

Подмосковные спортсмены завоевали 4 медали на чемпионате России по плаванию



Кубок Дэвиса

Кубок Дэвиса. Финал. Берреттини играет с ван де Зандшульпом, Синнер встретится с Грикспором



Москва

«Грузовичкоф» на передовой новых коллабораций с блогерами: выступление Наталии Поникаровской на конференции The Trends



Сергей Брановицкий

Питчинг Релиза. Отправить релиз на Питчинг.



Симферополь

Сыгран седьмой тур чемпионата Республики Крым по шахматам



Москва

«Грузовичкоф» на передовой новых коллабораций с блогерами: выступление Наталии Поникаровской на конференции The Trends



Москва

Собянин: в форуме «Наследие» поучаствовали более 20 тысяч человек



Москва

С глаз долой, из сердца - вон: что делают россияне с подарками бывших



Другие популярные новости дня сегодня


123ru.net — быстрее, чем Я..., самые свежие и актуальные новости Вашего города — каждый день, каждый час с ежеминутным обновлением! Мгновенная публикация на языке оригинала, без модерации и без купюр в разделе Пользователи сайта 123ru.net.

Как добавить свои новости в наши трансляции? Очень просто. Достаточно отправить заявку на наш электронный адрес mail@29ru.net с указанием адреса Вашей ленты новостей в формате RSS или подать заявку на включение Вашего сайта в наш каталог через форму. После модерации заявки в течении 24 часов Ваша лента новостей начнёт транслироваться в разделе Вашего города. Все новости в нашей ленте новостей отсортированы поминутно по времени публикации, которое указано напротив каждой новости справа также как и прямая ссылка на источник информации. Если у Вас есть интересные фото Вашего города или других населённых пунктов Вашего региона мы также готовы опубликовать их в разделе Вашего города в нашем каталоге региональных сайтов, который на сегодняшний день является самым большим региональным ресурсом, охватывающим все города не только России и Украины, но ещё и Белоруссии и Абхазии. Прислать фото можно здесь. Оперативно разместить свою новость в Вашем городе можно самостоятельно через форму.



Новости 24/7 Все города России




Загрузка...


Топ 10 новостей последнего часа






Персональные новости

123ru.net — ежедневник главных новостей Вашего города и Вашего региона. 123ru.net - новости в деталях, свежий, незамыленный образ событий дня, аналитика минувших событий, прогнозы на будущее и непредвзятый взгляд на настоящее, как всегда, оперативно, честно, без купюр и цензуры каждый час, семь дней в неделю, 24 часа в сутки. Ещё больше местных городских новостей Вашего города — на порталах News-Life.pro и News24.pro. Полная лента региональных новостей на этот час — здесь. Самые свежие и популярные публикации событий в России и в мире сегодня - в ТОП-100 и на сайте Russia24.pro. С 2017 года проект 123ru.net стал мультиязычным и расширил свою аудиторию в мировом пространстве. Теперь нас читает не только русскоязычная аудитория и жители бывшего СССР, но и весь современный мир. 123ru.net - мир новостей без границ и цензуры в режиме реального времени. Каждую минуту - 123 самые горячие новости из городов и регионов. С нами Вы никогда не пропустите главное. А самым главным во все века остаётся "время" - наше и Ваше (у каждого - оно своё). Время - бесценно! Берегите и цените время. Здесь и сейчас — знакомства на 123ru.net. . Разместить свою новость локально в любом городе (и даже, на любом языке мира) можно ежесекундно (совершенно бесплатно) с мгновенной публикацией (без цензуры и модерации) самостоятельно - здесь.



Загрузка...

Загрузка...

Экология в России и мире
Москва

Москвичам предложили выбрать имя для детеныша краснокнижной гиены





Путин в России и мире
Москва

Рябков: слова Путина стали сигналом Западу, что РФ готова к ответу на вызовы


Лукашенко в Беларуси и мире



123ru.netмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "123 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Smi24.net — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

123ru.net — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.





Зеленский в Украине и мире
Киев

Режиму Зеленского вынесен окончательный приговор: В Киеве признали правду о возвращении людей на освобожденные Россией территории


Навальный в России и мире


Здоровье в России и мире


Частные объявления в Вашем городе, в Вашем регионе и в России






Загрузка...

Загрузка...



Джиган

Джиган и Оксана Самойлова: «Самое сложное, что с нами случилось в родительстве – это дочь-подросток»



Москва

КАК ВСЕМ ПРИБОРАМ ДЕЛАЮТ РЕЗУЛЬТАТЫ ИЗМЕРЕНИЙ? ПОТОМУ ЧТО ВСЕ ЦИВИЛИЗАЦИИ СИСТЕМАТИЗИРОВАНЫ ПРОГРАММНОЙ РАБОТОЙ. Россия, США, Европа могут улучшить отношения и здоровье общества?!

Друзья 123ru.net


Информационные партнёры 123ru.net



Спонсоры 123ru.net