Algorithmic Trading with Python, Statistics, and Pandas

January 25, 2024

https://iexcloud.io/console/home https://iexcloud.io/docs/core/QUOTE

API Calls

Slow version

stocks_columns = ['Ticker', 'Price', 'Market Capitalization', 'Shares to Buy']
stocks_dataframe = pandas.DataFrame(columns=stocks_columns)

for symbol in stocks_table['Symbol']:
  api_url = f"https://api.iex.cloud/v1/data/core/quote/{symbol}?token={IEX_CLOUD_API_TOKEN}"
  data = requests.get(api_url).json()[0]
  print(data)

  stocks_dataframe = stocks_dataframe.append(pandas.Series([symbol,
                                                          data['latestPrice'],
                                                          data['marketCap'],
                                                          'N/A'],
                                                          index=stocks_columns),
                                            ignore_index = True)

print(stocks_dataframe)

Batching

def split_list(list, number_per_group: int):
  for index in range(0, len(list), number_per_group):
    yield list[index:index+ number_per_group]

stock_symbol_groups = list(split_list(stocks_table['Symbol'], 100))
print(stock_symbol_groups)

stock_symbol_strings = []

for index in range(0, len(stock_symbol_groups)):
  stock_symbol_strings.append(','.join(stock_symbol_groups[index]))


Write to Excel

https://xlsxwriter.readthedocs.io/getting_started.html

!pip install XlsxWriter

import xlsxwriter

excel_writer = pandas.ExcelWriter('stocks.xlsx', engine='xlsxwriter')

batch_stocks_dataframe.to_excel(excel_writer, sheet_name="S&P 500 Stocks", index = False)
excel_writer.save()