Python Forum

Full Version: How do I extract information from this dataset?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I wrote this code which loops around to extract the moving averages for different currency pairs on timeframes:

import krakenex
import pandas as pd

api = krakenex.API()

# Define currency pairs and their corresponding names
currency_pairs = [('XETHXXBT', 'ETH/BTC'), ('XXBTZEUR', 'BTC/EUR'), ('XXBTZUSD', 'BTC/USD'), ('XXBTZGBP', 'BTC/GBP'), ('XETHZEUR', 'ETH/EUR'), ('XETHZGBP', 'ETH/GBP'), ('XETHZUSD', 'ETH/USD'), ('EURGBP', 'EURGBP'), ('ZEURZUSD', 'EUR/USD'), ('ZGBPZUSD', 'GBP/USD'), ('PAXGXBT', 'PAXG/BTC'), ('PAXGETH', 'PAXG/ETH'), ('PAXGEUR', 'PAXG/EUR'), ('PAXGUSD', 'PAXG/USD'), ('XXRPXXBT', 'XRP/BTC'), ('XRPETH', 'XRP/ETH'), ('XXRPZEUR', 'XRP/EUR'), ('XRPGBP', 'XRP/GBP'), ('XXRPZUSD', 'XRP/USD')]
time_frames = ['1', '5', '15', '30', '60', '240', '1440', '10080']

for pair, pair_name in currency_pairs:
    for tf in time_frames:
        print(f"{tf} minute m/a ({pair_name})")

        # Fetch OHLC data for the given pair and time frame
        ohlc_data = api.query_public('OHLC', {'pair': pair, 'interval': tf})

        # Convert the data to a pandas dataframe
        df = pd.DataFrame(ohlc_data['result'][pair], columns=['time', 'open', 'high', 'low', 'close', 'vwap', 'volume', 'count'])
        df['time'] = pd.to_datetime(df['time'], unit='s')
        df.set_index('time', inplace=True)

        # Calculate the moving averages
        last_20_candles = df.iloc[-21:-1]
        last_20_close_prices = last_20_candles['close'].astype(float).tolist()
        avg_last_20_close_price = sum(last_20_close_prices) / len(last_20_close_prices)
        print(f"20 period m/a: {avg_last_20_close_price}")

        last_50_candles = df.iloc[-51:-1]
        last_50_close_prices = last_50_candles['close'].astype(float).tolist()
        avg_last_50_close_price = sum(last_50_close_prices) / len(last_50_close_prices)
        print(f"50 period m/a: {avg_last_50_close_price}")

        last_200_candles = df.iloc[-201:-1]
        last_200_close_prices = last_200_candles['close'].astype(float).tolist()
        avg_last_200_close_price = sum(last_200_close_prices) / len(last_200_close_prices)
        print(f"200 period m/a: {avg_last_200_close_price}")

        print("\n")
This gets the moving averages of several different types of currency pairs, on several timeframes.

What I'd like to be able to do is find a way to extract just one piece of information. So for example, just the 200 period moving average for the btc/usd pair on the 15 minute timeframe.

How would I go about doing this?