Collect Historical Data¶
Collect historical data and store it locally as csv files. There are countless 3rd party APIs and tools for collecting market data. The CoinbaseCollector is an implementation of crypto market data collection using Coinbase’s API. The collected data is then saved locally in CSV files using _database_interface
Python source code: ../../examples/collect_historical_data.py
from boatwright.Data.Collection.Historical import PolygonCollector, AlpacaPyCollector
from boatwright.Data.CSVdatabase import CSVdatabase
from datetime import datetime
start = datetime(year=2024, month=1, day=1, hour=0, minute=0)
end = datetime(year=2025, month=1, day=1, hour=0, minute=0)
database = CSVdatabase(source="ALPACA", debug=False, dir="./quickstart_data/")
# Collect data from Polygon
collector = PolygonCollector()
crypto_collector = PolygonCollector(crypto=True)
for granularity_unit in ["MINUTE", "HOUR", "DAY"]:
print(f"Collecting {granularity_unit} data")
print("Collecting AAPL data")
data = collector.collect("AAPL", start, end, granularity_unit) # retrieves data via Alpaca API
database.save("AAPL", data, granularity_unit) # saves data as .csv files
print("Collecting BTC data")
data = crypto_collector.collect("BTC-USD", start, end, granularity_unit) # retrieves data via Alpaca API
database.save("BTC", data, granularity_unit) # saves data as .csv files
# Collect data from Alpaca
collector = AlpacaPyCollector()
crypto_collector = AlpacaPyCollector(crypto=True)
for granularity_unit in ["MINUTE", "HOUR", "DAY"]:
print(f"Collecting {granularity_unit} data")
print("Collecting AAPL data")
data = collector.collect("AAPL", start, end, granularity_unit) # retrieves data via Alpaca API
database.save("AAPL", data, granularity_unit) # saves data as .csv files
print("Collecting BTC data")
data = crypto_collector.collect("BTC-USD", start, end, granularity_unit) # retrieves data via Alpaca API
database.save("BTC", data, granularity_unit) # saves data as .csv files
