File size: 1,646 Bytes
cc22067 471ab46 3416086 16a073c 3416086 16a073c 3416086 cc22067 471ab46 cc22067 471ab46 16a073c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
import pandas as pd
import requests
import time
import streamlit as st
def get_data():
data_points = 10000
interval = '1h'
limit = 1500
start_time = int(time.time() * 1000) - (data_points * 60 * 60 * 1000)
df_list = []
for i in range(0, data_points, limit):
params = {
'interval': interval,
'limit': limit,
'start_time': start_time + (i * 60 * 60 * 1000)
}
response = requests.get('https://api.coinex.com/v1/market/kline/BTCUSDT', params=params)
data = response.json()
if 'data' in data and data['data']: # Check if 'data' is present and not empty
try:
df = pd.DataFrame(data['data'])
timestamp_key = 'time' # Adjust this based on the data structure
df[timestamp_key] = pd.to_datetime(df[timestamp_key], unit='ms')
df.set_index(timestamp_key, inplace=True)
df.drop(['vol', 'amount'], axis=1, inplace=True)
df_list.append(df)
except KeyError as e:
st.error(f"KeyError: {e}. Please check the keys in the data returned by the API.")
return None
else:
st.error("Data not found in the API response.")
return None
df = pd.concat(df_list)
return df
if st.button("Fetch historical data"):
# Retrieve historical data from Coinex API
df = get_data()
if df is not None:
# Save historical data to btcusdt_data.pkl
df.to_pickle('btcusdt_data.pkl')
st.write("Data fetched successfully and saved to btcusdt_data.pkl") |