Path: blob/master/unit_tests/downloaders/test_alpaca_downloader.py
728 views
from __future__ import annotations12import pandas as pd3import pytest45from finrl.meta.data_processors.processor_alpaca import AlpacaProcessor678API_KEY = "???"9API_SECRET = "???"10API_BASE_URL = "https://paper-api.alpaca.markets"11data_url = "wss://data.alpaca.markets"121314@pytest.fixture(scope="session")15def ticker_list():16return ["AAPL", "GOOG"]171819def test_intraDayBar_download(ticker_list):20# Given21start_date = "2021-07-29"22end_date = "2021-07-30"23time_interval = "1H"24ticker_list = ["AAPL", "GOOG"]2526# When27DP = AlpacaProcessor(28API_KEY=API_KEY, API_SECRET=API_SECRET, API_BASE_URL=API_BASE_URL29)30data = DP.download_data(31start_date=start_date,32end_date=end_date,33ticker_list=ticker_list,34time_interval=time_interval,35)36actual_head_1 = data[data["tic"] == "GOOG"].head(1).reset_index(drop=True)37# Then38expected_shape = (12, 9)39expected_head_1 = pd.DataFrame(40[41[42"2021-07-29 14:00:00",432732.41,442740.0,452724.11,462734.7525,47120896,488650,492731.626021,50"GOOG",51]52],53columns=[54"timestamp",55"open",56"high",57"low",58"close",59"volume",60"trade_count",61"vwap",62"tic",63],64)6566assert data.shape == expected_shape67assert (actual_head_1 == expected_head_1).all(axis=None)686970def test_dayBar_download(ticker_list):71# Given72start_date = "2021-07-29"73end_date = "2021-07-30"74time_interval = "1D"75ticker_list = ["AAPL", "GOOG"]7677# When78DP = AlpacaProcessor(79API_KEY=API_KEY, API_SECRET=API_SECRET, API_BASE_URL=API_BASE_URL80)81data = DP.download_data(82start_date=start_date,83end_date=end_date,84ticker_list=ticker_list,85time_interval=time_interval,86)8788# Then89expected = pd.DataFrame(90[91[92"2021-07-29 04:00:00",93144.66,94146.55,95144.58,96145.64,9756571097,98414821,99145.806207,100"AAPL",101],102[103"2021-07-30 04:00:00",104144.49,105146.33,106144.11,107145.86,10870291908,109464977,110145.396798,111"AAPL",112],113[114"2021-07-29 04:00:00",1152722.76,1162743.03,1172722.76,1182730.81,119962833,12056703,1212732.943535,122"GOOG",123],124[125"2021-07-30 04:00:00",1262710.22,1272715.4273,1282696.284,1292704.42,1301192648,13155739,1322704.685882,133"GOOG",134],135],136columns=[137"timestamp",138"open",139"high",140"low",141"close",142"volume",143"trade_count",144"vwap",145"tic",146],147)148149assert (data == expected).all(axis=None)150151152