Files
daytrade/update_historical_rates.py

30 lines
1.0 KiB
Python

import os
from loguru import logger
from config import envvar
from gsheets import repository as gsheets
from providers.provider import FinDataRetriever
from providers.sources.yfin import YFinanceProvider
logger.info("starting flow: update historical rates")
ss_system = gsheets.get_sheet(sheet_name="system_crypto")
gsheets.update_date_column(sheet=ss_system, num_days=int(envvar.HISTORICAL_MAX_DATE))
_, date_range = gsheets.get_date_range(sheet=ss_system)
tickers = ["BTC-USD", "ETH-USD", "BTC-ETH", "USDTRY=X"]
for ticker in tickers:
logger.info(f"updating historical rates on system sheet for: {ticker}")
# if ticker == "USDTRY=X":
# print()
retriever = FinDataRetriever(provider=YFinanceProvider(), ticker=ticker)
data = retriever.get_historical_dynamic(sheet=ss_system, date_range=date_range)
ticker_header = retriever.provider.convert_ticker_symbol_to_gsheets_header(ticker)
gsheets.update_historical(sheet=ss_system, ticker=ticker_header, data=data)
logger.success("completed flow: update historical rates")