May-04-2023, 02:41 PM
I wrote this code which loops around to extract the moving averages for different currency pairs on 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?
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?