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")