feat(populate): add indicator calculation to populate script
This commit is contained in:
parent
d87733b80e
commit
46662a37a4
17
populate.py
17
populate.py
@ -7,6 +7,7 @@ from paperone.utils import (
|
||||
get_last_n_trading_days,
|
||||
)
|
||||
from paperone.database import TradingDataCRUD
|
||||
from paperone.indicators import IndicatorService
|
||||
from paperone.client import Fetcher
|
||||
from rich.progress import track
|
||||
from datetime import datetime
|
||||
@ -19,6 +20,7 @@ DB_FILE = "trading_data.db"
|
||||
def main() -> NoReturn:
|
||||
fetcher = Fetcher()
|
||||
crud = TradingDataCRUD(f"sqlite:///{DB_FILE}")
|
||||
ind = IndicatorService(crud)
|
||||
date = datetime.now()
|
||||
days_range = 360 * 10
|
||||
|
||||
@ -48,17 +50,28 @@ def main() -> NoReturn:
|
||||
|
||||
for ticker in tickers + reference_tickers:
|
||||
trading_days = get_last_n_trading_days(date, days_range)
|
||||
|
||||
start_date = trading_days[0]
|
||||
end_date = trading_days[-1]
|
||||
|
||||
all_ohlcv_data = fetcher.ticker_data_for(ticker, start_date, end_date)
|
||||
for ohlcv in track(all_ohlcv_data, description=f"→ {ticker}"):
|
||||
|
||||
ohlcv_dates = []
|
||||
for ohlcv in track(all_ohlcv_data, description=f"→ {ticker} OHLCV"):
|
||||
existing = crud.get_ohlcv(ticker, ohlcv.date)
|
||||
|
||||
if not existing:
|
||||
crud.create_ohlcv(ohlcv)
|
||||
|
||||
ohlcv_dates.append(ohlcv.date)
|
||||
|
||||
for calc_date in track(ohlcv_dates, description=f"→ {ticker} Indicators"):
|
||||
existing_indicator = crud.get_indicators(ticker, calc_date)
|
||||
|
||||
if existing_indicator:
|
||||
continue
|
||||
|
||||
ind.calculate_and_save_indicators(ticker=ticker, target_date=calc_date)
|
||||
|
||||
exit(0)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user