alpacahq / alpacahq/Alpaca-API

requests.exceptions.HTTPError: 403 Client Error: Forbidden for url

Offen
#192 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Keine Sprachdaten
Sterne
174
Forks
17
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

The error:
```python
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: https://data.alpaca.markets/v1/bars/5Min?symbols=AAPL&limit=1000&start=2020-01-01T00%3A00%3A00-04%3A00&end=2020-01-11T23%3A00%3A00-04%3A00
```

My code:
```python
from datetime import datetime, timedelta
import pandas as pd
from tqdm import tqdm
import time

import alpaca_trade_api as tradeapi

def break_period_in_dates_list(start_date, end_date, days_per_step):
'''Break period between start_date and end_date in steps of days_per_step days.'''
step_start_date = start_date
delta = timedelta(days=days_per_step)
dates_list = []
while end_date > (step_start_date + delta):
dates_list.append((step_start_date, step_start_date+delta))
step_start_date += delta
dates_list.append((step_start_date, end_date))
return dates_list

def format_timestep_list(timestep_list):
'''Format dates in ISO format plus timezone. Note that first day starts at 00:00 and last day ends at 23:00hs.'''
for i, d in enumerate(timestep_list):
timestep_list[i] = (d[0].isoformat() + '-04:00', (d[1].isoformat().split('T')[0] + 'T23:00:00-04:00'))
return timestep_list

def get_df_from_barset(barset):
'''Create a Pandas Dataframe from a barset.'''
df_rows = []
for symbol, bar in barset.items():
rows = bar.__dict__.get('_raw')
for i, row in enumerate(rows):
row['symbol'] = symbol
df_rows.extend(rows)

return pd.DataFrame(df_rows)

def download_data(aps, symbols, start_date, end_date, filename='data.csv'):
'''Download data from REST manager for list of symbols, from start_date at 00:00hs to end_date at 23:00hs,
and save it to filename as a csv file.'''
timesteps = format_timestep_list(break_period_in_dates_list(start_date, end_date, 10))
df = pd.DataFrame()

for timestep in tqdm(timesteps):
barset = aps.get_barset(symbols, '5Min', limit=1000, start=timestep[0], end=timestep[1])
df = df.append(get_df_from_barset(barset))
time.sleep(0.1)

df.to_csv(filename)


# Call method.
aps = tradeapi.REST(key_id = '8234d8a5df686d085318b14fb6302889',
secret_key = '60d7290794ade03e17595dcebb6d47b58c1aea19',
base_url = 'https://paper-api.alpaca.markets')

download_data(aps = aps,
symbols = ['AAPL'],
start_date = datetime.strptime('01/01/20', '%d/%m/%y'),
end_date = datetime.strptime('01/02/20', '%d/%m/%y'),
filename = 'test.csv')

```

OS: Windows 10
Browser: Edge
Python: 3.8.3

Thanks for the help.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.